2012-10-12 83 views
6

我是Google地圖的新手。
我想在地圖上顯示帶有三種不同地圖類型(地圖,衛星,混合)的Google地圖。無法在Google地圖中顯示3種地圖類型

對於我寫的代碼像

function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(35.02, 111.02), 
    zoom: 8, mapTypeControlOptions: { 
    mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID] 
    }, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

但與上面的代碼我可以只顯示在地圖和衛星地圖類型。第三種地圖類型混合不顯示在地圖中。 另外,當我點擊類型衛星時,我得到一個像標籤一樣的選項。所以我不想在衛星下面顯示標籤選項。

+0

這是脫離主題,但刪除尾隨逗號這將在IE中引發錯誤:'mapTypeId:google.maps.MapTypeId.ROADMAP,' – duncan

回答

4

看起來你可以在地圖上只有4個MapTypeId標籤中的2個。

,但你可以可以在任何時間設置

map.setMapTypeId(google.maps.MapTypeId.HYBRID) 

迫使地圖hybrid,無論是用戶點擊一個鏈接,一個按鈕,蒂默,在你的代碼的最後,等

檢查此的jsfiddle:http://jsfiddle.net/RASG/vDLfs/

ddd


我剛剛發現了一個新的谷歌組。

當你添加google.maps.MapTypeId.HYBRIDmapTypeIds,你已經有google.maps.MapTypeId.SATELLITE,而不是顯示兩個選項谷歌地圖現在添加一個選項稱爲「標籤」,當你mouseover「衛星」。

效果與v2中的「混合」選項相同。

檢查更新的jsfiddle:http://jsfiddle.net/RASG/vDLfs/6/

eee

+0

感謝您的回覆..我也得到了像你一樣的解決方案提及。但我的客戶想要在地圖中顯示它。 他們已經使用了版本2,他們可以在地圖內製作它。現在他們想升級到版本3 –

+0

感謝您的信息。 –

+0

@krishnasavith不客氣。傳播消息到您的客戶:) – RASG

6

地圖V3永遠凝結在四個可用mapTypeIds(HYBRID,路線圖,衛星,地形)分成兩個按鈕加一個複選框每個按鈕。所以 衛星+ HYBRID會給你一個標籤複選框和路線圖+地形衛星按鈕會給你一個地形複選框中地圖按鈕。

請注意,當你將鼠標懸停在一個活躍按鈕,複選框纔會顯示,所以你必須在地圖模式看到按鈕下的地形複選框,並且必須在衛星模式查看標籤複選框!

據interresting看到,這裏居然混合式按鈕,但是當你添加混合到mapTypeIds 沒有增加SATELLITE它只是變得可見。「地形」按鈕也是如此,只有在將「地形」添加到列表中時纔會顯示,但是而不是 ROADMAP。

將mapTypeControlOptions.style切換到下拉框(DROPDOWN_MENU)而不是按鈕(HORIZONTAL_BAR)也不會在結果下拉框中顯示兩個以上的項目。就像按鈕一樣,最多會有兩個下拉項目加上每個項目的複選框。

+0

...加上您的自定義樣式(s),如果你創建他們。 – vaxquis

0

向顯示器添加Google地球地圖類型將禁用ROADMAP下的TERRAIN選項和SATELLITE下的HYBRID選項。