Добавление маркера в мой gmaps4rails с помощью javascript

У меня возникли проблемы с использованием драгоценного камня gmaps4rails. Я использую сочетание javascript и gmaps4rails. Вот пример моего кода:

       function handle_locations(position) {

        alert("Length = " + Gmaps.map.markers.length);
        var yourStartLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

        var marker = new google.maps.Marker({position: yourStartLatLng});
        alert("Ola 2");

        if(document.getElementById("map") != null)
          alert("diff");

        Gmaps.map.markers[0] = marker;

        alert("Ola 333");
        //var map = $document.filter('#map');
        //var map = document.getElementById("map");
        //Gmaps.map.add_marker(marker);  
    }

navigator.geolocation.getCurrentPosition(handle_locations);

Функция handle_locations работает нормально, и я могу получить свое местоположение. Проблема заключается в том, чтобы добавить маркер на карту, созданную с помощью gmaps. как я могу добавить свой маркер геолокации на карту в этой функции?


person diogo38    schedule 04.07.2012    source источник


Ответы (1)


У меня была аналогичная проблема, и это сработало для меня.

lat = position.coords.latitude;
lng = position.coords.longitude;

Gmaps.map.callback = function() {
   Gmaps.map.createMarker({
      Lat: lat,
      Lng: lng, 
      rich_marker: null, 
      marker_picture: ""
   });
}

Убедитесь, что вы используете position.coords.latitude/longitude только после успешного выполнения запроса navigator.geolocation.getCurrentPosition(function(position) { (возможно, вы это делаете), потому что получение местоположения от пользователя асинхронно и займет некоторое время.

Вы можете проверить правильность широты и долготы с помощью

alert(lat+" "+lng);
person Jeewes    schedule 13.07.2012