Какое количество меток может поддерживать SAS Planet

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модераторы: Tolik, zed

Re: Какое количество меток может поддерживать SAS Planet

Сообщение Fetser » 14 янв 2012, 16:22

C нетерпением жду реализации хотелок касательно работы с метками (0000033, 0000426, 0000425, 0001039) Проблема в том что очень большое количество тяжёлых меток (каждый объект это несколько сотен полигонов сложной формы) да ещё многопользовательский доступ.
Пока выхожу из положения, что упрощаю полигоны (к неудовольствию многих) Для многопользовательского доступа (требуется только чтение) При каждом запуске файлы с метками скриптом копируются из другого места в папку программы.
Может кто подскажет временные решения. А то тратится время на ненужное копирование. И вся работа страшно тормозится из за веса (каждый полигон в формате KML порой достигает 0.5 Мб, а их тысячи) :(
По сути одновременно все метки никто не смотрит, но угадать какие именно будут смотреть одновременно очень трудно.
Fetser
Постигающий Дао
 
Сообщения: 101
Зарегистрирован: 24 окт 2009, 23:40
Благодарил (а): 5 раз.
Поблагодарили: 14 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение Tolik » 14 янв 2012, 16:54

Fetser, любопытно узнать цифры.
Сколько именно меток, сколько всего точек (например, вершин полигонов), какой размер файла sml?
В чём проявляются тормоза - сколько сек. занимает какая-нибудь операция?

Также интересно, все метки загружаются в память при запуске программы или берутся из файла по мере необходимости?
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение Fetser » 14 янв 2012, 17:20

Пока тратится время только на копирование целиком файлов Categorymarks.sml и marks.sml. Время соизмеримо с запуском программы и это вполне приемлемо. Количество полигонов пока чуть более 5 000. Размер пока 20 Мб. Но это очень не нравится начальству, поскольку я каждую зону вещания радио и ТВ превращаю в один полигон и упрощаю до 25 кб файл kml. Реальные же размеры после расчёта зоны - это каждый передатчик примерно 200 полигонов суммарный размер 500 кб одна зона. И в идеале требуется все государственные передатчики России представить в виде подробных зон вещания. Уже несколько человек начали считать. И пока складывают kmz файлы. Просмотр надо организовать минимум с 50 рабочих мест. если полностью занести в тот формат что сейчас то размер будет около 10 Гб. Только на копирование при запуске программы с сервера уйдёт пол часа. Как себя поведёт программа если всё это должно уместится в оперативной памяти даже не представляю.
Fetser
Постигающий Дао
 
Сообщения: 101
Зарегистрирован: 24 окт 2009, 23:40
Благодарил (а): 5 раз.
Поблагодарили: 14 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение vasketsov » 14 янв 2012, 18:02

Fetser писал(а):если полностью занести в тот формат что сейчас то размер будет около 10 Гб. Только на копирование при запуске программы с сервера уйдёт пол часа. Как себя поведёт программа если всё это должно уместится в оперативной памяти даже не представляю.

В такой ситуации спасёт только внешний сервер меток (надёжнее всего конечно поднимать взрослую СУБД), к которому сас будет ходить за новыми нужными метками (при чтении, и соответственно при записи новых меток их отправлять на сервер) и выгружать старые из памяти по мере ненужности. Даже просто хранить метки в файловой системе где попало проблему не решит, так как для их индексирования (чтобы потом понимать что качать и показывать, а что нет) их придётся фактически скачать и загрузить. А при многопользовательском доступе качать и индексировать придётся постоянно. Индексирование здесь - индекс по прямоугольнику, ограничивающему полигон снаружи. Соответственно формировать rect в сасе при сохранении полигона (это и так есть), и пихать в БД как блоб, оттуда забирать всю пачку (или как invalidate участками) и выгружать ненужное - по идее ничего сложного.
Последний раз редактировалось vasketsov 14 янв 2012, 18:11, всего редактировалось 1 раз.
vasketsov
Специалист
 
Сообщения: 727
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 153 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение Tolik » 14 янв 2012, 18:03

10 ГБ - без полноценной БД не обойтись.
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение vasketsov » 14 янв 2012, 18:11

Tolik писал(а):10 ГБ - без полноценной БД не обойтись.

Да, причём на отдельной тачке.
vasketsov
Специалист
 
Сообщения: 727
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 153 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение vdemidov » 14 янв 2012, 18:27

Для такого количества меток единственный вариант делать kml слой по принципам wikimapia
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1166
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 92 раз.
Поблагодарили: 52 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение Fetser » 14 янв 2012, 18:57

vdemidov писал(а):Для такого количества меток единственный вариант делать kml слой по принципам wikimapia

Подскажите пожалуйста где можно подробнее почитать по созданию подобного слоя.
Хотелось бы найти ответы на вопросы
Каким способом обычные kmz/kml можно преобразовать в такой слой?
Что получится в том случае когда зоны будут частично или даже полностью накладываться друг на друга?
И есть ли возможность для основной массы пользователей сделать доступ только на чтение?
Fetser
Постигающий Дао
 
Сообщения: 101
Зарегистрирован: 24 окт 2009, 23:40
Благодарил (а): 5 раз.
Поблагодарили: 14 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение vdemidov » 14 янв 2012, 22:19

Fetser писал(а):Каким способом обычные kmz/kml можно преобразовать в такой слой?

Понятия не имею. Готовых инструментов скорее всего нет.
Fetser писал(а):Что получится в том случае когда зоны будут частично или даже полностью накладываться друг на друга?

Посмотрите как это сделано в викимапии. Сервер отдает тайлы в виде kml файлов, в каждом из которых описаны полигоны захватывающие данный тайл. Данные, конечно, будут многократно дублироваться, но в итоге клиенту отдается только то что нужно. Плюс можно фильтровать данные по зумам.
Fetser писал(а):И есть ли возможность для основной массы пользователей сделать доступ только на чтение?

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

За это сообщение автора vdemidov поблагодарил:
Fetser (14 янв 2012, 22:24)
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1166
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 92 раз.
Поблагодарили: 52 раз.

Re: Какое количество меток может поддерживать SAS Planet

Сообщение nafa » 07 фев 2012, 23:49

Это очень просто реализовать с помощью БД.
В простейшем случае можно обойтись одной таблицей. В ней нужно сделать поля:
id (основной индекс)
xmin (индекс)
ymin (индекс)
xmax (индекс)
ymax (индекс)
kml (зависит от используемой БД, в некоторых можно и текстом обойтись)

При обращении за тайлом, выбрать из таблицы все записи, котоые охватывают хотя бы один из 4х углов тайла.
Подсчитать количество таких записей.
Если количество небольшое - то сгенерить общий KML и отдать его САС Планете.
Если количество большое (мелкий масштаб) - то по вашему усмотрению. Например можно отдать первые 5 или отдать служебный KML с сообщением о количестве объекто в тайле.

Пример как сделать есть в разделе wiki. Даже с возможностью не только просмотра, но и редактирования.

Вместо веб-сервера можно использовать версию САС Планеты с поддержкой PHP.

Это не оптимальный вариант, а самый простой. 10Гб с такой простой структурой любая современная БД потянет легко.

В более сложном варианте KML не используем. Создаем вторую таблицу с точками. При выборке проверяем, проходит ли через запрашиваемый тайл какой-то полигон.Можно также отдаватьне KML а графические тайлы с самостоятельно прорисованными линиями полигонов. В этом варианте количество можно увеличить количество отображаемой информации, если есть много пересечений объектов. Но запросы к БД более сложные.
nafa
Новичок
 
Сообщения: 25
Зарегистрирован: 20 дек 2010, 10:53
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Пред.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron