2

如何在谷歌地图颤动中将折线拟合到街道曲线?

我确实在 google_maps_flutter 中玩折线 2 个月,我有这个疑问:

  • 折线不遵循街道曲线或高速公路。
  • 折线具有 OnTap 回调,但是在多折线上,我无法获得任何 ID 或属性来区分我点击的人。

任何人都可以帮我解决这个问题吗?

我是 Flutter 的新手,我正在使用 Google 的 Directions API。也许不是解决这个问题的正确 API。

我需要该折线集遵循街道曲线。

google_maps_flutter 中的折线

PS:对不起,如果我的代码流血了你的眼睛!

google_maps_flutter 小部件:

GoogleMap(
  onMapCreated: (controller) {
    _mapController = controller;
  },
  initialCameraPosition: CameraPosition(
    target: getCurrentLocation(),
    zoom: 15,
  ),
  mapType: _currentMapType,
  myLocationEnabled: true,
  myLocationButtonEnabled: false,
  compassEnabled: true,
  rotateGesturesEnabled: true,
  markers: _markers,
  polylines: _polyline,
)

设置状态以显示折线和标记:

setState(
    () {
      _markers.clear();
      for (var point in itinerary) {
        _markers.add(
          Marker(
            markerId: MarkerId("stop ${point.latitude}"),
            position: LatLng(point.latitude, point.longitude),
            infoWindow: InfoWindow(title: point.address),
          ),
        );
      }

      _polyline.clear();
      _polyline.add(
        flutter.Polyline(
          polylineId: PolylineId("route"),
          points: ccc,
          width: 8,
          color: Colors.red,
          geodesic: true,
          jointType: JointType.round,
        ),
      );
      _mapController.animateCamera(
        CameraUpdate.newLatLngZoom(
            LatLng(origin.lat, origin.lng), 13.0),
      );
    },
);

Google 路线 API 调用:

GoogleMapsDirections(apiKey: apiKey).directions(origin, destination, waypoints: itinerary, ).then((DirectionsResponse response) { return response }
4

3 回答 3

2

我从 Github 成员那里得到了一些建议,告诉我尝试 SnapToRoad,现在我得到了更多关于路线的详细信息,但高速公路仍然是直升机的旅行

一个简单的 GET 到https://roads.googleapis.com/v1/snapToRoads的 API_KEy 和我以前的折线的一些点有帮助。

这是SnapToRoad的链接

于 2019-07-18T19:03:35.383 回答
0

试试这个酒吧:google_map_polyline

于 2019-07-19T10:16:36.367 回答
0

那是因为折线只是您绘制的一条线,要做您想做的事情,需要在点之间制作一条路线,并使用生成的坐标制作一条折线。

检查我发现的本教程:https ://www.developerlibs.com/2018/08/flutter-how-can-draw-route-on-google.html

于 2019-07-17T17:24:37.517 回答