KML ファイルを MapView に描画する必要があります。私はインターネットを見ましたが、それを行う方法の例が見つかりませんでした.誰かがそれを行う方法の例を与えることができれば、それは素晴らしいでしょう!
質問する
2375 次
3 に答える
0
KMLファイルを解析してGoogleからGoogleのルートを抽出するこの方法は、2012年7月27日以降利用できなくなりました(GoogleがGoogleのルートを取得する構造を変更したため、JSONまたはXMLでのみ取得できるようになりました)。 KMLの代わりにJSONを使用します。
ここで私自身の質問の答えを参照してください。
于 2012-08-07T13:14:23.723 に答える
0
KML は現在サポートされていません。KML なしでそのようなトレースを描画できます。
1) Google サービスにリクエストを送信します。
Request : http://maps.googleapis.com/maps/api/directions/output?parameters Info about : https://developers.google.com/maps/documentation/directions/
2) リクエストを送信
3) JSON 応答を次のように解析します。
JSONObject jsonObject;
...
JSONArray results = jsonObject.optJSONArray("routes");
JSONObject route = results.optJSONObject(0);
JSONArray legs = route.optJSONArray("legs");
JSONObject leg = legs.optJSONObject(0);
JSONArray steps = leg.optJSONArray("steps");
for (int i=0; i < steps.length(); ++i) {
JSONObject step = steps.optJSONObject(i);
JSONObject startP = step.optJSONObject("start_location");
JSONObject endP = step.optJSONObject("end_location");
JSONObject polyline = step.optJSONObject("polyline");
String encodedPoints = polyline.optString("points");
...
4)encodedPointsには、これでデコードできる多くのポイントがあります:マップビューは、google Directions APIを使用して方向を描画します-ポリラインのデコード
5) オーバーレイを次のように描画します。
private class Road extends Overlay {
private ArrayList<GeoPoint> list;
private Paint paint;
public Road(ArrayList<GeoPoint> list) {
this.list = new ArrayList<GeoPoint>();
this.list.addAll(list);
paint = new Paint();
paint.setColor(Color.MAGENTA);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(4);
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
drawPath(mapView, canvas);
}
private void drawPath(MapView mv, Canvas canvas) {
int x1 = -1;
int y1 = -1;
int x2 = -1;
int y2 = -1;
Point point = new Point();
for (int i=0; i < list.size(); i++) {
mv.getProjection().toPixels(list.get(i), point);
x2 = point.x;
y2 = point.y;
if (i > 0) {
canvas.drawLine(x1, y1, x2, y2, paint);
}
x1 = x2;
y1 = y2;
}
}
幸運を!
于 2012-08-07T12:54:06.937 に答える
0
Google は kml ファイルの処理を停止しました。xml または json を解析することをお勧めします。
于 2012-08-07T12:48:10.787 に答える