Quem já compilou mapas com o mkgmap já deve ter percebido um problema comum: ao pesquisar por nome de vias (Ruas) a pesquisa somente encontra resultado quando você digita o nome completo da via. Imagine que a via se chame “Travessa Antônio Maurizi”, caso você pesquise por “Maurizi” ou “Antônio Maurizi” nada é encontrado. O problema disso é que você é obrigado a saber o Tipo do logradouro (Rua, Travessa, Avenida, etc) para pode fazer a busca. Se você não souber vai ter que ficar na tentativa e erro.
Para resolver isso algumas pessoas criavam regras no “Style File” jogando o primeiro nome da via para a última posição. Assim, “Travessa Antônio Maurizi” ficaria “Antônio Maurizi Travessa”. Isso permite que a pesquisa por “Antônio Maurizi” retorne o nome da via, nesse caso eu não preciso digitar o nome completo e nem saber o tipo de logradouro. Porém a pesquisa por “Maurizi” continua a não trazer resultados.
Abaixo exemplo de alguns comandos no “Style File” que permitem fazer esse tipo de pesquisa:
highway=* & name ~ '(?i)travessa\s+.*' { add streettype:movedend='${name|subst:(?i)travessa\s+~>}, Travessa'}
highway=* & name ~ '(?i)rua\s+.*' { add streettype:movedend='${name|subst:(?i)rua\s+~>}, Rua'}
highway=* & name ~ '(?i)avenida\s+.*' { add streettype:movedend='${name|subst:(?i)avenida\s+~>}, Avenida'}
A desvantagem dessa solução é que a pesquisa pela terceira palavra do nome continua não trazendo resultados. Além disso, o IMG gerado pelo mkgmap fica maior, não muito maior, mas maior do que um mapa que não é compilado com essa solução.
Para resolver o problema em definitivo as versões recentes do mkgmap (lançadas pós 2015) trazem uma opção chamada “--x-split-name-index”. Essa opção não é habilitada por padrão assim para usá-la é necessário fazer a chamada dela explicitamente. Sua linha de comando ficaria parecida com esta:
java -jar mkgmap.jar --x-split-name-index --housenumbers --route --index --gmapsupp brazil.osm.pbf
Essa opção nova no mkgmap ainda está em testes. Caso encontre erros avise o time de desenvolvimento do mkgmap. Na lista do mkgmap esse problema foi referenciado como problema do "multi-word street search".
Referências: Wiki OSM | Documentação mkgmap | Lista de e-mail do mkgmap | Kit cocar de compilação
0sem comentários ainda