使用google map时想要更改地图类型的名字,比如“卫星”改为“XX卫星”等,而googlemap又没有提供修改默认地图类型参数的方法,只提供了获取默认类型参数的方法。
又研究了一下自定义的MapType,发现可以使用自定义的MapType来实现这个目的
封装了一个方法来实现添加自定义地图类型
public function addCoustomMapType(oldType:IMapType, newTypeName:String, newTypeAlt:String): void {
this.map.addMapType(new MapType(oldType.getTileLayers(), oldType.getProjection(), newTypeName, new MapTypeOptions({
shortName: "e",
urlArg: oldType.getUrlArg(),
maxResolution: oldType.getMaximumResolution(),
minResolution: oldType.getMinimumResolution(),
tileSize: oldType.getTileSize(),
textColor: Color.BLACK,
linkColor: Color.RED,
errorMessage: "This sea tile could not be loaded",
alt: newTypeAlt,
radius: oldType.getRadius()
})));
}调用时可以这样调用
addCoustomMapType(MapType.SATELLITE_MAP_TYPE, "satellite", "satellite map");这样就实现通过卫星地图类型生成一个自定义名称的地图类型了,照着这个原理,可以将默认的4中类型全部更改为自定义的
addCoustomMapType(MapType.HYBRID_MAP_TYPE, "hybrid", "hybrid map");
addCoustomMapType(MapType.NORMAL_MAP_TYPE, "normal", "normal map");
addCoustomMapType(MapType.PHYSICAL_MAP_TYPE, "physical", "physical map");完成后会发现地图类型上多了4个我们自定义的类型,然后再删除地图默认的4个即可
this.removeMapType(MapType.NORMAL_MAP_TYPE);
this.removeMapType(MapType.SATELLITE_MAP_TYPE);
this.removeMapType(MapType.HYBRID_MAP_TYPE);
this.removeMapType(MapType.PHYSICAL_MAP_TYPE);
在某些情况下,上述地图类型不能正常切换,后来又研究了一下API,发现一个貌似有用的办法
将上面的addCustomMapType方法改为
public function addCoustomMapType(oldType:IMapType, newTypeName:String, newTypeAlt:String): void {
this.addMapType(new MapType(oldType.getTileLayers(), oldType.getProjection(), newTypeName, MapTypeOptions.getDefaultOptions()));
}这样就解决了不能正常切换的问题了

本文介绍如何在Google Map中更改地图类型名称,如将"卫星"更改为"XX卫星"。由于Google Map API未提供直接修改默认类型参数的选项,作者通过研究自定义MapType找到了解决方案。文中分享了实现添加自定义地图类型的封装方法。
9109

被折叠的 条评论
为什么被折叠?



