2015-10-12 5 views
1

Я пытаюсь указать маркер на карте с помощью следующего вызова:Google Map v3 - GetPosition не является функцией

$('#sideBar').on('click','.rightCliker',function(e){ 
     e.preventDefault(); 
     var relationId  = $(this).attr('data-id'); 
     var markerPrt  = $('marker_'+relationId); 
     map.setZoom(9); 
     map.setCenter(markerPrt.getPosition()); 
    }); 

Но я получаю следующее сообщение об ошибке:

Uncaught TypeError: markerPrt. getPosition не является функцией

Что я сделал не так? Спасибо ;-)

+1

Возможный дубликат [Получение Lat/Lng от Google] (http://stackoverflow.com/questions/5290336/getting-lat-lng-from-google-marker) – Andreas

+0

Я не хочу получать новые координаты, но как точечный конкретный элемент ^^ – WalkerNuss

+1

'getPosition' будет работать над объектом-маркером и в вашем коде' var markerPrt = $ ('marker _' + relationId); 'похоже, что вы выбираете элемент маркера, который не будет работать. Где вы нарисовали маркер на карте в коде, попробуйте сделать его глобальным, а затем пользователь 'getPosition' –

ответ

5

Я не уверен, но проверьте тип вашего JS-элемента. Я подозреваю, что это объект DOM, а не объект Marker. Добавьте к своей функции: console.log (markerPrt) и проверьте в консоли браузера, каков тип вашего объекта.

0

Вы можете попытаться настроить маркер на позицию массива с помощью атрибута данных HTML: http://www.w3schools.com/tags/att_global_data.asp, где вы можете сохранить любое значение, например. индекс массива данного маркера или даже его коорды.

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