Pessoal estou procurando uma forma simples de utilizar a API do google maps, isso em java, para que eu consiga recuperar o trajeto em tempo real entre dois pontos.
Alguem pode me ajudar nisso?
Você não precisa usar a API em js pra isso, basta chamar um webservice (soap ou json) pra alguma API do google, tipo a directions:
https://developers.google.com/maps/documentation/directions/
[quote=Tchello] Você não precisa usar a API em js pra isso, basta chamar um webservice (soap ou json) pra alguma API do google, tipo a directions:
https://developers.google.com/maps/documentation/directions/[/quote]
Tchello, eu dei uma lida no link que você postou, eu sou iniciante na linguagem. Você poderia me dar um exemplo de código onde eu consigo informação sobre a distância de dois pontos em KM por exemplo? E no caso desse soap ou json, eu não tenho noção de como eu pego essa informação. Se você conseguisse um código simples, que consiga dar a distancia de dois pontos fixos para eu começar meu programa aqui, agradeceria. Obrigado. Se tiver algum link com um tutorial ajudaria bastante também, pois é meu projeto de faculdade.
Eu fiz com GWT e achei mão na roda!
Se estiver começando uma aplicação do zero, acho que vale a pena pensar a respeito!
Do contrário, vc vai ter que seguir os tutoriais ofericidos pela própria api.
[quote=RodrigoMarini_]Eu fiz com GWT e achei mão na roda!
Se estiver começando uma aplicação do zero, acho que vale a pena pensar a respeito!
Do contrário, vc vai ter que seguir os tutoriais ofericidos pela própria api.
[/quote]
Então o código que eu tenho até agora está assim:
import java.net.HttpURLConnection;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
public class Principal{
public static void main(String[] args) {
String start = "sao%paulo";
String finish = "belo%horizonte";
System.out.println(calculateRoute(start,finish ));
}
private static String calculateRoute(String start, String finish){
String result = "";
String urlString = "http://maps.googleapis.com/maps/api/directions/json?sensor=false&origin="+start+"&destination="+finish;
System.out.println(urlString);
try{
URL urlGoogleDirService = new URL(urlString);
HttpURLConnection urlGoogleDirCon = (HttpURLConnection)urlGoogleDirService.openConnection();
urlGoogleDirCon.setAllowUserInteraction( false );
urlGoogleDirCon.setDoInput( true );
urlGoogleDirCon.setDoOutput( false );
urlGoogleDirCon.setUseCaches( true );
urlGoogleDirCon.setRequestMethod("GET");
urlGoogleDirCon.connect();
DocumentBuilderFactory factoryDir = DocumentBuilderFactory.newInstance();
DocumentBuilder parserDirInfo = factoryDir.newDocumentBuilder();
Document docDir = parserDirInfo.parse(urlGoogleDirCon.getInputStream());
urlGoogleDirCon.disconnect();
result = docDir.toString();
return result;
}
catch(Exception e)
{
System.out.println(e);
return null;
}
};
}
Ele está me retornando esse erro org.xml.sax.SAXParseException: Content is not allowed in prolog.
null agora eu não sei se estou importando uma biblioteca que não tem na IDE, se tem algum erro na requisição, sei que o resulta da string que faz a solicitação digitada no browser retorna corretamente o valores que estou procurando. Se puder me ajudar, desde já agradeço!!!
Cara, se vc acessar a URL que montou no código (http://maps.googleapis.com/maps/api/directions/json?sensor=false&origin=sao%paulo&destination=belo%horizonte), verá que o formato de retorno é um JSON e você vai precisar da biblioteca específica (json.org) para manipular o retorno no java.
A própria documentação do google explica tudo em português e deixa exemplos simples como o que você procura: https://developers.google.com/maps/documentation/localsearch/jsondevguide?hl=pt-br
Cara você conseguiu resolver este problema, tenho o mesmo problema. Se puder ajudar.