Клуб API Карт

Создание собственных карт и их редактирование

nadir.absemetov
26 июня 2012, 18:45

Здравствуйте разрабтчики API Яндекс карт. У меня есть проект NADABS.

Я решил добавить карту  http://viko.org.ua/maps.php

Первая проблема была в подключение тайлов из gmapuploader

return "http://mt1.gmapuploader.com/tiles/mZbkbf0Z0a/tile-" + zoom + "-" + (tile[1] * Math.pow(2, zoom) + tile[0]) +".jpg";

С тайлами вроде разобрался, теперь нужно на них, что нибудь разместить.

Мне понравился ваш конструктор, почему бы не включить его возможности в ваше API

А так придется заново изобретать свой велосипед.

 

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

 

1) Добавление метки

Клик по карте создает балун с формой

myMap.events.add("click",
    function(e) {
       
myMap.balloon.open(
                // Позиция балуна
                e.get("coordPosition"), {
                contentBody: '<form id="baloon_form"><input type="text" id="coord" value="['+e.get("coordPosition")+']"><input type="submit" value="OK"><input type="button" value="delete placemarker" id="deletePlace"></form>'
            }, {
               // Опции балуна. В данном примере указываем, что балун не должен иметь кнопку закрытия.
                closeButton: true
        });       



    }
);

В поле формы coord сохраняю координаты щелчка мыши.

После сабмита формы создаю метку

 $('#baloon_form').live('click', function(){
var coords=$('#coord').val();
// Создание метки
var myPlacemark = new ymaps.Placemark(
        // Координаты метки
coords    
    );
// Добавление метки на карту
myMap.geoObjects.add(myPlacemark);
return false;
});

Метка добавляется не корректно, координаты не совпадают

Что я делаю не так?

 

Как удалить произвольную метку?

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

1. Вы поменяли проекцию карты на гуглевую?

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

Можно в форме написать e.get("coordPosition").join(', ');

А при создании coords.split(', ');

 

Чтобы удалить произвольную метку надо ее удалить.

Для этого надо как-то получить на нее указатель(те ее переменную).

А вот как это сделать - ваша забота(например ее балун знает чей он)

1. Я использую декартову проекцию

 

var myProjection = new ymaps.projection.Cartesian([

[0, 0], // координаты левого нижнего угла [100, 100] // координаты правого верхнего угла ]),

 

2. Спасибо, метку теперь я могу добавить.

Осталось редактирование и удаление.

И конечно отображение меток из базы данных

 

Удаление меток:

//сабмит формы

$('#baloon_form').live('submit', function(){
var coords=$('#coord').val();
//ссылка для удаления метки
element = $('Delete')
.find('a')
.click(function (e) {
e.preventDefault();
myMap.geoObjects.remove(myPlacemark);
return false;
}).end();


// Создание метки
var myPlacemark = new ymaps.Placemark(
        // Координаты метки
        coords.split(', '), {
            /* Свойства метки:
               - контент значка метки */
            iconContent: $('#name_place').val(),
            // - контент балуна метки
            balloonContent: element[0]
        }, {
            /* Опции метки:
               - флаг перетаскивания метки */
            draggable: true,
                 
    // Опции
        preset: 'twirl#blueStretchyIcon' // иконка растягивается под контент

        }
    );


// Добавление метки на карту
myMap.geoObjects.add(myPlacemark);
myMap.balloon.close()

return false;
});

   http://ymapsapi.ya.ru/replies.xml?item_no=15, сделайте пожалуйста для  API 2.0