Вставка координат из yandex maps в произвольное поле

Тема в разделе "JavaScript", создана пользователем gunjah, 27 сен 2014.

Модераторы: ZiX
  1. gunjah

    gunjah Создатель

    Регистр.:
    12 дек 2006
    Сообщения:
    29
    Симпатии:
    3
    Понадобился модуль яндекс карт с визуальным интерфейсом вставки точек под wordpress но как оказалось такого нет.
    Нашёл модуль yandex maps api 2.1 он поддерживает шорткоды, но вставка координат производится вручную что вообще не удобно для конечного пользователя.
    Для решения планирую связать вот такой интерфейс http://api.yandex.ru/maps/tools/getlonglat/ и вышеуказаный модуль.
    Подскажите как сделать кнопку, которая будет брать значения из поля "координаты метки" и маштаба карты и вставлять в произвольное поле уже в формате шорткода грубо говоря в формате [map=x,y,z] где X широта Y долгота и Z маштаб карты?

    Вот код полей нужных:
     
    Последнее редактирование: 27 сен 2014
  2. invader

    invader Серый кардинал в отставке :)

    Moderator
    • Супермодератор
    Регистр.:
    3 апр 2006
    Сообщения:
    2.587
    Симпатии:
    5.732
  3. gunjah

    gunjah Создатель

    Регистр.:
    12 дек 2006
    Сообщения:
    29
    Симпатии:
    3
  4. marshal_zp

    marshal_zp Писатель

    Регистр.:
    5 фев 2014
    Сообщения:
    3
    Симпатии:
    1
    Вот тут пример, получения координат для адреса и помещение адреса на карту.
    {source}
    <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    <script type="text/javascript">
    ymaps.ready(init);
    var myMap="";
    function init() {
    myMap = new ymaps.Map('map', {
    center: [55.753994, 37.622093],
    zoom: 5
    });

    }
    var colArray=new Array();
    function PutPoint(id,number,adress,price){


    ymaps.geocode(adress,{results: 1}).then(function (res) {
    var firstGeoObject = res.geoObjects.get(0);
    $('#adress_'+id).css('background-color','white');
    try{
    Point = firstGeoObject.geometry.getCoordinates();
    }
    catch (e){
    $('#adress_'+id).css('background-color','pink');
    /*alert("Проверте правильность адреса!!!");*/
    throw(e);
    }

    myGeoObject = new ymaps.GeoObject({
    geometry: {
    type: "Point",
    coordinates: Point
    },
    properties: {
    iconContent: number,
    hintContent: price
    }
    }, {
    preset: 'islands#blackStretchyIcon',
    draggable: true
    });
    myCollection=new ymaps.GeoObjectCollection();
    myCollection.add(myGeoObject);
    colArray[id]=myCollection;
    myMap.geoObjects.add(myCollection);
    });
    }
    function addToMap(id){
    if(document.getElementById('check_'+id).checked)
    {
    var number=$('#number_'+id).text();
    var adres=$('#adress_'+id).val();
    var price=$('#sum_'+id).text();
    if(number&&adres){
    PutPoint(id,number,adres,price);
    }
    else{
    $('#adress_'+id).css('background-color','pink');
    $('#check_'+id).click;

    }
    }
    if(colArray[id])
    {
    colArray[id].removeAll();
    colArray[id]=null;
    }
    }
    {/source}
    Вот пример работы http://joxi.ru/woE2VP3JTJBAXb-boys, сорри что код без комментариев, просто делал по быстрому для курьеров заказчика.
     
    gunjah нравится это.
  5. gunjah

    gunjah Создатель

    Регистр.:
    12 дек 2006
    Сообщения:
    29
    Симпатии:
    3
    Блин я всеравно плохо соображаю в ней, если есть интерес помочь за 2к - пишите в личку)