2015-06-05 2 views
0

Я хотел бы добавить в приложение возможность открывать приложение Google Maps более чем с двумя точками, но я могу установить только начальную точку и конечную точку. Как добавить путевые точки? Я пробовал uri, как описано в https://stackoverflow.com/a/13565504/3626048, но он не работает. В Google Maps doc https://developers.google.com/maps/documentation/android/intents нет ничего об этом. Можно ли даже добавить путевые точки к намерениям Google Maps?URI для Google Maps Intent с путевыми точками

ответ

1

Я думаю, вы можете использовать +to:waypoint после адреса назначения. Например:

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

Или:

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

+0

Это не работает, как Google Maps Intent, когда Maps приложение запускает он говорит, что Google Maps не может открыть ссылку :( – user3626048

+0

Ах да ... Я думаю, я слышал, как кто-то сказал, что раньше на карте Google ios – kaho

+0

Есть ли другой способ? – user3626048

1

Благодаря @kaho, для этого "Я думаю, что вы можете использовать +, чтобы:. Точку после адреса назначения"

Это работает для меня с несколькими точками пути:

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); 
Смежные вопросы