通过Java访问Google Directions API
|
我正在尝试创建一个简单的Java应用程序。它希望能够输入起点和终点,并输出它在xml中采用的路径。
这就是我到目前为止所掌握的。我的主要重点是将xml输出输出到控制台。
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 directionService{
public static void main(String[] args) {
String start = \"geelong\";
String finish = \"melbourne\";
String region = \"au\";
System.out.println(calculateRoute(start,finish,region));
}
private static String calculateRoute(String start, String finish, String region){
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;
}
};
}
它抛出此错误
java.net.ConnectException:连接超时:connect
我尝试从其他Web服务获取数据,但它返回xml dump的罚款。我读到有关在Google文档中拥有密钥的信息,这是必需的吗?如果我直接将查询输入到浏览器中,它似乎可以正常工作。
http://maps.googleapis.com/maps/api/directions/xml?sensor=false&origin=geelong&destination=melbourne
任何帮助将不胜感激!
谢谢,
史蒂夫
没有找到相关结果
已邀请:
2 个回复
搂腹时
绊伦欧