首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在google地图上添加多边形?

如何在google地图上添加多边形?
EN

Stack Overflow用户
提问于 2019-07-02 17:27:35
回答 1查看 2.9K关注 0票数 4

我正在使用google_maps_flutter插件来使用谷歌地图。我想在谷歌地图上绘制一个多边形,从用户那里获取坐标。所获取的坐标是'Position‘对象的类型。

我已经尝试过使用map_view插件来绘制多边形。但它对我不起作用。

这是获取坐标的代码片段。

代码语言:javascript
复制
Geolocator geolocator = Geolocator();
StreamSubscription<Position> _positionStreamSubscription;
final List<Position> _positions = <Position>[];

void _toggleListening() {
if (_positionStreamSubscription == null) {
  const LocationOptions locationOptions =
      LocationOptions(accuracy: LocationAccuracy.best, distanceFilter: 10);
  final Stream<Position> positionStream =
      Geolocator().getPositionStream(locationOptions);
  _positionStreamSubscription = positionStream.listen(
      (Position position) => setState(() => _positions.add(position)));
  _positionStreamSubscription.pause();
}

setState(() {
  if (_positionStreamSubscription.isPaused) {
    _positionStreamSubscription.resume();
  } else {
    _positionStreamSubscription.pause();
  }
});
EN

回答 1

Stack Overflow用户

发布于 2019-11-13 03:21:33

如果您可以将Position对象的坐标转换为LatLng对象,那么就可以使用google_maps_flutter本身来绘制多边形。您可以看到one of its parameters允许使用Polygons。因此,在google_maps_flutter示例的基础上,我们将首先设置多边形:

代码语言:javascript
复制
Set<Polygon> myPolygon() {
  List<LatLng> polygonCoords = new List();
  polygonCoords.add(LatLng(37.43296265331129, -122.08832357078792));
  polygonCoords.add(LatLng(37.43006265331129, -122.08832357078792));
  polygonCoords.add(LatLng(37.43006265331129, -122.08332357078792));
  polygonCoords.add(LatLng(37.43296265331129, -122.08832357078792));

  Set<Polygon> polygonSet = new Set();
  polygonSet.add(Polygon(
      polygonId: PolygonId('test'),
      points: polygonCoords,
      strokeColor: Colors.red));

  return polygonSet;
}

然后只需将其提供给GoogleMap小部件。

代码语言:javascript
复制
GoogleMap(
  polygons: myPolygon(),
  mapType: MapType.normal,
  initialCameraPosition: _kGooglePlex,
  onMapCreated: (GoogleMapController controller) {
    _controller.complete(controller);
  },
),

这将在GooglePlex附近绘制一个小三角形。

有关此功能的更多信息,您可以参考Maps SDK Shapes的安卓文档。API的用法应该是相同的,如果不是相似的,那么您可以将其用作指导原则。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56849304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档