Клуб API Карт

поиск на внешнюю кнопочку и получение координат

ytire
2 августа 2015, 10:42

Поставил я поиск  на внешнюю кнопочку

 var suggestView = new ymaps.SuggestView('suggest');

<input type="text" id="suggest"/>


Все ок, города выбираются и т.д , тока теперь мне нужно эту выборку передавать карте,

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

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/SuggestView-docpage/#events-summary

suggestView.events.add('select', function () {

 var searccoor = event.get("item");
alert(searccoor[0]);

});


В итоге ничего не получаю, правильно ли я вообще делаю, чтоюы получить координаты


В итоге я хочу получить координаты чтобы переместить на карте через
 myMap.setCenter([55.81, 37.65]);

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

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

 

что-то типа такого:

 

var sv = new ymaps.SuggestView('inputId');sv.events.add('select', function (e) {    ymaps.geocode(e.get('item').value)    .then(function (res) {        myMap.setBounds(res.geoObjects.get(0).properties.get('boundedBy'));    });})

 

 

спс то что нужно, а можешь подсказать вот ты,  отправил на геокодинг,   ymaps.geocode  данные.

 

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

Вот я не догадываюсь, я читаю документацию, там все поля объекта объекта-события описаны

 

Пользователь выбрал одну из поисковых подсказок. Имена полей, доступных через метод Event.get

item - поисковая подсказка, объект с полями displayName и value

 

Если надо что-то выводить, то через console.log и Developer Tools, а алертами еще наши дедушки отлаживали на заре интернета

Хорошо попробую с ней, не сочти за наглость а ты можешь код дописать, когда  помима переноса координат ставится точка на то место что ты искал :-)

В общем случае там все сложнее чем просто ставить метку. При новом поиске старую метку надо убирать, надо обрабатывать ситуации если не нашлось и ошибки поиска.

Вот пример с использованием КладрАПИ вместо SuggestView, но там несложно его заменить.

код на гитхаб

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

И после твоего кода пытаюсь вытащить координаты

new ymaps.Placemark(res.geoObjects.get(0).geometry.getCoordinates(), {
           preset: "twirl#yellowStretchyIcon"
        });
myMap.geoObjects.add(placemark);

 

Вроде сравниваю и я правильно беру как у них, но тока по твоему примеру кода через обьект res 

 

Вот у них как берутся  http://clip2net.com/clip/m189696/f9e4c-clip-27kb.png?nocache=1

Вот как я и  нефига

http://clip2net.com/clip/m189696/a2c83-clip-38kb.png?nocache=1

 

new ymaps.Placemark надо чему-то присваивать. Переменная "placemark" сама по себе не появится

Спс ты мой герой -)))) (+1)

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

 

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

   myMap.geoObjects.remove(placez);


var placez = new ymaps.Placemark(res.geoObjects.get(0).geometry.getCoordinates(), {
           preset: "twirl#yellowStretchyIcon"
        });
myMap.geoObjects.add(placez);

 

но пока на переменную не реагирует

 

можно, но надо читать про замыкания и область видимости в JavaScript

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

А так по коду какой то функции не хватает ?