2015-06-04 2 views
1

Я использую слои KML в Картах Google. И когда я загружаю слой в карту, он отображается в каждом мире, если вы продолжаете горизонтальную прокрутку. Для слоев с контентом на довольно небольшой площади, которая не создает проблемы, так как карта будет автоматически увеличиваться, чтобы отображать только соответствующий контент со слоя. Но для слоев, которые показывают маркеры по всему миру, повторяя их снова в следующем мире, это похоже на кучу тарабарщины.Как предотвратить повторяющийся контент во всех мирах

Возьмите, к примеру, этот образец кода с Карт 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

Надеюсь, я понял ваш вопрос. Попробуйте ввести значение для minZOom в MapOptions так:

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

Нет, не то, что вы не можете * см * содержимое из следующего мира, но там не один. Разница в том, что если вы должны были панорамироваться в следующий мир горизонтально, он должен казаться пустым. –

+0

На картах Google нет понятия «один мир», а только концепция карты (плитки карты) и уровень масштабирования. Представление того, какая карта или часть карты всегда коррелирует с желаемым уровнем увеличения и обеспечивает разбиение ряда элементов на все одинаковые размеры (I 256 * 256), которые составляют саму карту. В случае, если ваша карта больше этого размера, а увеличение таково, что оно не предусматривает дополнительных элементов, менее подробные карты Google повторяют тот же элемент, что и в случае двух или более миров, которые мы видим бок о бок. – scaisEdge

+0

Но как обойти это? Я не знаю, можно ли выбрать «второй мир», чтобы никогда не отображаться, но я знаю, что маркеры могут быть ограничены одним миром, потому что я когда-то видел такой пример. Я просто не узнал, как это сделать. –

0

Я знаю, что это слишком поздно, но может быть, это было бы полезно для кого-то. Для предотвращения повторения маркеров вы можете установить optimized возможность ложной

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

You can find related topic here.

Смежные вопросы