Endereço geocódigo uma vez no google maps, salve no banco de dados, leia o resultado geocodificado a partir daí

13

É possível geocodificar um endereço, salvar o resultado em um banco de dados e ler esse resultado a partir daí?

Estou usando um mapa do Google que geocodifica centenas de endereços que obviamente atingem o limite de geocódigo. Depois de geocodificado, é improvável que o endereço mude novamente, por isso faz sentido salvar o resultado do geocódigo em um banco de dados.

Estou usando o Wordpress como plataforma, por isso, se possível, gostaria de salvar o resultado geocodificado como um campo no banco de dados relacionado à empresa em particular.

O CLIENTE PEDIU ESPECIFICAMENTE QUE O GOOGLE SERIA UTILIZADO EM TODO O PROJETO, EXCLUINDO YAHOO OU QUALQUER OUTRA COISA.

ATUALIZAÇÃO: Todo mundo está dizendo sobre o que estou perguntando está indo contra os Termos de Serviço, mas seu exemplo não está fazendo a mesma coisa - developers.google.com/maps/articles/phpsqlgeocode ?

Roubar
fonte
6
Leia os termos e condições 10.0.3 (a, b, c) developers.google.com/maps/terms. Você não deve usar o Conteúdo para criar um banco de dados independente de "locais" ou outras informações de listagens locais.
Mapperz
3
O Yahoo PlaceFinder developer.yahoo.com/geo/placefinder possui Termos e Condições melhores - a API do Placefinder não possui a restrição mencionada sobre o armazenamento de dados de localização retornados.
Mapperz
@Mapperz Ok obrigado. É possível salvar em uma tabela de fusão do Google e de alguma forma vincular isso ao wordpress?
Rob
Você precisa dos dados de correspondência ZIP + 4? Nesse caso, isso muda a resposta. Então, você enviará algo para o endereço ou apenas usará os dados geográficos para localização e posição?
11132 Jeffrey
1
Espere ... Tenho certeza de que ainda é uma violação do TOS com a API do Yahoo também.
Matt

Respostas:

5

De acordo com os Termos de Serviço do YahooMaps , você não tem permissão para armazenar os dados coletados usando a API. (especificamente viii) "VOCÊ NÃO DEVE:"

(vi) use o Yahoo! APIs do Google Maps com informações de localização com menos de 6 horas e derivadas de um dispositivo GPS ou qualquer outro dispositivo sensor de localização;

(vii) use o Yahoo! APIs do Google Maps com informações de localização derivadas de um dispositivo GPS ou qualquer outro dispositivo sensor de localização em que essas informações não foram carregadas no aplicativo ou serviço diretamente pelo usuário final;

(viii) armazenar ou permitir que os usuários finais armazenem imagens de mapa, dados de mapa ou informações de localização geográfica do Yahoo! APIs do Google Maps para qualquer uso futuro;

(ix) use o geocoder independente para qualquer uso que não seja a exibição do Yahoo! Mapas ou pontos de exibição no Yahoo! Mapas;

(x) publicar ou exibir, ou permitir que outros usuários publiquem ou exibam, qualquer informação de localização geocodificada usando qualquer Yahoo! APIs do Google Maps;

Isso é consistente com o que eu vi nos Termos de Serviço do Google, Bing, MapQuest e Yahoo. A razão para isso é que eles se beneficiam diretamente da capacidade de apresentar os resultados ao usuário final. Se o logotipo e os "mapas do google" não forem exibidos, eles não receberão "credito de rua" ou exposição. Assim, seu incentivo para prestar o serviço se foi. Eles facilitam muito o uso do serviço (extremamente fácil), mas também colocam limites razoáveis. Contanto que você esteja usando os dados deles para ganhar dinheiro (mesmo que estejam apenas obtendo exposição), você estará dentro dos termos dos Termos de Serviço. Se você tentar contornar esses termos, corre o risco de ser cortado a qualquer momento. Não é uma história feliz se o seu serviço for baseado no serviço deles .

Eu nunca usei o FME workbench, ele parece realmente poderoso (e ao mesmo tempo, mais complexo do que o necessário), mas ainda estará sujeito aos TOS dos provedores de dados. Compare o fluxo de trabalho do FME com esta simples solicitação HTTP com a API LiveAddress da SmartyStreets:

https://api.qualifiedaddress.com/street-address/?street=1600+Ampytheatr+Pkway+Mountain+Vew+ca&auth-token=23350695

Ele pega o endereço a seguir e o padroniza (incluindo a correção ortográfica óbvia), verifica se é entregável e o codifica geograficamente e divide o endereço nos vários componentes que o produzem como um fluxo JSON. (se você não ler JSON, poderá conectar a saída a um formatador JSON para obter resultados muito mais legíveis. (Sinta-se à vontade para usar seus próprios dados também na string da URL, para fins de teste)

1600 Ampytheatr Pkway Montanha Vew, CA

torna-se

1600 Amphitheatre Pkwy Mountain View, CA 94043-1351

Há um número de APIs comerciais disponíveis que corrigem a verificação; o SmartyStreets é aquele em que estaciono meu carro todas as manhãs. (Cdyne, StrikeIron, QAS são alguns outros que oferecem um serviço semelhante.) Esses serviços comerciais oferecem o uso de dados que não são vinculados por um TOS excessivamente restritivo. Basicamente, você pode usar o conjunto de dados resultante para praticamente competir diretamente.

Você está certo de que os dados de geocodificação não são alterados com muita frequência e é algo que certamente pode ser armazenado em cache localmente ou dentro do seu banco de dados para minimizar o número de solicitações ao servidor. Bem pensado.

Jeffrey
fonte
Os dados são atualizados a cada 6 horas e a intenção é ser usada com o Yahoo Maps - parte principal >> use o Yahoo! APIs do Google Maps com informações de localização com menos de 6 horas e derivadas de um dispositivo GPS ou qualquer outro dispositivo sensor de localização;
Mapperz
@ Mapperz A atualização e a fonte de entrada dos dados do endereço não foram o principal problema nos Termos de Serviço. Eu citei aqueles apenas para adicionar contexto ao ponto mais significativo que é: "VOCÊ NÃO DEVE" (viii) armazenar ou permitir que os usuários finais armazenem imagens de mapa, dados de mapa ou informações de localização geocodificada do Yahoo! APIs do Google Maps para qualquer uso futuro. Não importa quão recentes ou obsoletos sejam os dados.
11132 Jeffrey
@ Jeffrey Eu não tenho escolha a não ser usar os serviços do Google todo, esse é um requisito específico do cliente. Isso exclui o uso do Yahoo ou qualquer outra coisa.
Rob
@ Teamworksdesign.com Excelente, que elimina muitos olhares em volta e agora você pode se aprofundar no código. Sorte!
11134 Jeffrey
5

Depois de muita pesquisa, o Google mostra como armazenar os resultados do geocódigo em um banco de dados. Como existe um tutorial real do Google sobre como fazê-lo, suponho que isso não viole os termos de serviço claros como a lama que muitos mencionaram.

Roubar
fonte
4

Usando o FME Workbench para fazer geocodificação 'em massa' da API do Yahoo PlaceFinder

Limite de 50.000 solicitações por 24 horas:

insira a descrição da imagem aqui

O componente principal é o HTTPFetcher

Esta captura de tela é uma versão altamente modificada do ' Espaço de trabalho dos serviços da Web disponível gratuitamente' http://fmepedia.safe.com/articles/FAQ/Building-Web-services-workspace

Modificações:

Entrada de vários endereços (csv é o mais rápido)

A qualidade de cada correspondência geocodificada é registrada (acima de 87 é bom)

Elevação adicionada de um serviço diferente (geonames gtop30 dem)

Validando e filtrando endereços incorretos a serem analisados.

(Tentará entrar na FME Store após analisar os termos / contrato).

Mapperz
fonte
Eu estaria muito interessado em ver o seu espaço de trabalho também, uma vez que este se divide em várias das minhas metas do programa também ...
DEWright
Parece um ótimo fluxo de trabalho, mas lembre-se de que armazenar os resultados certamente seria uma violação dos Termos de Serviço.
11134 Jeffrey
somente se você armazená-lo por mais de 6 horas ... ou estiver usando-o em conjunto com o Yahoo Maps para exibir os locais
Mapperz
O uso do PlaceFinder não requer o uso do Yahoo! Mapas ou Yahoo! APIs do Google Maps. Eddie Babcock Yahoo! Geo Technologies developer.yahoo.com/forum/PlaceFinder-General-Discussion/…
Mapperz
@Mapperz Bem, o TOS diz "VOCÊ NÃO DEVE:" {também citados em maiúsculas} "armazena ou permite que os usuários finais armazenem imagens de mapas, dados de mapas ou informações de localização geocodificada das APIs do Yahoo! Maps para qualquer uso futuro". Parece bastante claro que, se a intenção é "armazenar" os dados, eles violam os Termos de Serviço. Mas, certamente é deixado para interpretação. Tudo o que foi dito, se eu estivesse criando um aplicativo comercial, gostaria de garantir que minha interpretação fosse a mesma que a dos provedores de dados, pois eles (o Yahoo neste caso) possuem a melhor opção de interrupção.
11132 Jeffrey
4

A resposta curta para sua pergunta inicial é sim, desde que você use o serviço de mapeamento do Google , você pode armazenar os resultados. É explicitado claramente (após algumas releituras) nos ToS e na API de geocodificação.

Você deve estar ciente de que, como muitos outros serviços populares de geocódigo, eles também exigem que você

  1. Use apenas os dados adquiridos e armazenados em cache do Google com seus utilitários de mapeamento
  2. Se esse é um utilitário publicamente gratuito interno, e não externo, você deve se registrar como um cliente comercial para usá-lo legalmente.

Observe com cuidado o número 1 ... distinção muito crítica, você pode armazenar em cache, mas eles não querem que você use o lat / long (por exemplo) no utilitário de mapeamento de outra pessoa, seja outro site ou um "homebrew" (embora seja honestamente, não sei como alguém pode rastrear onde os dados lat / long são usados.

todos os limites e outras restrições, conforme declarado por seus ToS e outros documentos governamentais.

user15518
fonte