简体   繁体   English

如何从Directions API回应中取得行车路线?

[英]How to get driving directions from the directions api response?

I am trying to draw a route on google maps in android. 我正在尝试在Android的Google地图上绘制路线。 For that I use the google direction api to get the route points http://code.google.com/intl/de-DE/apis/maps/documentation/directions/ 为此,我使用谷歌方向api获取路线点http://code.google.com/intl/de-DE/apis/maps/documentation/directions/

Now I would like to know how to get the directions arrow (like: turn left,...) from the json response of this api. 现在,我想知道如何从此api的json响应中获取路线箭头(例如:向左转,...)。

A response look like: 响应如下所示:

    {
 "routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 48.306950,
           "lng" : 14.304310
        },
        "southwest" : {
           "lat" : 48.163440,
           "lng" : 14.033580
        }
     },
     "copyrights" : "Map data ©2012 GeoBasis-DE/BKG (©2009), Google",
     "legs" : [
        {
           "distance" : {
              "text" : "34.6 km",
              "value" : 34554
           },
           "duration" : {
              "text" : "31 mins",
              "value" : 1866
           },
           "end_address" : "Linz, Austria",
           "end_location" : {
              "lat" : 48.306950,
              "lng" : 14.285860
           },
           "start_address" : "Wels, Austria",
           "start_location" : {
              "lat" : 48.16545000000001,
              "lng" : 14.036620
           },
           "steps" : [
              {
                 "distance" : {
                    "text" : "0.3 km",
                    "value" : 252
                 },
                 "duration" : {
                    "text" : "1 min",
                    "value" : 28
                 },
                 "end_location" : {
                    "lat" : 48.164110,
                    "lng" : 14.033890
                 },
                 "html_instructions" : "Head \u003cb\u003esouthwest\u003c/b\u003e on \u003cb\u003eHans-Sachs-Straße\u003c/b\u003e toward \u003cb\u003eGemeindestr.\u003c/b\u003e",
                 "polyline" : {
                    "points" : "ai~dH{ottAHHHNN`@jBjFzBxF"
                 },
                 "start_location" : {
                    "lat" : 48.16545000000001,
                    "lng" : 14.036620
                 },
                 "travel_mode" : "DRIVING"
              },
              {
                 "distance" : {
                    "text" : "0.1 km",
                    "value" : 149
                 },
                 "duration" : {
                    "text" : "1 min",
                    "value" : 48
                 },
                 "end_location" : {
                    "lat" : 48.163440,
                    "lng" : 14.03470
                 },
                 "html_instructions" : "At the roundabout, take the \u003cb\u003e3rd\u003c/b\u003e exit onto \u003cb\u003eMagazinstr./B1\u003c/b\u003e",
                 "polyline" : {
                    "points" : "u`~dHy~stAEBCDAHAH@H@HDHB@B@D?DABADGBG@G?GAIAGvAkCP_@"
                 },
                 "start_location" : {
                    "lat" : 48.164110,
                    "lng" : 14.033890
                 },
                 "travel_mode" : "DRIVING"
              },
    .
    .
    .

This should be possible, because google maps: http://maps.google.com/ uses the same direction api (as far as i know) and it draws such arrows on the left side of every entry of the route description (just calculate any route to see what I mean). 这应该是可能的,因为谷歌地图: http : //maps.google.com/使用相同的方向api(据我所知),并且它在路线描述的每个条目的左侧绘制了这样的箭头(只需计算任何途径,以了解我的意思)。

I very appreciate every kind of help 我非常感谢各种帮助

Have a look at my answer . 看我的答案 This will give you an other way get the direction instructions using KML file 这将为您提供另一种使用KML文件获取路线指示的方法

This is what I am using, 这就是我正在使用的

    Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+latitude_cur+","+longitude_cur+"&daddr="+latitude+","+longitude));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_LAUNCHER );     
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM