2012-08-29 3 views
9

Я использую следующий код, чтобы получить местоположение пользователя в PhoneGap (это работает отлично)Как выделить текущее местоположение пользователя на картах Google?

function getLocation() { 
    var win = function(position) { 
     var lat = position.coords.latitude; 
     var long = position.coords.longitude; 
     var myLatlng = new google.maps.LatLng(lat, long); 

     var myOptions = { 
      center: myLatlng, 
      zoom: 7, 
      mapTypeId : google.maps.MapTypeId.ROADMAP 
     }; 
     var map_element = document.getElementById("displayMap"); 
     var map = new google.maps.Map(map_element, myOptions); 
    }; 

    var fail = function(e) { 
     alert('Error: ' + e); 
    }; 

    var watchID = navigator.geolocation.getCurrentPosition(win, fail); 
} 

Это работает отлично от центровки текущего местоположения пользователя на карте. Но я хотел бы показать индикатор (красную точку) в местоположении пользователя. Но я вижу, что API Google предоставляет только 3 варианта центра, масштабирования и mapTypeId.

Есть ли доступные опции, которые можно использовать для выделения позиции или есть обходной путь?

EDIT

был в состоянии найти, что Google Maps API имеет маркер хо выделить какой-либо позиции. Это выглядит полезным, но это показывает красный шар по умолчанию, может ли быть изменен пользовательский образ?

ответ

12

Вы можете использовать только что выпущенный GeolocationMarker, который является частью Google Maps API Utility Library.

Он добавит маркер и круг точности в текущем местоположении пользователя. Он также позволяет разработчику настраивать маркер с помощью метода setMarkerOptions и указывать свойство icon.

4

Используйте значок внутри маркеров, как

var Marker = new google.maps.Marker({ 
     map: map, 
     animation: google.maps.Animation.DROP, 
     position: "", 
     icon: /bluedot.png 
}); 

вы можете использовать эту карту указание местоположения Google кругового значок синей точки, похожее на карту Google

enter image description here

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