2016-06-09 67 views
0

我有两种地图类型,一种是路线图,一种是自定义的。 当我更改地图的typeMapId,并在选中时缩放和放大时,它会显示一秒钟的自定义地图,但会显示其上方的路线图。谷歌地图不能改变类型

如果我把路标的不透明度设置为0.1,我可以看到自定义地图。 我做了一个map.overlayMapTypes.push(自定义)无论选择什么类型的MapId,我都会在路线图上方看到自定义地图。 在网络标签中,我发现它首先获取自定义地图,然后是路线图。

//的MapOptions

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; 
} 

我能做些什么,使他们改变看当前选择的类型高于其他类型?谢谢您的帮助。

+1

什么' “flatMap”',应该不是说是'map.setMapTypeId( “default_map”);' – duncan

+0

的地图类型必须存在的@duncan尖出。 +查看我的答案以了解如何调用它。 – MrUpsidown

+0

tbh即时更改旧地图服务器,这部分已经在那里。它工作之前我改变了服务器,它不工作,如果我把它放在default_map或路线图 – Mei

回答

1

你可以用这种方式:

var mapType = "custom"; 
map.setMapTypeId(google.maps.MapTypeId[mapType]); 
+0

它找不到自定义的一个 – Mei

+0

然后请阅读[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)并更新您的问题,以便我们可以重新创建问题并进行测试。 – MrUpsidown