Клуб API Карт

Добавление метки на карту

Пост в архиве.
mircka2005
24 июня 2011, 17:47

Доброе время суток. у меня проблем.
обрисую её суть:
при загрузки страницы загружается карта,
есть поле ввода в котором вводятся координаты, 
нужно чтобы после ввода координат и нажатия кнопки точка ставилась на карте.
Аналог ( http://api.yandex.ru/maps/jsapi/examples/geocoding.html ) только с координатами.

9 комментариев

а в чем именно возникла проблема?

 

Вот есть такая функция она вызывается в момент загрузки страницы 

function yandexmap() {
   var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
   map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
   map.addControl(new YMaps.Zoom());
   var typeControl = new YMaps.TypeControl([YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID], [0,1,2]);
   map.addControl(typeControl);
   YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
   $("#koordinati").val(mEvent.getGeoPoint());
   $("#mashtab").val(map.getZoom());
   $("#koordinaticenter").val(map.getCenter());
   var myHtml = "Значение: " + mEvent.getGeoPoint() + " на масштабе " + map.getZoom();
   map.openBalloon(mEvent.getGeoPoint(), myHtml);
   });
   YMaps.Events.observe(map, map.Events.DragEnd, function (obj)
   {
   $("#mashtab").val(map.getZoom());
   $("#koordinaticenter").val(map.getCenter());
   });
   YMaps.Events.observe(map, map.Events.SmoothZoomEnd, function(map, minmax) {
   $("#mashtab").val(map.getZoom());
   $("#koordinaticenter").val(map.getCenter());
   }); 
}
ещё есть (поиск) :
function showAddresstoyandexmap(value) {
    var map, geoResult;
    map = YMaps.jQuery("#YMapsID");
            // Добавление элементов управления
            map.addControl(new YMaps.Zoom());
            var typeControl = new YMaps.TypeControl([YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID], [0,1,2]);
            map.addControl(typeControl);   
            // Удаление предыдущего результата поиска
            map.removeOverlay(geoResult);
            // Запуск процесса геокодирования
            var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
            // Создание обработчика для успешного завершения геокодирования
            YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
                // Если объект был найден, то добавляем его на карту
                // и центрируем карту по области обзора найденного объекта
                if (this.length()) {
                    geoResult = this.get(0);
                    geoResult.setOptions({dragable: true});
                    map.addOverlay(geoResult);
                    map.setBounds(geoResult.getBounds());
                    $("#mashtab").val(map.getZoom());
                    $("#koordinaticenter").val(map.getCenter());                   
                    $("#koordinati").val(geoResult.getGeoPoint());
//                    $("#mashtab").val(map.getZoom());                   
                }else {
                    alert("Ничего не найдено")
                }
            });
            // Процесс геокодирования завершен неудачно
            YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
                alert("Произошла ошибка: " + error);
            })
            YMaps.Events.observe(map, map.Events.DragEnd, function (obj)
            {
                $("#mashtab").val(map.getZoom());
                $("#koordinaticenter").val(map.getCenter());
            });   
            YMaps.Events.observe(map, map.Events.SmoothZoomEnd, function(map, minmax) {
                $("#mashtab").val(map.getZoom());
                $("#koordinaticenter").val(map.getCenter());
            });           
            YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
                $("#koordinati").val(mEvent.getGeoPoint());
                $("#mashtab").val(map.getZoom());
                $("#koordinaticenter").val(map.getCenter());
                map.removeOverlay(geoResult);
                var myHtml = "Значение: " + mEvent.getGeoPoint() + " на масштабе " + map.getZoom();
                map.openBalloon(mEvent.getGeoPoint(), myHtml);
            });       
}   
При выполнении поиска на карте появляется отметки зума , тоже самое при добавлении метки , чем больше меток тем больше отметок зума...
Как с этим бороться ?

 

что такое отметки зума?

 http://poznaysebya.com/scroll.png

На картинке показано то что я имею введу.

Может можно как то выключить карту я почитал про "Destruct " но не понял как сделать удаление карты со страницы или может вы решение подскажите как со скролом бороться ...

где на этой картинке скролл?

я вижу только контрол масштабирования

 

если честно я совсем запутался

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

затем избавится от каких-то "отметок зума"

теперь уже карту удалить

Да я про маштабирование имел в виду.
с добавлением я разобрался.
Просто при добавлении получается проблема контроля маштабирования , такая же проблема когда писк делаю. суть проблемы я показал на скриншоте.
Удаление карты это как вариант решения проблемы.( по крайней мере я так думаю.)

Если есть другой вариант подскажите.

 

а в чем проблема с контролом масштабирования? (я не увидел на картинке)

вы можете его не добавлять на карту,

убрав строчку 

 

map.addControl(new YMaps.Zoom()

 

он нужен мне. подскажите тогда просто как выгрузить карту(отключить)

надо вызвать у карты метод destructor

 

map.destructor();