2012-06-20 3 views
1

Я пытаюсь выяснить способ ограничить тащит вариант карты Google, такие, что:Карта Google: Избегайте показывать море

  • посмотреть на карте ограничено, чтобы показать только определенную страну.
  • , но при более высоких уровнях масштабирования пользователь может перетащить карту таким образом, чтобы на море было только море.

Мое требование, несмотря на то, какой уровень масштабирования находится у пользователя, он не должен перетаскивать карту, чтобы иметь вид на море. то есть только земля должна быть показана, если пытаться уйти в море, должна быть ограничена (предотвратить перетаскивание).

Я определил границы, чтобы успешно ограничивать отображение карты. , но проблема в более высоких уровнях масштабирования, пользователь может перетащить карту, все еще находясь в границах, но показывает только море, которое я хочу предотвратить.

Но все же я не мог понять, как это сделать. Может ли кто-нибудь предложить метод/механизм, пожалуйста?

спасибо ...

ответ

1

Я немного растерялся о вашем вопросе.

Вы говорите

«на более высоких масштабирования уровней, пользователь может перетаскивать карту таким образом, что только море находится в представлении»

, а затем вы говорите

«несмотря на то, что зум уровень, в котором пользователь находится, он не должен перетаскивать карту, чтобы иметь вид на море »

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

Например:

function intialize{ 

    map = new google.maps.Map(document.getElementById("map_canvas"); 
    map.setOptions({ draggable : true }); 

} 

google.maps.event.addListener(map,'zoom_changed',function() { 
    if (map.getZoom() >= 4) { 
    map.setOptions({ draggable : false}); 
    } 
}); 

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

+0

Да, это именно то, что я имел в виду. Но я думаю, что если я смогу получить граничные координаты страны (это означает, что вдоль ее границы), то это должно быть возможно? Потому что тогда мы всегда можем сравнить границу страны с областью перетаскивания (просмотра). – KTB

+0

Тогда я верю, что это то, что вы ищете. https://developers.google.com/maps/documentation/javascript/reference#MouseEvent События мыши, которые останавливают движение мыши дальше. И прокрутите несколько записей, и вы получите границы Lat Lng. – krikara

1

Здравствуйте, я посмотрел на этом примере, поэтому я предлагаю вам взглянуть на него один раз, если вы могли бы найти какое-то решение. MapView Example

Another Example I Refered is this

1

это на первый взгляд кажется очень трудно. И что бы вы сделали, если бы была видимая маленькая часть земли, это нормально?

Однако вы можете просто запретить пользователю перетаскивать карту. Установите draggable: false в MapOptions.

+0

Да, это нормально. спасибо ... – KTB

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