<div dir="ltr"><div><div><div><div>Na verdade eu não quero monitorar os objetos em movimento, até porque não precisaria de precisão para isso. Eu disse que também gostaria de fazê-lo se tivesse a posição em tempo real. O meu objetivo aqui é apenas traçar as rotas em cima de uma base cartográfica, armazená-la em um banco espacial e recuperá-la quando desejar.<br><br></div>Eu procurei a API do OSRM para trabalhar e não encontrei. O máximo que encontrei foi o seu Github. Deu a entender que os caras andaram fechando algumas coisas, pois até no IRC deles entrei e nada!<br><br></div>Mas eu descobri que estes caras, o Mapzen, MapLab, Remix e tantos outros usam esse cara aqui:<br><br><a href="http://www.liedman.net/leaflet-routing-machine/">http://www.liedman.net/leaflet-routing-machine/</a><br><br></div>Portanto isso já me ajuda, porém como eu havia postado no screenshot do Remix, a ferramenta deles permite que eu arraste o cursor para preencher a rota em cima de algo já pré gravado, contudo quando seguro a tecla shift posso também editar a minha rota da maneira que desejar e esta funcionalidade serviria para não ficar escravo de rotas pré gravadas. Porque como disse antes, usar rota manual em cima de uma base cartográfica é se encher de imprecisões, principalmente quando existem 3 ou 4 vias em paralelo.<br><br></div>Mas tá tranquilo, eu agradeço muito a sua paciência e de outras pessoas. Irei continuar posta quando precisar e tentar escrever alguns artigos no meu blog sobre o assunto assim que puder.<br><br><div><div><br><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 19 de julho de 2016 13:51, Alexandre Magno Brito de Medeiros <span dir="ltr"><<a href="mailto:alexandre.mbm@gmail.com" target="_blank">alexandre.mbm@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Paulo, não conheço. Mas você entendeu que estou lhe sugerindo a API do OSRM?<br><br></div>Você não quer monitorar objetos reais e que estão em movimento? Então por que os outros dois itens não se aplicam?<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">Em 18 de julho de 2016 13:44, Paulo Vianna <span dir="ltr"><<a href="mailto:paulovianna.dev@gmail.com" target="_blank">paulovianna.dev@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Alexandre é por aí mesmo.<br><br></div>É isso aí que eu preciso, porém com uma ressalva com base na sua frase: <i>Usar rota pré-gravada tem a enorme desvantagem da rigidez. Se há um
trecho em obras, ou agora uma contramão que existe e antes não existia</i> é o complemento do que preciso.<br><br></div><a href="http://codelogic.com.br/arquivo/verticeeditavel.png" target="_blank">Neste link</a> na figura da esquerda uso o OSRM e na da direita estou testando a aplicação Remix e lá posso tanto percorrer com rotas pré gravadas, quanto editar para caso exista um trecho em obras. <br><br></div>Quanto aos itens que você listou, só o primeiro é pertinente para mim, pois não o utilizarei em clientes mobile, mas sim na web mesmo.<br><br></div>O que preciso em suma é fazer isso aí que o OSRM faz, mas que me dê a opção de editar e abrir uma exceção para o fluxo.Você conhece alguma ferramenta que me permite fazer isso e que eu possa pegar esses eventos com Java Script?<br><br></div><div>Desde já agradeço.<br></div><div><div><div><div><div><br><br></div></div></div></div></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">Em 15 de julho de 2016 21:34, Alexandre Magno Brito de Medeiros <span dir="ltr"><<a href="mailto:alexandre.mbm@gmail.com" target="_blank">alexandre.mbm@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Paulo Vianna,<br><br>Usar rota pré-gravada tem a enorme desvantagem da rigidez. Se há um trecho em obras, ou agora uma contramão que existe e antes não existia, já viu...<br><br></div>Estou entendendo cada vez mais o que você quer. Conheço produtos pagos com tais funcionalidades.<br><br>Em seu lugar, eu faria P&D no sentido seguinte:<br></div><ul><li>Usar o <a href="https://en.wikipedia.org/wiki/Open_Source_Routing_Machine" target="_blank">OSRM</a>*<br></li><li>Gravar o track localmente</li><li>Transmitir a posição por 3G</li></ul></div></div></div>* Buscar alternativa a ele, também.<br><br></div>Em outras palavras, eu faria roteamento, comunicaria posição, mas não deixaria de gravar tudo.<br></div><div><div><br></div><div>Saber eu não sei, porque nunca fiz. Mas imagino que, tendo os caminhos do roteamento, dados pelo roteador, você coloca o objeto rastreado dentro da via através de uma função que mapeie um domínio no outro: pegar o ponto rastreado e colocá-lo do ponto mais próximo da linha mais próxima (menor distância).<span><font color="#888888"><br><br></font></span></div><span><font color="#888888"><div><div>Alexandre Magno<br><div><div><div><div><br><br></div></div></div></div></div></div></font></span></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">Em 15 de julho de 2016 19:02, Paulo Vianna <span dir="ltr"><<a href="mailto:paulovianna.dev@gmail.com" target="_blank">paulovianna.dev@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Ei Alexandre, obrigado mais uma vez pela resposta.<br><br></div>Não tem mistério a aplicação, eu só defino a rota de cada veículo e não sei se necessariamente se isso seria um roteador (acho que deve ser). São veículos que tem que cumprir um determinado caminho. Ah pra que isso? Eu usarei para saber qual a quilometragem exata que cada veículo percorrerá porque guardarei num banco de dados geográfico e para visualizar no mapa onde estarão estas rotas.<br><br></div>Mas como eu disse: usarei e guardarei! Pois hoje uma empresa guarda estes dados de rota e não temos acesso. A única coisa que guardamos são os pontos de parada onde estes veículos podem parar. E isso sim eu guardo num banco de dados geográfico e exibo no componente do <a href="http://dot.net" target="_blank">dot.net</a> que te passei o link. Não tem segredo, se resume a isso.<br><br></div><div>O ideal do meu ponto de vista seria ter um GPS para rastrear este veículos e ver o bichinho passeando no mapa, mas infelizmente não temos. Então eu penso que se for para substituir a app de rotas da empresa terceirizada, que seja mais inteligente, senão é melhor ficar do jeito que está.<br><br></div><div>Agora, vou pegar o que <b>Hélio</b> disse:<span><br><br><i>Se essas rotas fossem pré gravadas, seria possível copiar as vias do osm
em um arquivo e entao vc teria a coincidência exata do traçado.<br></i><br></span></div><div>Se vocês visitarem esta página: <a href="http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Valhalla" target="_blank">http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Valhalla</a>, verão que existe uma engine chamada Valhalla que o Mapzen utiliza para desenhar suas rotas (do jeito que eu espero fazer). Eu não sei ao certo, mas acredito que já existam camadas prontas com rotas pré gravadas para pedestres, bikes, carros, etc e isso me permitiria fazer o que você diz Hélio, ter a coincidência exata do meu traçado sem inconsistências como um traçado torto por exemplo. Porém, o acesso a isso pelo que andei lendo é limitado. Como a minha app é apenas interna, não faz diferença, mas eu não sei ainda se eu iria usar isso.<br><br></div><div>Outra frase do Hélio:<span><br><br><i>O GPS garmin tem uma função que automaticamente posiciona o veículo
exatamente sobre o mapa, mesmo que o traçado da via esteja deslocado em
relação a posição real do veículo</i><br><br></span></div><div>Exatamente! Não só o Garmin, mas todo o aparelho de GPS que conheço faz isso. Eles já tem estas rotas certinhas, então eu penso comigo: por que eu não tenho acesso a isso? Por que eu tenho que desenhar o traçado? Como eu acesso isso, sendo que eu imagino que estes caras também usam o OSM por baixo dos panos?<br><br></div><div>Agora Alexandre, quando você diz:<span><br><br><i>Se não querem, aproveitar os traços do OSM, como sugere o Helio, parece ser uma boa.</i><br><br></span></div><div>É claro que eu quero aproveitar estes traços! Até porque eu gravarei todas as linhas e os vértices no meu banco de dados espacial no formato line e depois quando precisar editar, carregarei as minhas rotas no OSM a partir das informações vindas do meu banco, mas aí eu volto a perguntar: existe uma forma de eu acessar alguma base de ruas e vias pré-gravadas no OSM e ir sublinhando por cima delas para fazer o meu traçado de rota apenas por onde ela passa? Se isso existe, como é que eu acesso isso? Eu não estou preocupado se o OSM me diz que existe uma rua no meio do manguezal, eu só quero pegar a informação de onde ele disse que existe uma via, como o link do Mapzen faz quando você marca ponto A e B e ele traça a rota por apenas onde existe via.<br><br></div><div>Eu não sei seu deu para entender. Eu disse mais do mesmo, mas se você conseguir me responder isso de forma que seja possível (sem ter de reinventar a roda), eu acho que dá pra fazer.<br></div><div><br></div><div>Mais uma vez obrigado pelas informações.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>Em 15 de julho de 2016 17:06, Alexandre Magno Brito de Medeiros <span dir="ltr"><<a href="mailto:alexandre.mbm@gmail.com" target="_blank">alexandre.mbm@gmail.com</a>></span> escreveu:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><div dir="ltr"><div><div><div><div>Paulo Vianna,<br><br></div>Vocês querem um roteador? A coisa é complexa, mas existem alguns projetos. Minha memória está falhando...<br><br></div>Se não querem, aproveitar os traços do OSM, como sugere o Helio, parece ser uma boa. Poderão inclusive "simplificar" um pouco, diminuindo a quantidade de pontos no caminho.<br><br></div><div>É possível nos dizer mais sobre qual é aplicação real?<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div><br></div>Alexandre Magno<br></font></span><br></div>PS.: Quando eu referi "regra de três", evidentemente foi tentando deixar o raciocínio mais simples.<span><div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">Em 15 de julho de 2016 16:55, Helio Cesar Tomio <span dir="ltr"><<a href="mailto:hctomio@gmail.com" target="_blank">hctomio@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir="ltr">Se essas rotas fossem pré gravadas, seria possível copiar as vias do osm em um arquivo e entao vc teria a coincidência exata do traçado. </p>
<p dir="ltr">O GPS garmin tem uma função que automaticamente posiciona o veículo exatamente sobre o mapa, mesmo que o traçado da via esteja deslocado em relação a posição real do veículo </p><div><div>
<div class="gmail_quote">Em 15/07/2016 16:45, "Paulo Vianna" <<a href="mailto:paulovianna.dev@gmail.com" target="_blank">paulovianna.dev@gmail.com</a>> escreveu:<br type="attribution"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Preciso traçar rotas de veículos e elas precisam estar dentro das vias. Hoje a gente já faz isso com uma ferramenta de uma empresa terceirizada que funciona justamente como estava lhe dizendo, dentro da via você vai montando a rota clicando para dizer quais serão os vértices e após ter passado por este processo, você consegue ver quando amplia o mapa que a rota não fica precisa, principalmente quando existem mais vias em paralelo, o que torna o quadro ainda pior.<br><br></div><div>Então, já que fiz uma experiência com pontos na ferramenta que te passei, pesamos e chegamos a conclusão de migrar tudo para OSM por conta da possibilidade de utilizar o OpenLayers para fazer o Snap, mas aí bate o que te falei, não adianta eu utilizar Snap ou suavizar as minhas curvas se o processo ainda será manual e não "indicativo".<br><br></div><div>Eu preciso de uma biblioteca que faça isso ou do caminho das pedras. Não sei se é possível fazer isso com o OSM ou melhor, não sei se é possível.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div>Em 15 de julho de 2016 15:09, Alexandre Magno Brito de Medeiros <span dir="ltr"><<a href="mailto:alexandre.mbm@gmail.com" target="_blank">alexandre.mbm@gmail.com</a>></span> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div dir="ltr"><div>Paulo Vianna,<br><br>Agora entendi. E por coincidência eu estava pesquisando isso no início da semana, fora do contexto de mapas.<br><br>Se você tem um conjunto de pontos, pode usar um algoritmo de Spline Cúbica, recebendo os pontos como lista de "constraints". Então plotará o gráfico XY por aproximação passando nos pontos. Alguma implementação lhe permite a tal resolução, de modo a, diminuindo-a, não serem tantos os pares a plotar.<br><br>Pra você transformar isso em coordenadas, especialmente porque não tem de ser tão preciso, pode começar pensando em regra de três.<br><br></div><div>Eu estava buscando isso porque precisava plotar uma curva de forma elegante e achar a função parecia impossível. Se for o que você quer, posso colher os principais links. Tem coisa em Java e tem coisa em Javascript.<br><br></div><div>Estou curioso... pra que você quer isso, no seu contexto?!<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div><br></div><div>Alexandre Magno<br></div></font></span><span><div><div><div class="gmail_extra"><br><div class="gmail_quote">Em 15 de julho de 2016 14:51, Paulo Vianna <span dir="ltr"><<a href="mailto:paulovianna.dev@gmail.com" target="_blank">paulovianna.dev@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Na verdade, eu não gostaria de arrastar os vértices e sim colocar somente ponto A e B e aí ele traçar a rota até lá, como no exemplo do mapzen que te passei.<br></div></blockquote></div></div></div></div></span></div></div></blockquote></div></div></blockquote></div></div></div></blockquote></div><br></div></div></div></div></div></div></span></div>
<br></span><span>_______________________________________________<br>
Talk-br mailing list<br>
<a href="mailto:Talk-br@openstreetmap.org" target="_blank">Talk-br@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-br" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-br</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
Talk-br mailing list<br>
<a href="mailto:Talk-br@openstreetmap.org" target="_blank">Talk-br@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-br" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-br</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Talk-br mailing list<br>
<a href="mailto:Talk-br@openstreetmap.org" target="_blank">Talk-br@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-br" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-br</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Talk-br mailing list<br>
<a href="mailto:Talk-br@openstreetmap.org" target="_blank">Talk-br@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-br" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-br</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Talk-br mailing list<br>
<a href="mailto:Talk-br@openstreetmap.org">Talk-br@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-br" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-br</a><br>
<br></blockquote></div><br></div>