如何在Android / IOS中使用URI处理百度地图中的多个目的地

问题描述 投票:1回答:2

我们正在整合百度地图,并希望在地图上显示多个停工(目的地)。我们已经浏览了百度地图(http://lbsyun.baidu.com/index.php?title=uri/api/android)的官方文档,并找到了一个名为“viaPoints”的参数。根据文档,我们需要在viaPoints密钥中传递JSON,但是我们无法在URL中附加JSON。

在android中我们传递这样:

Intent i1 = new Intent();
i1.setData(Uri.parse("baidumap://map/direction?mode=driving&destination=上上&origin=西二旗&src=push&viaPoints={viaPoints:[{name:Beijing West Railway Station, lat:39.902463,lng:116.327737}]}"));
startActivity(i1);

我们想要实现多个目的地,如附图所示。

enter image description here

android ios maps baidu baidu-map
2个回答
0
投票

虽然您提到的文档看起来像是在Chinees但是有了一个想法。

您没有在数组viaPoints和JSON参数中的其他键周围使用双引号。

JSON需要采用这种格式

{
  "viaPoints": [
    {
      "name": "Beijing West Railway Station",
      "lat": 39.902463,
      "lng": 116.327737
    }]
}

试试这个

i1.setData(Uri.parse("baidumap://map/direction?mode=driving&destination=上上&origin=西二旗&src=push&viaPoints={\"viaPoints\":[{\"name\":\"Beijing West Railway Station\", \"lat\":39.902463,\"lng\":116.327737}]}"));

0
投票
   // Instantiates a new Polyline object and adds points to define a rectangle
PolylineOptions rectOptions = new PolylineOptions()
        .add(new LatLng(37.35, -122.0))
        .add(new LatLng(37.45, -122.0))  // North of the previous point, but at the same longitude
        .add(new LatLng(37.45, -122.2))  // Same latitude, and 30km to the west
        .add(new LatLng(37.35, -122.2))  // Same longitude, and 16km to the south
        .add(new LatLng(37.35, -122.0)); // Closes the polyline.

// Get back the mutable Polyline
Polyline polyline = myMap.addPolyline(rectOptions);
© www.soinside.com 2019 - 2024. All rights reserved.