Клуб API Карт

Как сделать ориентацию на метку!?

drac0Sha
18 ноября 2011, 17:40

function initialize() {

 var loc;

 loc="Москва, Земляной вал, 50";

 

            // Создание экземпляра карты и его привязка к созданному контейнеру

            map = new YMaps.Map(document.getElementById("YMapsID")

            // Установка для карты ее центра и масштаба

            map.setCenter(new YMaps.GeoPoint(geoCoords), 10);

// Добавление элементов управления

            map.addControl(new YMaps.Zoom()

            map.enableScrollZoom(

            // Создание метки 

           var geocoder = new YMaps.Geocoder(loc);

            YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {

             var geoCoords = geocoder.get(0).getGeoPoint(),

         geoPlacemark = new YMaps.Placemark(geoCoords);

         map.addOverlay(geoPlacemark);

            } 

         

 

}

у меня есть такой код
и открывает он на Москву с определённым зумом
так как 

      // Установка для карты ее центра и масштаба

            map.setCenter(new YMaps.GeoPoint(geoCoords), 10);

 

как можно сделать это динамически

чтобы показывалось мне именно с центровкой на результат геокодирования ) подскажите пожалуйста )

11 комментариев
Подписаться на комментарии к посту

судя по всему вы немного не понятно описали задачу.

вы создаете метку по результатам геокодирования, вы центрируете карту по координатам.

А что именно нужно сделать?

Перенести последнюю строчку в момент ровно после создания метки?

да, действительно, немного не внятно попытался объяснить ) дело в том, что ещё немного не правильный код я написал

у меня там 

 

         // Установка для карты ее центра и масштаба

            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

 

 

на Москву центровка

 

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

но ничего не получается

не получается, если у меня не Москва, а Питер

чтобы открывалась метка именно с центровкой на Питер

а только Москва, приходилось отдаляться масштабом и только тогда видно было метку

 

пробовал

map.setCenter(new YMaps.GeoPoint(geoPlacemark), 10);

не получилось )


по сути это

// Установка для карты ее центра и масштаба не зная координат

 

то есть где координаты эти определяются в геоПлэйсмарке

(по метке)

geoPlacemark = new YMaps.Placemark(geoCoords);

map.addOverlay(geoPlacemark);

map.setCenter(geoCoords, 10)

?

всё гениальное просто ) спасибо большое )

 

Здравствуйте! нужна ваша помощь. Собственно вопрос такой же. Как сделать текущее положение объекта центром карты. Я не совсем понял что куда прописывать Подскажите пожалуйста. Вот мой код:

 YMaps.jQuery(window).load(function () {
 var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(36.253474,49.941344), 14, YMaps.MapType.MAP);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
YMaps.MapType.PMAP.getName = function () { return "str1"; };
map.addControl(new YMaps.TypeControl([
YMaps.MapType.MAP,
YMaps.MapType.SATELLITE,
YMaps.MapType.HYBRID,
YMaps.MapType.PMAP
], [0, 1, 2, 3]));

YMaps.Styles.add("constructor#pmlbmPlacemark", {
iconStyle : {
href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmlbm.png",
size : new YMaps.Point(28,29),
offset: new YMaps.Point(-8,-27)
}
});


YMaps.Styles.add("constructor#FF3732c85Polyline", {
lineStyle : {
strokeColor : "FF3732c8",
strokeWidth : 5
}
});

честно говоря ) не могли бы вы объяснить, что он делает!?

у меня просто было геокодирование

вот ссылка на страницу http://www.drupal.ekonom-h.com/index.php

страница показывает данные о текущем положении объекта. впринципе больше ничего. Мне нужно чтобы это положение автоматически становилось центром карты. 

мне просто не понятен код, я не профессионал в этом. поэтому мне не ясно у вас происходит какое-то вычисление, выдают координаты, чтобы их ставить центром координат

вот у меня к примеру

я задаю буквами адрес, с помощью специальной функции Яндекса, высчитываю координаты и тогда могу ставить их центром

map.setCenter(geoCoords, 10)


понял Вас. Да, действительно, это немного не то что мне нужно. Мне нужно полученные координаты (число) автоматически делать центром карты. Случайно не встречали такого решения? Уже всё перерыл блин...

нет, к сожалению