Olá Vinícius! Tudo bem?
Desculpe a demora em retornar.
Fico feliz em poder te ajudar com o desenvolvimento do seu projeto de otimização de rotas utilizando React Native integrado com mapas.
Para conseguir a distância entre dois pontos utilizando endereços em vez de latitude e longitude, você pode utilizar a API de Geocodificação reversa. Essa API permite que você converta um endereço em coordenadas geográficas (latitude e longitude) e vice-versa.
Uma opção é utilizar a API do Google Maps, que possui um serviço de Geocodificação reversa bastante completo. Você pode fazer uma requisição HTTP para a API, passando o endereço desejado, e ela retornará as coordenadas geográficas correspondentes.
Aqui está um exemplo de como fazer essa requisição utilizando o pacote axios no React Native:
import axios from 'axios';
const endereco = 'Rua Exemplo, 123, Cidade Exemplo';
axios.get(`https://maps.googleapis.com/maps/api/geocode/json?address=${endereco}&key=SUA_CHAVE_DE_API`)
.then(response => {
const { lat, lng } = response.data.results[0].geometry.location;
console.log(`Latitude: ${lat}`);
console.log(`Longitude: ${lng}`);
})
.catch(error => {
console.log(error);
});
Lembre-se de substituir "SUA_CHAVE_DE_API" pela sua chave de API do Google Maps. Para obter uma chave de API, você precisa criar um projeto no Console de APIs do Google.
Com as coordenadas geográficas em mãos, você pode utilizar uma biblioteca de cálculo de distância, como o Haversine, para calcular a distância entre dois pontos.
Espero que essa dica te ajude a seguir o caminho certo no desenvolvimento do seu projeto.
Um abraço e bons estudos.