在 Flutter 中,如何通过点击屏幕或单击按钮在 openstreetmap 上添加标记?
In Flutter, how to add a marker on openstreetmap by tapping a screen or clicking a button?
应该很简单,但是我好像找不到怎么做。
在 Flutter / openstreetmap 中,我需要:(1) 通过点击地图 and/or 单击按钮在地图上放置标记; (2) 用一条线连接其中两个标记。
如有任何想法,我们将不胜感激。
1) 添加标记:
List<Marker> markers = [];
内部构建方法:
FlutterMap(
mapController: _mapController,
options: MapOptions(
center: LatLng(41.238250, 69.342939),
zoom: 9.6,
onTap: (latlng) {
setState(() {
markers.add(
Marker(
width: 150.0,
height: 150.0,
point: latlng,
builder: (ctx) => const Icon(
Icons.location_on,
color: Colors.red,
size: 35.0,
),
),
);
});
}),
layers: [
MarkerLayerOptions(
markers: [
for (int i = 0; i < markers.length; i++) markers[i]
],
),
],
),
2) 如果您想查询两点之间的路线,您可以使用此服务,它是免费的。 http://project-osrm.org
我正在使用的 link 获取两点之间的路线。
需要,API键和起点lat-long和终点lat-long。
响应给你多个经纬度点,如果你把这些点给地图的 polyLine 参数,它会在两点之间画一条道路线
如果您需要对我的回答的某些部分进行任何说明,请告诉我
应该很简单,但是我好像找不到怎么做。
在 Flutter / openstreetmap 中,我需要:(1) 通过点击地图 and/or 单击按钮在地图上放置标记; (2) 用一条线连接其中两个标记。
如有任何想法,我们将不胜感激。
1) 添加标记:
List<Marker> markers = [];
内部构建方法:
FlutterMap(
mapController: _mapController,
options: MapOptions(
center: LatLng(41.238250, 69.342939),
zoom: 9.6,
onTap: (latlng) {
setState(() {
markers.add(
Marker(
width: 150.0,
height: 150.0,
point: latlng,
builder: (ctx) => const Icon(
Icons.location_on,
color: Colors.red,
size: 35.0,
),
),
);
});
}),
layers: [
MarkerLayerOptions(
markers: [
for (int i = 0; i < markers.length; i++) markers[i]
],
),
],
),
2) 如果您想查询两点之间的路线,您可以使用此服务,它是免费的。 http://project-osrm.org
我正在使用的 link 获取两点之间的路线。
需要,API键和起点lat-long和终点lat-long。
响应给你多个经纬度点,如果你把这些点给地图的 polyLine 参数,它会在两点之间画一条道路线
如果您需要对我的回答的某些部分进行任何说明,请告诉我