2015-06-04 65 views
1

我在Google地圖中使用KML圖層。當我將圖層加載到地圖中時,只要保持水平滾動狀態,它就會顯示在每個世界中。對於內容很小但不構成問題的圖層,因爲地圖會自動縮放以僅顯示圖層中的相關內容。但對於整個世界顯示標記的圖層,讓它們在下一個世界再次重複,看起來像是一堆亂碼。例如,這個示例代碼來自Google地圖,但有一層全新世火山,而不是默認提供的圖層。如果你想看到所有這些,你會看到所有這些,而且你沒有提及什麼時候你到了他們重複你已經看過的那些地方。如何防止在全球範圍內重複使用內容

例子:http://jsfiddle.net/eppptn2x/

代碼:

var map; 
var elevator; 
var myOptions = { 
    zoom: 2, 
    center: new google.maps.LatLng(10, 0) 
}; 
map = new google.maps.Map(document.getElementById('map'), myOptions); 
var markers = []; 

var georssLayer = new google.maps.KmlLayer({ 
    url: 'http://www.volcano.si.edu/ge/GVPWorldVolcanoes.kml' 
    }); 
    georssLayer.setMap(map); 

如何防止這種行爲?如何讓所有圖層內容和任何標記僅限於一個世界?

回答

0

我希望我能理解你的問題。嘗試在這樣的mapOptions中輸入minZOom的值:

var myOptions = { 
    zoom: 2, 
    minZoom:2, 
    center: new google.maps.LatLng(10, 0) 
}; 
+0

不,不,你不能看到* *從未來世界的內容,但沒有一個。不同之處在於,如果您要水平平移到下一個世界,它應該顯示爲空。 –

+0

在谷歌地圖中,​​沒有「一個世界」的概念,只有地圖(地圖瓷磚)和縮放級別的概念。地圖或部分地圖的表示總是與所需的放大級別相關聯,並且提供了構成地圖本身的所有相同尺寸(I 256 * 256)的一系列元素的平鋪。如果你的地圖大於這個尺寸,並且放大倍數不能提供額外的元素,那麼詳細的谷歌地圖會重複相同的元素,就像我們並排看到的兩個或更多的世界一樣。 – scaisEdge

+0

但是如何解決這個問題呢?我不知道「第二世界」本身是否可以選擇永不顯示,但我知道這些標記可以限制在一個世界,因爲我曾經見過這樣一個例子。我從來沒有學過如何。 –

0

我知道這太晚了,但可能會對某人有用。 爲了避免重複的標記,你可以optimized選項設置爲false

var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: 'Hello World!', 
    optimized: false 
    }); 

You can find related topic here.