2016-05-09 4 views
-1

Я пытаюсь включить перетаскивание с помощью кнопки «Включить» и отключить перетаскивание с помощью кнопки «Отключить» в моем коде карты Google. Я пытался с этим кодом после создания каждых маркеров:Включить/отключить перетаскивание маркера на карте Google

function Disable() { 
     marker.disableDragging();} 
function Enable() { 
     marker.enableDragging(); 
    } 

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

+2

Почему вы думаете, что код является правильным? «Marker.disableDragging» и «Marker.enableDragging» - это методы [API Google Maps Javascript API v2] (http://stackoverflow.com/tags/google-maps-api-2/info), используете ли вы эту версию API ? Какие ошибки javascript вы получаете? Просьба представить [Минимальный, полный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

ответ

3

Вы должны использовать

для отключения перетаскиваемым на карте

map.setOptions({draggable: true}); 

или

map.setOptions({draggable: false}); 

и для отключения/включения одного маркера вы должны использовать

marker.setDraggable(false); 

или

marker.setDraggable(true); 

, если вы хотите сделать это для всех маркеров вы должны итерацию по всей коллекции маркеров

+1

Ваш ответ немного вводит в заблуждение. map.setOptions ({draggable: false}) предотвращает перетаскивание карты СЕБЯ не ВСЕ МАРКЕРЫ. –

+0

Мой ответ объясняет, как для карты, так и для одного маркера. Firts disable draggable на карте второй для единственного маркера .. кажется ясным .. – scaisEdge

+1

Ну, вы сказали: «Вы должны использовать для всех маркеров» map.setOptions ({ draggable: false}); ' Вы указываете, что команда отключит перетаскивание для всех маркеров. Но он этого не делает, он отключил перетаскивание всей карты. Это две разные вещи. Во всяком случае, просто предлагая улучшения, может быть запутанным для некоторых пользователей. –

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