【发布时间】:2016-10-10 04:18:38
【问题描述】:
我有两种地图类型,一种是路线图,一种是自定义地图。 当我更改地图的 typeMapId 并在选择地图时放大和缩小时,它会显示自定义地图一秒钟,但会在其上方显示路线图。
如果我将路线图的不透明度设置为 0.1,我可以看到自定义地图。 我做了一个 map.overlayMapTypes.push(custom) 无论选择什么 typeMapId,我都会在路线图上方看到自定义地图。 在网络选项卡中,我看到它首先获取自定义地图,然后是路线图。
// 地图选项
var mapOptions = {
...
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControlOptions: {
mapTypeIds: [ "default_map", "custom" ]
}
}
// 添加自定义地图
var custom_opts = {
getTileUrl: ...,
tileSize: new google.maps.Size(256,256),
maxZoom: 24,
minZoom: 3
}
var custom = new google.maps.ImageMapType(custom_opts);
custom.projection = new FlatProjection();
map.mapTypes.set("custom", custom);
// 类型之间的切换
if (self.customShown) {
map.setMapTypeId("flatMap");
self.customShown = false;
}
else {
map.setMapTypeId("custom");
self.customShown = true;
}
我可以做些什么来改变它们并在其他类型上方看到当前选择的类型?感谢您的帮助。
【问题讨论】:
-
什么是
"flatMap",不应该是map.setMapTypeId("default_map"); -
地图类型必须存在,正如@duncan 指出的那样。 +查看我的答案以了解如何调用它。
-
我正在从旧的地图服务器更改地图服务器,这部分已经存在。在我更改服务器之前它可以工作,如果我放入 default_map 或 roadmap,它就不起作用
-
当我查看 map.mapTypes 时,它有自定义和平面地图。
标签: javascript jquery google-maps google-maps-api-3 maps