Клуб API Карт

panTo - задать масштаб после перемещения карты + база координат населённых пунктов РФ

sergej-serov
27 мая 2011, 16:44

Доброго дня, коллеги-разработчики!

1) На выпадающий список с городами повешен обработчик -> центр карты перемещается на новый город.

Кто работал с этим методом - подскажите как задать масштаб после перемещения.

Посколькуо сейчас если изменить масштаб, например до уровня дома, то этот масштаб остаётся и после перемещения в другой город.

 

function a_yandex_map_button_region_select(map, destinations) {

    YMaps.jQuery('#a_yandex_map_button_region_select').change(function() {

        var new_region = YMaps.jQuery(this).val(

        map.panTo(destinations[new_region], {flying: 1, callback: _a_yandex_map_set_zoom}

        return false;

    }   

}

 

 

2) Массив с городами задаётся при создании карты. Получается, что необходимо знать координаты центра всех городов, чтобы можно было переместить карту на каждый из них. При использовании геокодера не удалось добиться однозначно верного ответа - поскольку обычно возвращается список из нескольких населённых пунктов.

 

YMaps.jQuery(function() {

    var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0], destinations = {

           'Москва' : new YMaps.GeoPoint(37.609218,55.753559),

           'Санкт-Петербург' : new YMaps.GeoPoint(30.313497,59.938531),

           'Екатеринбург' : new YMaps.GeoPoint(60.617435,56.829748)

       }

   

..... много кода ....

};

 

 

Заранее спасибо за помощь!!

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

2. создайте этот список заранее и передавайте клиенту полностью готовый.

Города как-то на месте стоят и никуда не убегают

1. Я бы не использовал panTo, так как растояние между городами обычно велико. Лучше уж прыгать

>> 2. создайте этот список заранее и передавайте клиенту полностью готовый.

 

В том-то и дело: они добавляются пользователем. Т.е. формироваться массив с "город" => "координаты" должен автоматически....

 

 

При использовании геокодера не удалось добиться однозначно верного ответа - поскольку обычно возвращается список из нескольких населённых пунктов.
при использовании геокодера можно указать что нужен только один результат

 

>> при использовании геокодера можно указать что нужен только один результат

 

Это всё понятно. Но, если указать возврат одного результата - не всегда возвращается тот, который действительно относится к этому населённому пункту.

Чем меньше город, село городского типа, просто село - тем больше РАЗНЫХ населённых пунктов с одним названием. И тот, о котором идёт речь - может идти в списке третьим или четвёртым.

 

Ну это нормально

не один поиск не дает

на 100% релевантного результата

 

Реализуйте у себя логику выбора нужного из списка

подобно тому как это сделано в YMaps.SearchControl

(поле "Поиск на карте")

http://api.yandex.ru/maps/tools/getlonglat/