Pergunta

Eu estou usando http://maps.google.com/maps/geo ? serviço web para geocodificar alguns endereços.

O problema que tenho é que o endereço de um mais completo não dá necessariamente uma geocodificação mais preciso.

por exemplo passando em Llantysilio, Denbighshire, Reino Unido é muito mais preciso do que Llantysilio, Llangollen, Denbighshire, Reino Unido

O atributo Precisão no XML não parece muito útil para decidir qual o endereço para escolher.

Como é que outras pessoas lidou com esta questão? Existe uma boa maneira de escolher o melhor geocódigo que a maioria funciona / o tempo todo?

* edição Um pouco de informação adicional - quando eu colocar o endereço mais completa a primeira linha do endereço é ignorado eo geocoder salta para uma diferente, mas exata, endereço que é uma rua central, localizado na linha extra adicionado ao endereço. Neste exemplo, ele pega Castle Street na llangollen meio, aparentemente ignorando Llantysilio.

Editar por kdgregory: aqui estão as duas solicitações de API que eu usei (chave de API ausente não parece ser um problema):

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml
Foi útil?

Solução 5

No final, eu concluiu que existem demasiadas blips estranhos de consistência endereço com webservice de geocodificação do Google no Reino Unido, mas finalmente conseguiu descobrir uma maneira de usar códigos postais em vez disso, que é muito mais preciso: como é feito

Outras dicas

Você tem que interpretar a precisão meu amigo. Há geralmente 2 partes para uma precisão, pela primeira vez o macthing endereço. A segunda parte é a parte importante. Você pode geocodificar algo a um nível de precisão dos Estados Unidos, ou um nível de cidade, centroid CEP, nível da rua interpolados ou um nível de precisão parcela real. O primeiro exemplo tem uma 4 e o segundo é 9. Para este serviço é maior melhor.

Valor Precisão Descrição 0 precisão desconhecido. 1 precisão nível do país. 2 Região (estado, província, prefeitura, etc.) a precisão nível. 3 sub-região (condado, município, etc.) nível de precisão. 4 Town (cidade, aldeia) exatidão nível. 5 Código Postal (CEP) exatidão nível. 6 precisão nível da rua. 7 precisão nível Intersecção. exatidão nível 8 endereços. 9 Premise (construção de nome, nome da propriedade, centro comercial, etc.) a precisão nível.

É provavelmente bom notar que o Google não segue o XAL especificações , mas sim as implementa em um subconjunto.

Então, isso significa que você não vai necessariamente ser capaz de fazer:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Porque um país e sub-localidade pode ser fornecido enquanto uma área administrativa não é.

Os dados que são retornados é identificado com um medidor de precisão que lhe dá uma idéia relativa do que você pode esperar de dados. Assim, você pode armazenar objetos e cortar partes do endereço completo usando essa variável e tentar geocode de tal forma - Não é recomendado embora.

Normalmente, um endereço completo é (sem a passagem) é uma boa maneira de encontrar a localização geral. Você pode usar um pouco da lógica ponderada preferencial Google fornece para refinar o endereço.

por exemplo. Use o setViewPort ou setCountryCode para dar suas pesquisas um pouco mais precisão.

Lembre-se, geocodificação não é uma ciência . Você não pode esperar resultados consistentes.

Um geocódigo response.Placemark [0] via gmap você pode verificar o que você tem, e tomar o nível ou tentar novamente. Eu escolhi padrão na ordem

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Pode ser mais logicamente nomeado como visto acima. Gmaps 3 trabalhos um tanto incompatível com v2.

Você pode tentar um corte muito feio, que consiste na geocodificação seu adresse completo e todos os subconjuntos das palavras seu endereço contém, você terá um monte de geocódigos que você usa para obter os endereços relacionados a eles com a ferramenta de geocodificação reversa. Uma vez que você tem a abundância de endereços você compará-los com o que você deu em primeiro lugar, então você tomar a geocodificação mais preciso ... Muitos pedidos, muitas iteração crescendo a cada palavra que você adicionar ao seu endereço, bem um trabalho feio, mas pode ser divertido para fazer algumas estatísticas ^^

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top