URI for Google Maps Intent with waypoints

前端 未结 2 774
闹比i
闹比i 2021-01-07 13:25

I would like to add to my app ability to open Google Maps app with more than 2 points but I can only set start point and end point. How to add waypoints? I\'ve tried uri as

相关标签:
2条回答
  • 2021-01-07 14:05

    I think you can use +to:waypoint after the destination address. For example:

    https://www.google.com/maps?saddr=San+Francisco&daddr=GooglePlex+Mountain+View+to:San+Jose

    Or:

    https://www.google.com/maps?saddr=San+Francisco&daddr=GooglePlex+Mountain+View+to:Google+Building+45+to:San+Jose

    0 讨论(0)
  • 2021-01-07 14:12

    Thanks to @kaho, for this "I think you can use +to:waypoint after the destination address."

    This works for me with multiple way points:

      RealmList<LocationEntity> list = routeEntity.getStops();
      ArrayList<Map<String,Object>> latLang = new ArrayList<>();
    
      for (LocationEntity location: list){
        latLang.add(location.toMap());
      }
    
    
      String jsonURL = "https://maps.google.com/maps?";
      final StringBuffer sBuf = new StringBuffer(jsonURL);
      sBuf.append("saddr=");
      sBuf.append(destLat);
      sBuf.append(',');
      sBuf.append(destLong);
      sBuf.append("&daddr=");
      sBuf.append(sourceLat);
      sBuf.append(',');
      sBuf.append(sourceLong);
      sBuf.append("+to:");
      sBuf.append(latLang.get(0).get("latitude"));
      sBuf.append(',');
      sBuf.append(latLang.get(0).get("longitude"));
      sBuf.append("+to:");
      sBuf.append(latLang.get(1).get("latitude"));
      sBuf.append(',');
      sBuf.append(latLang.get(1).get("longitude"));
      sBuf.append("+to:");
      sBuf.append(latLang.get(2).get("latitude"));
      sBuf.append(',');
      sBuf.append(latLang.get(2).get("longitude"));
      sBuf.append("+to:");
      sBuf.append(latLang.get(3).get("latitude"));
      sBuf.append(',');
      sBuf.append(latLang.get(3).get("longitude"));
      sBuf.append("+to:");
      sBuf.append(latLang.get(4).get("latitude"));
      sBuf.append(',');
      sBuf.append(latLang.get(4).get("longitude"));
    
      // sBuf.append("&sensor=true&mode=DRIVING");
      sBuf.append("&key=");
      sBuf.append("Your_API_KEY");
    
      MISLog.printDebug(sBuf);
    
      Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW,
        Uri.parse(sBuf.toString()));
      startActivity(sendLocationToMap);
    
    0 讨论(0)
提交回复
热议问题