как получить маршруты маршрута между двумя точками на карте, чтобы нарисовать маршруты проезда?

Есть ли способ использовать основное местоположение, Google или какой-либо другой API, чтобы указать две точки на карте и получить результирующий набор пар широта/долгота для маршрута?

я видел в этом руководстве Рисование полилиний или маршрутов в MKMapView, как рисовать направление движения используя основную графику... но в примере кода у него есть route.csv, который имеет предопределенный набор долгот и широт... как мне сделать пару долгот и широт, чтобы я мог рисовать направления движения.


person Rahul Vyas    schedule 14.10.2009    source источник


Ответы (4)


Компании вкладывают миллионы долларов в разработку алгоритмов маршрутизации, поэтому я очень сомневаюсь, что вы сможете получить их бесплатно где угодно (хотя я рад ошибаться). Например, Google Maps JavaScript API поддерживает маршрутизацию, так что я думаю, вы могли бы взломать это. Имейте в виду, результаты не будут быстрыми или красивыми.

person iKenndac    schedule 14.10.2009
comment
вы видели ссылку выше? я хочу сделать это через Objective-C - person Rahul Vyas; 15.10.2009
comment
Да, я видел ссылку. Как я уже сказал, вам нужно найти службу, которая позволит вам это сделать, и я не знаю ни одной бесплатной. Microsoft Virtual Earth (также известная как Bing Maps) имеет веб-службу, но, насколько я могу судить, она платная (см. microsoft.com/maps/platform/default.aspx). Я считаю, что это служба JSON, поэтому вам нужно будет что-то создать для связи с ней, что выходит за рамки этого вопроса. - person iKenndac; 15.10.2009

Если вы ограниченно используете запрос маршрутов (менее определенного количества в день) и всегда отображаете результаты на карте Google, вы имеете право на бесплатный API Google Directions.

https://developers.google.com/maps/documentation/directions/

Внимательно прочитайте лицензионную часть, чтобы узнать ограничения. Вы легко сможете запросить ответ json, который будет проще анализировать, чем xml (плюс Apple добавила парсер json в iOS).

Например

http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&sensor=false

Если вы превысили лимит, вам следует изучить их бизнес-лицензии.

person Cyril Godefroy    schedule 26.03.2012

Старый вопрос, но MTDirectionsKit недавно был открыт, и он отлично работает:

MTDirectionsKit

person Codezy    schedule 19.02.2014

с помощью Google API вы можете проложить маршрут из двух точек, единственная проблема в том, что вы можете использовать его только один раз в день, если не платите.

Поищите, как получить ключевой API от google, на ютубе много роликов об этом.

Кроме того, у меня есть библиотека, которая поможет вам провести линию между точками эта https://github.com/jd-alexander/Google-Directions-Android

После того, как вы реализовали его в build.gradle(Module:app), реализуйте library в классе, например

public class LocationMapActivity extends AppCompatActivity implements RoutingListener

появится ошибка при реализации методов (обязательно их реализовать, но использовать их не обязательно).

Я только что сделал это:

 public void route(){

       Routing routing = new Routing.Builder()
                    .travelMode(/* Travel Mode */)
                    .withListener(/* Listener that delivers routing results.*/)
                    .waypoints(/*waypoints*/)
                    .key(/*api key for quota management*/)
                    .build();
        routing.execute();
    }

Больше информации по ссылке.

person Bryan J. Diaz    schedule 21.08.2019