2016-06-09 56 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