Используя com.google.android.gms.maps.GoogleMap, могу ли я нарисовать маршрут, как на maps.google.com?

Я ожидал, что можно будет прокладывать маршруты/прокладывать маршрут между двумя точками с помощью Google Maps для Android (обратите внимание: Google Maps, а НЕ Google Navigation).

Я только что получил com.google.android.gms.maps.GoogleMap (используя MapFragment) для работы, но я не вижу никаких методов для рисования/получения маршрута между двумя точками. Вот я и подозреваю, что этого делать нельзя.

Кто-то может это подтвердить или опровергнуть? знак равно

PS: я знаю о Google Navigation. Можно использовать Intent для получения маршрута туда, но проблема в том, что я не могу заставить его быть встроенным в мое приложение, что в каком-то смысле не идеально. Поэтому я смотрел на Карты вместо этого.


person Ted    schedule 18.01.2013    source источник


Ответы (2)


но я не вижу никаких способов рисования/получения маршрута между двумя точками. Вот я и подозреваю, что этого делать нельзя.

Используйте a Polyline, чтобы нарисовать маршрут.

«Построение маршрута» не было частью Карт V1 и не является частью Карт V2. Вам нужно будет найти какой-нибудь веб-сервис, который даст вам информацию о маршруте.

Кроме того, я настоятельно рекомендую вам обратиться к квалифицированному юрисконсульту для ознакомления с условиями использования Maps V2, чтобы подтвердить, что то, что вы пытаетесь сделать, находится в рамках этого соглашения, в котором есть конкретные положения, касающиеся предоставления помощи в навигации.

person CommonsWare    schedule 18.01.2013
comment
Я попробую подход PolyLine... =) - person Ted; 19.01.2013

Получение маршрута обсуждается разработчиками Google с использованием API V2. API V1 на самом деле не является правильным ответом для этого. Вот код API V2.

public void setupLine(LatLng startLocation){
     //set up path
     PolylineOptions line=new PolylineOptions().add(startLocation).add(startLocation).color(mLineColour);
     mPath=mMap.addPolyline(line);
     mPath.setGeodesic(true);

     //Add 2 points
      pathPoints=new ArrayList<LatLng>(2);
      pathPoints.add(startLocation);//origin
      pathPoints.add(startLocation);//destination - updated later
    }

private void updateLine(LatLng position){
      //replace location
      pathPoints.set(1, position);

      //assign new points to path
      mPath.setPoints(pathPoints);

    }
person SamTube405    schedule 09.02.2013