O Bing Maps REST Services tem um formato de resposta reconhecível: um objeto de nível superior com um array resourceSets, cada um contendo resources, e cada recurso trazendo um objeto point com as coordenadas aninhadas dentro de um array coordinates, em vez de campos separados de latitude e longitude. Os desenvolvedores que trabalharam com ele, muitas vezes em empresas .NET onde o Bing Maps era a escolha natural, conhecem essa estrutura de cor, e reescrever tudo em torno de outra é exatamente o tipo de trabalho silencioso e tedioso que mantém uma migração fora da agenda por meses.
Uma chave gerada pelo Bing Maps Dev Center é enviada como parâmetro de consulta, um padrão compartilhado com a maioria das APIs de mapas para o consumidor. Essa parte da integração costuma ser a menor das preocupações; o parsing da resposta é onde está o acoplamento de verdade.
O My Geocode mantém um host de compatibilidade com o Bing Maps que reproduz exatamente essa estrutura resourceSets, então o código de parsing que lê resourceSets[0].resources[0].point.coordinates continua funcionando após a troca. O único conteúdo da resposta que não segue o formato original do Bing é o texto de copyright, termos e privacidade, que é nosso por necessidade. Os detalhes completos estão em /compatibility/bing-maps/.
Algumas coisas que vale verificar antes da virada:
Confirme se o seu código lê campos de confiança ou de código de correspondência, já que vale a pena compará-los rapidamente lado a lado
Confirme qual estilo de autenticação a sua biblioteca cliente usa; uma chave pode ser enviada como X-API-Key, Authorization: Bearer, autenticação HTTP Basic ou parâmetro de consulta, então o que a sua biblioteca já faz deve continuar funcionando
Decida se você quer ativar os campos extras opcionais (altitude, ameaças de IP, detalhes de rede) com mg_extras=1, já que eles ficam ao lado do formato padrão em vez de substituí-lo
O lado comercial é simples em comparação. Não há etapa de configuração de conta de faturamento: 2.500 requisições por dia são gratuitas sem nenhuma chave, e cada chave recebe suas próprias 2.500 requisições gratuitas por dia, contadas por rede. Acima dessa cota, é crédito pré-pago a € 0,0001 por requisição ou uma chave Unlimited a € 50 por mês, e o host de compatibilidade custa o mesmo que qualquer outro endpoint da plataforma.
Para equipes que usam geocodificação como parte de uma aplicação .NET ou corporativa maior, a migração geralmente tem um escopo menor do que parece de fora, porque o invólucro resourceSets normalmente é lido por meio de um punhado de métodos de acesso bem delimitados, e não espalhado pelo código. Encontrar primeiro esses pontos de acesso e depois apontá-los para o novo host em um ambiente de homologação é uma forma razoável de validar a troca antes de mexer no tráfego de produção.
Se a sua integração também chama um endpoint de fuso horário ou de altitude do Bing além da geocodificação, eles são tratados separadamente, já que as consultas de fuso horário e de altitude do próprio My Geocode funcionam de forma independente do host de compatibilidade de geocodificação e merecem ser integradas em seus próprios termos, em vez de forçadas pelo mesmo caminho de código. Os detalhes completos da cota, incluindo o X-Quota-Limit e os cabeçalhos de resposta relacionados que toda requisição traz, estão documentados em /docs/rate-limits/.
Automações no-code construídas sobre uma etapa de geocodificação exigem uma abordagem de migração diferente da usada em código próprio. Veja como lidar com essa troca.
Trocar de fornecedor de dados de localização não é apenas uma decisão técnica. Veja o que revisar do lado do processamento de dados e da privacidade nessa mudança.
Desligar a chave de API de um provedor antigo cedo demais ou tarde demais traz riscos nos dois casos. Veja como aposentar credenciais corretamente quando uma migração estiver concluída.