google map 自定义地图类型maptype_悄悄俏俏

来源:互联网 发布:python d3.js 编辑:程序博客网 时间:2024/04/29 21:00

使用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()));}
这样就解决了不能正常切换的问题了




原创粉丝点击