Google maps 颤振-谷歌地图-删除POI层
它在谷歌地图的网络版上有很好的文档记录,但我在FlitterGM模块中找不到相同的功能。 我需要在地图上隐藏兴趣点(商店、公共汽车站…) 是否有任何官方/非官方的方法来处理它,或者其他模块来处理它?您可以 好的,首先,正如你们所知,谷歌地图接受主题化,你们可以通过这个链接得到黑暗或任何你们喜欢的自定义地图(),你们可以得到json来插入你们的应用程序 您也可以遵循本指南() 好的,回到你的问题上来,在主题化过程中,你可以打开/关闭功能和POI 因此,您可以将其添加到json中,POI将消失Google maps 颤振-谷歌地图-删除POI层,google-maps,flutter,Google Maps,Flutter,它在谷歌地图的网络版上有很好的文档记录,但我在FlitterGM模块中找不到相同的功能。 我需要在地图上隐藏兴趣点(商店、公共汽车站…) 是否有任何官方/非官方的方法来处理它,或者其他模块来处理它?您可以 好的,首先,正如你们所知,谷歌地图接受主题化,你们可以通过这个链接得到黑暗或任何你们喜欢的自定义地图(),你们可以得到json来插入你们的应用程序 您也可以遵循本指南() 好的,回到你的问题上来,在主题化过程中,你可以打开/关闭功能和POI 因此,您可以将其添加到json中,POI将消失 {
{
"featureType": "poi",
"stylers": [
{ "visibility": "off" }
]
}
如果您只需要删除POI的默认googleMaps,您可以使用此json
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "off" }
]
}
]
另一个例子:这是我的完整设置。主题化,最后我禁用了POI
[
{
"elementType": "geometry",
"stylers": [
{
"color": "#ebe3cd"
}
]
},
{
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#523735"
}
]
},
{
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#f5f1e6"
}
]
},
{
"featureType": "administrative",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#c9b2a6"
}
]
},
{
"featureType": "administrative.land_parcel",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#dcd2be"
}
]
},
{
"featureType": "administrative.land_parcel",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#ae9e90"
}
]
},
{
"featureType": "landscape.natural",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "poi",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "poi",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#93817c"
}
]
},
{
"featureType": "poi.park",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#a5b076"
}
]
},
{
"featureType": "poi.park",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#447530"
}
]
},
{
"featureType": "road",
"elementType": "geometry",
"stylers": [
{
"color": "#f5f1e6"
}
]
},
{
"featureType": "road.arterial",
"elementType": "geometry",
"stylers": [
{
"color": "#fdfcf8"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry",
"stylers": [
{
"color": "#f8c967"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#e9bc62"
}
]
},
{
"featureType": "road.highway.controlled_access",
"elementType": "geometry",
"stylers": [
{
"color": "#e98d58"
}
]
},
{
"featureType": "road.highway.controlled_access",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#db8555"
}
]
},
{
"featureType": "road.local",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#806b63"
}
]
},
{
"featureType": "transit.line",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "transit.line",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#8f7d77"
}
]
},
{
"featureType": "transit.line",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#ebe3cd"
}
]
},
{
"featureType": "transit.station",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "water",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#b9d3c2"
}
]
},
{
"featureType": "water",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#92998d"
}
]
},
{
"featureType": "poi",
"stylers": [
{
"visibility": "off"
}
]
}
]
Thor Mitchell(谷歌地图API前产品经理)在这里说:()
就这些^^
编辑(19年10月14日): 更清楚地说。以下是所有步骤。 1-在资产文件夹中创建mapStyle.txt例如: 它只包含这段文字
[{
"featureType": "poi",
"stylers": [
{
"visibility": "off"
}
]
}]
2-将其添加到pubspec.yaml资产中,例如:
assets:
- assets/map_style.txt
3-在地图屏幕中执行以下操作
class MapScreen extends StatefulWidget {
@override
_MapScreenState createState() => _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
String _mapStyle;
GoogleMapController _mapController;
initState() {
super.initState();
rootBundle.loadString('assets/map_style.txt').then((string) {
_mapStyle = string;
});
}
//...
_onMapCreated(GoogleMapController controller) {
if (mounted)
setState(() {
_mapController = controller;
controller.setMapStyle(_mapStyle);
});
}
//...
@override
Widget build(BuildContext context) {
return GoogleMap(
initialCameraPosition: CameraPosition(
zoom: 15,
target: LatLng(
_currentPosition?.latitude,
_currentPosition?.longitude,
),
),
onMapCreated: _onMapCreated,
polylines: Set<Polyline>.of(_polyLines.values),
myLocationEnabled: true,
myLocationButtonEnabled: false,
mapType: MapType.normal,
compassEnabled: true,
);
}
}
class MapScreen扩展了StatefulWidget{
@凌驾
_MapScreenState createState()=>\u MapScreenState();
}
类_MapScreenState扩展状态{
字符串映射样式;
谷歌地图控制器(GoogleMapController);;
initState(){
super.initState();
loadString('assets/map_style.txt')。然后((string){
_mapStyle=字符串;
});
}
//...
_onMapCreated(谷歌地图控制器){
如果(已安装)
设置状态(){
_mapController=控制器;
controller.setMapStyle(_-mapStyle);
});
}
//...
@凌驾
小部件构建(构建上下文){
返回谷歌地图(
initialCameraPosition:CameraPosition(
缩放:15,
目标:拉丁美洲(
_当前位置?纬度,
_当前位置?经度,
),
),
onMapCreated:_onMapCreated,
多段线:一组(_polylines.values),
myLocationEnabled:对,
myLocationButtonEnabled:false,
mapType:mapType.normal,
同谋:是的,
);
}
}
您可以在谷歌地图控制器上使用:
yourMapController.setMapStyle('[{"featureType": "poi","stylers": [{"visibility": "off"}]}]');
要生成用于自定义地图样式的字符串,可以使用网站。地图使用什么插件/lib?google_maps_flattafaik,没有办法删除POI,唯一的解决方法是使用mapType:mapType.terrain
如何修改插件的本机代码。这是可能的吗?你总是可以用repo和修改google\u maps\u flatter包。回购协议可以在这里找到:问题是关于颤振。这看起来像是JS?更新答案的一个解决方案,有更多细节,我希望现在已经清楚了。这是可行的,尽管之后手势看起来不那么流畅,我认为json配置本身并没有问题,您可能希望在上为Flatter团队打开这个问题。这太棒了。甚至提供了不错的网站。