您的位置:首页 > 编程语言 > Go语言

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

2011-11-18 10:47 357 查看
使用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()));
}
这样就解决了不能正常切换的问题了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: