Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 颤振-谷歌地图-删除POI层_Google Maps_Flutter - Fatal编程技术网

Google maps 颤振-谷歌地图-删除POI层

Google maps 颤振-谷歌地图-删除POI层,google-maps,flutter,Google Maps,Flutter,它在谷歌地图的网络版上有很好的文档记录,但我在FlitterGM模块中找不到相同的功能。 我需要在地图上隐藏兴趣点(商店、公共汽车站…) 是否有任何官方/非官方的方法来处理它,或者其他模块来处理它?您可以 好的,首先,正如你们所知,谷歌地图接受主题化,你们可以通过这个链接得到黑暗或任何你们喜欢的自定义地图(),你们可以得到json来插入你们的应用程序 您也可以遵循本指南() 好的,回到你的问题上来,在主题化过程中,你可以打开/关闭功能和POI 因此,您可以将其添加到json中,POI将消失 {

它在谷歌地图的网络版上有很好的文档记录,但我在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团队打开这个问题。这太棒了。甚至提供了不错的网站。