Sim, sempre antecipe as coordenadas para flutuar.
Embora não seja provável que o edifício mude na superfície da Terra, o uso de coordenadas como identificadores / chaves para endereços é uma má ideia, pois o conjunto de dados se moverá de baixo de você:
Precisão é uma questão de definição. Um endereço é fixado com mais precisão na caixa de correio, na maior estrutura ou na porta da frente? Qual porta da frente? Talvez a garagem?
A precisão decimal é outra preocupação. É 33.754208
o mesmo que 33.754209
? Isso pode ser corrigido pelo arredondamento, mas você perde a precisão. Adicionar precisão decimal é um luxo que você pode não ter. Não importa quão preciso seja o seu decimal, é provável que eles sejam diferentes (especialmente considerando como os computadores comparam os tipos de flutuação), mesmo que sejam "iguais". Você é totalmente dependente dos detalhes de implementação de baixo nível neste momento.
Quando você não controla o conjunto de dados e usa um atributo físico para digitar alguma coisa, não pode garantir que a chave não será alterada. Mas isso é um problema porque seu banco de dados espera que o identificador seja único e constante. Mesmo se você atualizá-lo, e as colisões com outro ponto de dados?
Mesmo se você possuir o conjunto de dados, estará sujeito aos dois primeiros problemas. Definições e implementações mudam. Você nunca pode atualizar seus dados de coordenadas, mesmo para obter uma "precisão" melhor, mas os endereços ainda mudam, goste ou não, invalidando seu cache.
O que você pode fazer, porém, é possuir a chave . Não use coordenadas como identificadores; em vez disso, atribua uma chave que seja garantida como única em seu aplicativo ( ou possivelmente no mundo ) e nunca deixe que isso mude.
No SmartyStreets, eu lido muito com endereços de geocodificação. Por exemplo, esse endereço é um padrão de construção. Está faltando um número secundário (apartamento / suíte). Embora nossos dados sejam no nível de bloco (quase no último piso), se pudéssemos obter o mais preciso possível, qual seria sua coordenada? No momento, atribuímos o nome a 33.75425, -84.38721
apenas alguns metros de onde o Google Maps o coloca. Deveria ser uma coordenada diferente se for o lobby versus uma unidade naquele prédio? A resposta a essa pergunta pode mudar, alterando o conjunto de dados subjacente. E as unidades que estão logo acima uma da outra (você pode marcar um ponto em um edifício, mas em qual andar você quis dizer)? O Google obviamente faz exatamente as mesmas perguntas e, se as respostas mudarem, as coordenadas também.
Como tal, sempre recomendamos que as pessoas forneçam ao endereço uma chave que eles controlam para identificá-lo exclusivamente e nunca o alterem.
Por quê?
Os endereços estão uma bagunça. Eles também podem mudar, especialmente se você começar a fazer perguntas filosóficas sobre "O que realmente significa um endereço? Representa um prédio ou morador? Ou uma caixa de correio?" e quando você começa a considerar que os endereços são temporais, o que significa que eles mudam com o tempo, fica ainda mais feio.
Também ouvimos pessoas que tentam fazer hash nos endereços ou usar o código de barras do ponto de entrega como um identificador. Não faça isso, porque mesmo em um formato padronizado, os endereços podem mudar e ainda assim ser o "mesmo" endereço. E o código de barras do ponto de entrega, erroneamente considerado único para um endereço, é duplamente culpado: ele muda e não é necessariamente único. Legal né?
tl; dr Faça com que seu banco de dados confie o menos possível no endereço e nas coordenadas reais.