我试图借助此链接绘制从当前位置到目的地位置的行车路线 http://wptrafficanalyzer.in/blog/driving-route-from-my-location-to-destination-in-google-maps-android-api-v2/
在点击地图的同时获取路线但是我希望在地图自动加载后手动给出目的地位置路线将显示如何执行此操作请发送代码..
答案 0 :(得分:0)
有两种方法可以实现这一目标,
1.)使用内置Geocoder
2.)使用Google api
只需在两种方法中的任何一种方法中传递您的地址,然后获取相应地址的纬度和经度,并将其与当前位置纬度和经度一起传递以绘制路线。
答案 1 :(得分:0)
请检查此代码:
1)调用谷歌地图服务获取路线信息:
StringBuilder urlString = new StringBuilder();
urlString
.append("http://maps.googleapis.com/maps/api/directions/json?sensor=true");
urlString.append("&origin=");// from
urlString.append(curLocation.getLatitude());
urlString.append(",");
urlString.append(curLocation.getLongitude());
urlString.append("&destination=");// to
urlString.append(carPark.getLat());
urlString.append(",");
urlString.append(carPark.getLng());
Log.d("xxx", "URL=" + urlString.toString());
aq.ajax(urlString.toString(), JSONObject.class, this,
"gmapCallback");
2)从谷歌解析响应字符串。
public GeoPoint[] parseRoute(String content) {
Document doc = null;
GeoPoint[] route = null;
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(new ByteArrayInputStream(content.getBytes()));
if (doc.getElementsByTagName("GeometryCollection").getLength() > 0) {
// String path =
// doc.getElementsByTagName("GeometryCollection").item(0).getFirstChild().getFirstChild().getNodeName();
String path = doc.getElementsByTagName("GeometryCollection")
.item(0).getFirstChild().getFirstChild()
.getFirstChild().getNodeValue();
Log.d("xxx", "path=" + path);
String[] pairs = path.split(" ");
String[] lngLat;
// lngLat[0]=longitude
// lngLat[1]=latitude
// lngLat[2]=height
route = new GeoPoint[pairs.length];
GeoPoint gp;
for (int i = 0; i < pairs.length; i++) {
lngLat = pairs[i].split(",");
gp = new GeoPoint(
(int) (Double.parseDouble(lngLat[1]) * 1E6),
(int) (Double.parseDouble(lngLat[0]) * 1E6));
route[i] = gp;
Log.d("xxx", "pair:" + pairs[i]);
}
}
} catch (Exception e) {
Log.e(Utils.class.getName(), e.getMessage());
}
return route;
}