LINUX.ORG.RU

Route png

 ,


0

1

Добрый день, кто-нибудь сталкивался с вопрос создания маршрута на карте по средством создания png изображения и последующим его наложением уже на карту? Смысл в том, чтобы не отправлять на клиент огромный массив из координат и не рисовать сам маршрут на клиенте. В какую сторону копать, есть ли уже готовые либы и т.п?


Ну например c OpenLayers можно создавать слой, в котором можно и изображение впихнуть. Только я не представляю, как ты поступишь с маштабированием - придется передавать зумлевел, координаты центра карты.

nikolnik ★★★
()
Ответ на: комментарий от nikolnik

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

hound
() автор топика
Ответ на: комментарий от hound

Лично я не вижу тривиального способа это сделать. Ну ты представляешь себе этот геморой - рисовать эти координаты вручную? Тут все вспомнишь: матан, линейную алгебру, аналитическую геометрию. Надо брать массив координат, перебирать его, высчитывать эти координаты на секторе шара, строить проекции, рисовать это все в пнг. Ты еще охереешь, когда узнаешь, сколько есть стандартов форматов координат. Если проблема в трафике - громадный массив с геожсонами - лучше запилить кеширование, да и в самой карте подобная отрисовка должна быть оптимизирована.

nikolnik ★★★
()

Я для отображения маршрута взял marble и избавил себя от кучи проблем, чего и тебе желаю

XMs ★★★★★
()
Ответ на: комментарий от nikolnik

Вообще есть некоторые системы, которые каким-то образом так и делают. Генерят на сервере png куски трека и передают их клиенту, а там уже накладывается на карту, только вот как они это не делают не понятно. И да, при изменении масштаба эти png куски трека видимо перерисовываются и отправляются на сервер. Можно было бы передавать и координаты и на клиенте уже рисовать сам трек, но когда данных очень много то это получается ну очень накладно, например трек за пару месяцев может содержать до 180000 точек (60 дней * 6000 точек трека в день).

hound
() автор топика
Ответ на: комментарий от hound

Непонятно, в чем вопрос? Как генерировать картинку на сервере? Ну-у, можно прямо libpng (и биндингами к любимому языку) например. Передавать картинку в браузер можно в base64. В более-менее современных браузерах можно тегу img давать в качестве src base64-кодированную строку.

Я делал что-то похожее, с зумом и перемещениями, только без накладывания картинки на фон. Как работает можно посмотреть здесь http://damper.xenoeye.com . Картинка периодически обновляется, можно позумить и потаскать график мышкой. Код (SCGI-модуль для веб-сервера на C + JS на клиенте) здесь: https://github.com/vmxdev/damper/tree/master/stat

Deleted
()

pgrouting+mapserver+mapcache у нас рисует тысячи маршрутов одновременно и довольно быстро (а если они статические, то за счёт кэширования и вовсе мгновенно). В любом случае, для отрисовки на сервере используется pgrouting+mapserver, на выходе получается transparent png, который может накладываться на другие слои на сервере или на клиенте, как хотите.

anonymous
()
Ответ на: комментарий от anonymous

Как-то можно с Вами связаться по поводу вашей реализации?

hound
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.