Casa > N > No Android, Como Posso Calcular A Distância De Condução Entre Dois Locais Se Conheço A Sua Latitude E Longitude?

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;
}

De Satterlee Empson

Eu quero mesmo livrar-me do cabo e usar apenas o streaming. Quais são os melhores serviços de streaming que incluem televisão local? :: O Netflix está a morrer?