No Android, como posso calcular a distância de condução entre dois locais se conheço a sua latitude e longitude?
google fornece o seguinte url :
http://maps.google.com/maps/api/directions/xml?origin=lat1,long1&destination=lat2,long2&sensor=false&units=metric
p>se você substituir lat1, long1 pelas suas coordenadas de origem e lat2, long2 pelo destino, você pode obter dados de resposta no formato JSON ou XML conforme sua escolha, que você pode usar para obter informações relevantes.
replace xml with json e.g.
>http://maps.google.com/maps/api/directions/json?origin=lat1,long1&destination=lat2,long2&sensor=false&units=metric
obter dados em formato JSON.
p> agora substitua todas as variáveis com seu respectivo valor, por exemplo :
http://maps.google.com/maps/api/directions/json?origin=12.961652,77.636785&destino=12.963837,77.641334&sensor=falso&unidades=métrico
Isto lhe dará o resultado no formato XML....
você só precisa analisar estes dados para obter o que é necessário
I'escrevi aqui uma função que faz todo o trabalho e retorna a distância...
p>public String getDistance(double lat1, double lon1, double lat2, double lon2) {
String distance = "";
Sistema.out.println(lat1+" "+lon1+" "+lat2+" "+lon2);
String url = "http://maps.google.com/maps/api/directions/xml?origin=" + lat1 + "," + lon1 + "&destination=" + lat2 + "," + lon2 + "&sensor=falso&unidades=métrico";
String tag[] = {"text"}; // dará distância como string e.g. 1.2 km
// ou tag[] = {"value"} if you want to get distance in metre e.g. 1234
HttpResponse response = null;
try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(url);
response = httpClient.execute(httpPost, localContext);
InputStream é = resposta.getEntity().getContent();
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(is);
if (doc != null) {
NodeList nl;
ArrayList args = new ArrayList();
for (String s : tag) {
nl = doc.getElementsByTagName(s);
if (nl.getLength() > 0) {
Node node = nl.item(nl.getLength() - 1);
args.add(node.getTextContent());
} else {
args.add(" - ");
}>br> }
distância = String.format("%s", args.get(0));
}
outra
{
System.out.print("Doc é nulo");
}
} catch (Exceção e) {
e.printStackTrace();
}
distância de retorno;
}
Artigos semelhantes
- Quão precisa é a latitude/longitude dos pinos largados usando o aplicativo Google Maps em um iPhone?
- Existe alguma forma de exportar os apontadores de mapas do Google (latitude/longitude) para uma folha de Excel?
- Você pode relatar uma condução imprudente se tiver imagens de vídeo da sua condução e da sua matrícula?
- Existe uma ligação entre os locais de implantação do coronavírus e os locais de implantação do 5G?