Клуб API Карт

autobounds для карты

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

При инициализации карты обязательным параметром является только один - центр. Однако, бывают моменты, когда хочется показать карту, но ее центр неизвестен.

Чаще всего необходимо отцентрировать карту на местоположение пользователя, либо отобразить в видимой области некоторый набор объектов.

На досуге для решения этих задач я написал пару функций:

Подключать к своему проекту нужно следующим образом:

<script src="http://ymlib.narod.ru/1.1/ymlib.js" type="text/javascript"></script>

Также вы можете посмотреть исходные коды на github.

12 комментариев
Отличная либа!
Теперь можно отцентрировать карту в 2 строчки.


Твой setAutoBounds натолкнул меня на мысль, что нам надо в YMaps.location класть зум города, тем более что эти данные у нас есть.
Думаю что  не будет против.


Ибо ходить в геокодер только ради bounds это всё же overhead (да и лишний http-запрос никчему)
И у тебя тогда всё сильно упростится - останется accuracy = [ high | low ] 
Что думаешь?


Кстати, ты же хотел кинуть исходники на github?
Если бы оптимальный zoom лежал в location, то было бы неплохо =)

Исходники на гитхаб закину вместе со следующей статьей (на этой неделе то есть).
Выходя со стационарного компа(в разных местах) я получаю свое положение с центром около Дорцовой площади с большим зумом.

В реальности это 5-10 км от того места где я нахожусь.

Как пользователю мне бы хотелось видеть меньший зум, так как приходиться отматывать назад, для нахождения правильной точки. (если уменьшить зум на три шагя, и один раз перетащить карту, я могу попасть почти в любое место города.)

PS. var map это правильный подход к написанию скриптов, но такой пример не получается потыкать через консоль фаербага. Можно ли как-то через контейнер(#YMapsID) получить доступ к объекту map?
 
PS. var map это правильный подход к написанию скриптов, но такой пример не получается потыкать через консоль фаербага. Можно ли как-то через контейнер(#YMapsID) получить доступ к объекту map?


Да, именно по этой причине и в примерах хочется, чтобы map был глобальным.
Масштаб я выбираю следующим образом:
15 - geolocation api (здесь вы хотите 12?)
auto - геокодер
8 - YMaps.location

map сделаю глобальным.

Что происходит с мобильными клиентами, я не знаю, но стационарные выходы в инет (дом, работа, предыдущяя работа) выдают центр города.  Если можно отделить таких пользователей, от мобильных и для них логичнее выдавать меньший зум (для СПб ~12)
Подумаю, спасибо)
Для метода setAutoBounds при accuracy=low используется YMaps.location.zoom, который введен в API 1.1.17.
Значение accuracy=medium упразднено. Теперь или geolocation api, или YMaps.location.

Библиотека ни на сайте ни на гитхабе не доступна.

 

Вроде бы для АПИ 2.0 она уже не актуальна.

Мне нужно под 1.1, некоторые проекты еще под эту библиотеку остались.
У кого-то есть, поделитесь, пожалуйста.