Клуб API Карт

Заголовок не указан

Дмитрий Шеин
2 июня 2009, 00:04

Доброе врмя суток.


Требуется отобразить в общей сложности на карте более 20.000 точек в зависимости от зума и отображаемой части карты, примерно как тут http://spb.gdeetotdom.ru/map/?mapSource=yandex

Так же понадобиться фильтр отображения точек


Пытался понять как это сделать из:

http://clubs.ya.ru/mapsapi/replies.xml?item_no=3742

http://clubs.ya.ru/mapsapi/replies.xml?parent_id=3318&item_no=3317&with_parent=1#reply-mapsapi-3318

но не понял, возможно ли использовать YMapsML для отображения такого количества точк и как именно это всё оптимизировать...


Как лучше сделать это?

8 комментариев
Подписаться на комментарии к посту
На клиентскую часть (javascript) возлагается функция отображения заданного набора точек и подборка условий фильтра.

На серверной стороне необходимо написать скрипт, который будет по заданной области карты (YMaps.GeoBounds) и масштабу отдавать нужный набор точек.

Можно отображаться динамически с помощью YMapsML или с помощью JavaScript. Как  добавлять необходимые метки на карту - решать Вам.

Повысить скорость работы с большим количеством меток поможет YMaps.ObjectManager (но с 20 000 объектов он не поможет).

В качестве варианта оптимизации могу посоветовать запрашивать метки с области, которая больше видимой, а также использовать ObjectManager для их отображения.
Дмитрий Шеин
2 июня 2009, 11:17
не совсем понятно, как отбирать точки из БД соответствующие заданной области, если согластно п. 3.6. Ограничения. Используя API Яндекс.Карт, нельзя сохранять полученные в результате запросов к геокодеру координаты объектов.
Королев Михаил
2 июня 2009, 11:44

жуть.. это ещё и 20000 запросов к геокодеру...

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

для старых - при первом-же нахождении сохранять в бд.

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

Все мы конечно граждане законопослушные )
Но ты же понимаешь, что большой проект нереально сделать не сохраняя в кеше эти координаты.
Никто никогда внутрь твоего сервера с проверкой не полезет.
Дмитрий Шеин
2 июня 2009, 16:33
непонимаю..., как сгенерировать YMapsML в которой надо указывать координаты меток, не делая к
Геокодеру количество запросов равное количеству меток в YMapsM.
Я если правельно понимаю для генерации YMapsML надо иметь для каждой метки координаты...
Дмитрий Шеин
2 июня 2009, 19:20
ответе кто-нибудь, проект горит!!!
А какой ответ ещё необходим? Написали же, формируй в зависимисти от просматриваемой пользователем области набор точек (их явно будет меньше 20 тысяч), этот набор и показывай. Такой набор можно показывать и с помощью YMapsML, а можно и по другому.
По идее проблем быть не должно. Или есть какие-то конкретные?
Дмитрий Шеин
3 июня 2009, 11:48
не совсем понятно, как отбирать точки из БД соответствующие заданной области, если согластно п. 3.6. и п. 3.7. координаты сохранять нельзя...