Клуб API Карт

Метка скользит вместе с экраном

Пост в архиве.
Илья Житенёв
26 июля 2012, 11:47

Здравствуйте. Столкнулся с забавной проблемой. Имеется код

 

 $('input#findme').bind('click', function () {              $("#MapMessage").hide("fast");

                    navigator.geolocation.getCurrentPosition(
                    // Обработчик успшеного получения координат
                    function (position) {
                        //myMap.geoObjects.remove(myPosition);
                      //map.removeOverlay(youp);
                      var coords = position.coords;
                      $("input#yaddress").val("" + coords.latitude + "," + coords.longitude + "");
                      userLocation = coords.latitude + ", " + coords.longitude;
                     myPosition = new ymaps.GeoObject({
                            // Геометрия.
                            geometry: {
                                // Тип геометрии - точка
                                type: "Point",
                                // Координаты точки.
                                coordinates: [coords.latitude + ', ' + coords.longitude]
                            },
                            properties: {
                                 iconContent: "Вы",
                                 hintContent: "Это Вы!",
                                 //balloonContentHeader: "Ваше примерное местоположение."
                             }
                        });
                        myMap.geoObjects.add(myPosition);
                        myMap.panTo([coords.latitude, coords.longitude], {
                                flying: true,
                                duration: 2000
                            });
                      
                   },
                  // Оработчик неудачного завершения получения коордиант
                 function (error) {
                     $("#MapMessage").attr("class","warning");
                     $("#MapMessage").html("При определении координат произошла ошибка. Ее код: " + error.code);
                     $("#MapMessage").show("fast");
                  },
                   // Параметры
                  {
                        enableHighAccuracy : false,     // Режим получения наиболее точных данных
                        timeout : 10000,                // Максиальное время ожидания ответа (в миллисекундах)
                        maximumAge : 1000               // Максимальное время жизни полученных данных
                    }
                );

Не трудно догадаться, что здесь происходит: по клику на кнопку мы определяем местоположение (координаты) пользователя, используя геолокацию браузера, затем создаём в этой точке метку и прокручиваем карту в эту точку.

Однако, заметил забавный глюк. После того как скрипт покажет где я, если я двигаю карту - метка двигается вместе с экраном - т.е. она получается фиксируется не на карте, а на средине экрана.

В чём может быть ошибка и как исправить? Спасибо.

3 комментария

лучше указать в каком броузере и ссылку приложить

  // Координаты точки.
                                  // Координаты точки.
                                coordinates: [coords.latitude + ', ' + coords.longitude]

тут у тебя ошибка, из-за этого и ползает метка.

попробуй вот так...

 coordinates: coords

или так как у Вас ниже  coordinates: [coords.latitude, coords.longitude]

Илья Житенёв
26 июля 2012, 12:22

Спасибо. Второй вариант помог. И чтож я сам вне догадался то :) Утро вечера мудренее.