Клуб API Карт

Найти по адресу

Пост в архиве.

Доброго времени суток.

Есть замечательный пример про геокодирование http://ymapsapi.ya.ru/replies.xml?item_no=1501

но в Липецке есть две улицы Советская. Полный адрес

 Россия, Липецкая область, Липецк, Советский район, Советская улица, 22

и

 Россия, Липецкая область, Липецк, село Сселки, Советская улица, 22

когда я ищу - Липецк Советская 22 - мне вылазят Сселки - что делать????

И еще вопрос. У меня на карте есть полигоны. Как мне узнать в какой полигон попал адрес Советская 22 ??

Спасибо.

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

1. Вы можете получить из контроллера модель, и перекрыть ее метод getDefaults

так чтобы он отдавал "правильное" поле boundedBy относительно центра Липецка.

2. Вы можете создать и инстанцировать в контроллере еще одно View, передавая ему найденную точку, как это сделано в примере.

Проверять попадание точки в полигон можно с помощью метода его геометрии

alexlip1972.usachev
28 января 2016, 01:29

==Проверять попадание точки в полигон можно с помощью метода его геометрии==

А если у меня 40 полигонов - мне проверять каждый - попала в него точка или нет??

Как-то не оптимально..... Здесь бы больше подошло свойство точки - какому полигону она принадлежит )))

 

Непонятно чем это оптимальнее и почему точка должна знать про какие-то полигоны

alexlip1972.usachev
28 января 2016, 01:29

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

alexlip1972.usachev
28 января 2016, 01:29

Дело в том, что у меня у каждого полигона прописан хинт следующим образом:

 myHintLayout = ymaps.templateLayoutFactory.createClass(
                    'Округ № $[properties.name] - $[properties.description]'
                );
            ymaps.layout.storage.add('my#superlayout', myHintLayout);

.....

myPolygonCollection.each(function (item) {
                            item.options.set('hintContentLayout', 'my#superlayout');

Есть ли возможность этот хинт прописать в текст балуна той точки, которая получилась в результате поиска по адресу. То есть симитировать метод наведения мышки  на полигон в этой точке, получить хинт полигона, прописать этот хинт в текст балуна.

С Уважением.

Не обязательно перебирать все элементы, можно проставить опцию коллекции.

myPolygonCollection.each(function (item) {
                            item.options.set('hintContentLayout', 'my#superlayout');

можно заменить на

myPolygonCollection.options.set('hintContentLayout', 'my#superlayout');


Можно,

делаете все тоже самое для метки и добавляете поле name и description в ее данные