このリンクhttp://wptrafficanalyzer.in/blog/driving-route-from-my-location-to-destination-in-google-maps-を使用して、現在の場所から目的地までの運転ルートを描画しようとしてい ます。 android-api-v2/
地図をクリックしているときにルートを取得していますが、地図が自動的にロードされたら目的地の場所を手動で指定したいのですが、ルートはこれを行う方法を示します pls はコードを送信します..
このリンクhttp://wptrafficanalyzer.in/blog/driving-route-from-my-location-to-destination-in-google-maps-を使用して、現在の場所から目的地までの運転ルートを描画しようとしてい ます。 android-api-v2/
地図をクリックしているときにルートを取得していますが、地図が自動的にロードされたら目的地の場所を手動で指定したいのですが、ルートはこれを行う方法を示します pls はコードを送信します..
それを達成するには2つの方法があります。
1.) 組み込みのジオコーダーを使用する
2.)Google APIを使用する
2 つの方法のいずれかで住所を渡し、対応する住所の緯度と経度を取得し、それを現在地の緯度と経度とともに渡してルートを描画します。
このコードを確認してください:
1) Google マップ サービスを呼び出して、ルート情報を取得します。
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) Google からの応答文字列を解析します。
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;
}