Клуб API Карт

Большой список объектов на карте

menshickowserezha
26 марта 2014, 00:29

У меня есть задача - сделать карту у которой будет фильтр из разных категорий и типов объектов. Дело в том, что объектов которые нужно фильтровать свыше 3000. Каким образом огранизовать это дело? Ведь не в ручную в javascript записывать координаты 3000 объектов. 

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

Сам список у вас где-то хранится, в каком формате?

А фильтровать надо по каким критериям?

menshickowserezha
26 марта 2014, 12:19

Список всех объектов храниться в excel файле. В нем и описание обектов и их координаты.Первый фильтр к примеру по территории, второй по типу объекта, пример: Краснодар, памятники - и выводятся балуны памятников в Краснодаре. Прочитал что формат файла нужен csv.

Я правильно понимаю, что проблема именно в процессе фильтрации? У вас есть 3000 объектов и вы хотите выбрать все объекты, находящиеся на территории Краснодара, но не знаете как?

menshickowserezha
26 марта 2014, 13:57

Да.

Отсортировать по какому-то признаку объекта легко - см. пример http://api.yandex.ru/maps/jsbox/geoobjects_menu

 

А вот по географическим признакам сложнее. Для того, чтобы определить, попадает ли объект на территорию Краснодара, нужно иметь координаты, которые описывают территорию Краснодара.

Через апи можно получить только границы регионов. А вот границы городов мы через апи не отдаем.

То есть в задаче "отфильтровать по городу" проблема не техническая, а контентная - нужно откуда-то брать границы городов.

menshickowserezha
26 марта 2014, 14:20

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

Нет, но алгоритм такой.

1. Загружаете файл.

2. Парсите его, вытаскиваете координаты и данные

3. Их полученных данных создаете выборку geoQuery

4. Фильтруете в выборке объекты по признакам

menshickowserezha
26 марта 2014, 14:41

Хорошо, спасибо:) Цены бы вам не было, если бы был наглядный пример всего этого функционала который мне нужен.

У вас очень частный кейс. В основном данные поставляются в апи в одном из принятых форматов - geoJson, geoXml или что-то типа того. На эти форматы примеров много и модули под них заточены.

Может вам стоит формировать ответ сервера в стандартном формате, тогда не придется парсить данные на клиенте.

menshickowserezha
26 марта 2014, 15:02

Возможно и стоит.

Особенно "быстро" это будет работат, если эти фильтры на лету надо перетыкать :-D

Не очень поняла ремарку - если надо на лету перетыкать, фильтрация на клиенте будет работать быстрее, чем посылать запрос на сервер и там делать фильтрацию (в общем случае).

По алгоритму, давайте возьмем php.

Загружаете на сервер файл.

достаете с помощью готовых инструемнтов список ваших 3к элементов (за php классом для работы с excel в яндекс).

Отдаете их на клиент в виде xml, json или как вам приятнее.

На клиенте эти данные кладете в коллекцию и с этой коллекцией можете уже работать с помощью geoQuery.

господа модераторы, я прав?

угу