在折线上绘制两个标记之间的路线

时间:2018-03-19 12:36:01

标签: android google-maps-api-3 google-maps-markers google-polyline google-maps-direction-api

我正在开发一个用于公交传输的Android应用程序,因为我使用的是Google Maps API v3。我正在开发应用程序的城市最近改变了运输方案,因此我无法使用GTFS,因为其中的信息已经过时。我已经通过Interactive Polyline Encoder Utility绘制了所有的总线路由,然后解码它们并使用具有以下结构的busRoute类中的值:

public class bus {
public Polyline polyline;
private String route;
private String schedule; ...

所有总线路由都存储在一个allBuses数组中,每个路由都有类似的结构:

final bus busB1 = new bus(mMap.addPolyline(new PolylineOptions().color(0xFF393185).clickable(true).addAll(decodedPathbB1)),"\nТерминал Меден Рудник – бул. „Александър Георгиев – Коджакафалията” – бул. “Захари Стоянов” – ул. “Тодор Александров” –  ул. “Спортна” – Терминал Юг -  бул. “Христо Ботев” – бул. “Стефан Стамболов” – бул. “Никола Петков” – ул. “Петко Задгорски” – ул. “Георги  Калоянчев” – ул. “Димитър Аврамов” –  ул. “Аква Калиде” – Терминал Изгрев\n" + "\n" + "Терминал Изгрев –  ул. “Аква Калиде” – ул. “Димитър Аврамов” – ул. “Георги Калоянчев” – ул. “Петко Задгорски” – бул. “Никола Петков” – бул. “Стефан Стамболов” – бул. “Христо Ботев” – Терминал Юг – ул. “Спортна” – ул. “Тодор Александров” – бул. “Захари Стоянов” – бул. „Александър Георгиев – Коджакафалията – Терминал Меден РудникРазписание от Терминал Меден рудник\n\n","Разписание от Терминал Меден рудник\n" + "\n" + "делник (от понеделник до петък)\n" + "от 04:40 до 06:00 – 20 мин.\n" + "от 06:00 до 20:00 – 12 мин.\n" + "от 20:00 до 22:20 – 20 мин.\n" + "от 22:20 до 23:10 – 25 мин.\n" + "\n" + "празник (събота и неделя)\n" + "от 05:00 до 06:00 – 20 мин.\n" + "от 06:00 до 13:56 – 14 мин.\n" + "от 13:56 до 16:36 – 16 мин.\n" + "от 16:36 до 20:20 – 14 мин.\n" + "от 20:20 до 20:40 – 20 мин.\n" + "от 20:40 до 23:10 – 30 мин.\n" + "\n" + " \n" + "\n" + "Разписание от Терминал Изгрев\n" + "\n" + "делник (от понеделник до петък)\n" + "от 04:40 до 05:40 – 20 мин.\n" + "от 05:40 до 06:06 – 26 мин.\n" + "от 06:06 до 20:06 – 12 мин.\n" + "от 20:06 до 20:20 – 14 мин.\n" + "от 20:20 до 22:20 – 20 мин.\n" + "от 22:20 до 23:10 – 25 мин.\n" + "\n" + "празник (събота и неделя)\n" + "от 05:00 до 06:00 – 20 мин.\n" + "от 06:00 до 13:56 – 14 мин.\n" + "от 13:56 до 16:36 – 16 мин.\n" + "от 16:36 до 20:20 – 14 мин.\n" + "от 20:20 до 20:40 – 20 мин.\n" + "от 20:40 до 23:10 – 30 мин.");

对于公交车站我使用标记,我将其声明为一个单独的类并放入如下数组:

allBusStops = new Marker[]{
            mMap.addMarker(new MarkerOptions().position(new LatLng(42.451865, 27.418863)).icon(BitmapDescriptorFactory.fromResource(R.drawable.busstop)).title("Терминал Меден Рудник").snippet("Б11,Т1,9,9а,Бо,Б1,Б2,Б12,Т2")),

使用拆分片段并将其与每个总线的标签进行比较,将公交路线连接到相应的公交路线。

现在我想创建一个字段,用户可以通过该字段写一个地址,应用程序会给他指示到最近的公交车站,告诉他应该乘坐哪辆公交车,如果有必要,应该转乘哪辆公交车去想要的目的地。

对于第一部分,可以使用Directions API将WALKING travelMode运行到最近标记的LatLng。

如何使Directions API仅显示预先绘制的折线上所需目的地的路线,或者是否有办法不使用Directions API这样做?

0 个答案:

没有答案