如果你使用flutter_map插件,那么你可以轻松地绘制半径圆。这是代码。
FlutterMap(
options: MapOptions(
center: LatLng(latitude, longitude),
zoom: 16.0
),
layers: [
TileLayerOptions(
urlTemplate: "map url",
additionalOptions: {
"accessToken" : "xxx",
"id" : "map id"
}
),
MarkerLayerOptions(
markers: Marker( //marker
width: 25.0,
height: 25.0,
point: LatLng(latitude, longitude),
builder: (context) {
return Container(
child: IconButton(
icon: Icon(Icons.my_location),
iconSize: 25.0,
color: Color(0xff9045f7),
onPressed: () {
print('marker tapped');
},
),
);
}
)
),
CircleLayerOptions(
circles: CircleMarker( //radius marker
point: LatLng(latitude, longitude),
color: Colors.blue.withOpacity(0.3),
borderStrokeWidth: 3.0,
borderColor: Colors.blue,
radius: 100 //radius
)
)
],
),)
一种方法是更改标记的图标
mapController.addMarker(MarkerOptions(
position: LatLng(37.4219999, -122.0862462),
icon: BitmapDescriptor.fromAsset('images/circle.png',),
),);
在android / ios上设置适当的权限后,在google maps选项上设置trackCameraPosition: true
和myLocationEnabled: true
,之后你可以通过以下代码在当前位置添加你的图像
mapController.addMarker(MarkerOptions(
position: mapController.cameraPosition.target,
icon: BitmapDescriptor.fromAsset('images/circle.png',),
),);
这是一篇很好的文章,解释了使用Google Maps for Flutter(开发人员预览版)插件可以做的所有事情article
请记住,谷歌地图小部件是开发人员预览版,版本为0.2。许多事情和能力可能在未来几个月内发生变化。
https://github.com/flutter/plugins/pull/1136提供此功能的开放式拉取请求
但是谷歌团队还没有接受它,因为许可证与提交者有关。我不知道这是否会合并。接受了很多拉请求,但没有集成。