Клуб API Карт

Какое решение будет правильным, если нужны особые геометрические вычисления?

DelLitt
5 марта 2013, 11:48

Есть задача: карта разбивается на области (геометричекие объекты), в на которых необходимо показывать количесвто точек (placemark) в них. Таких точек большое количество (более 5000 для Москвы).

Сейчас в БД хранятся только адреса таких точек, необходимо будет получить координаты для них, и сохранить их на сервере. Это возможно сделать с помощью сервиса Геокодирования (http://geocode-maps.yandex.ru/1.x/?geocode=Пушкаина, 20), получив XML, достать оттуда координаты. Это будут координаты проекции.

Решить задачу, скажем попадания точки в окуржность, заданную центром (в координатах) и радиусом (в метрах), без использования вашего API, а на стороне сервера, практически невозможно. Так как проекция окружности, не окружность и не эллипс (который можно было бы использовать, зная getBounds() окружности), но не выходит.

Если все координаты хранить в глобальных координатах (toGlobalPixels(...)), тогда и окружность вписывается в квадрат (getBounds()) и соответственно радиус хорошо вычисляется, и можно определить попадание точки в окружность.

Но при этом, когда пользователь добаляет новый объект с адресом, ответ Геокодера в виде XML возвращает только координаты проекции. Есть ли возможность получить их в виде глобальных координат? Подключать API на страницу добавления объектов и вычисялть через него нужные координаты не выход, так как много объектов ежедневно импортируется в систему в виде XML данных, и обрабатывается только на сервере.

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

6 комментариев
Подписаться на комментарии к посту
 Решить задачу, скажем попадания точки в окуржность, заданную центром (в координатах) и радиусом (в метрах), без использования вашего API, а на стороне сервера, практически невозможно

неужели? с чего вы это взяли?

Я исходил из того, что понял по работе API, ведь необходимо получить проекцию фигуры, при этом знать величину zoom? Если можете, пожалуйста, направьте хотя бы в нужную сторону, буду копать.

Спаисбо большое! Будем искать решение. Ведь поиск у нас осуществляется не только по местополежению точки, но и по ряду других признаков, которые входят в индксы внешнего индексера.

А все-таки не подскажете, есть ли способ перевести без API координаты проекции (GPS координаты) в глобальные координаты (toGlobalPixels(...))?

Там куча математики. Если очень надо, посмотрите как это делается в АПИ

Спасибо!