Создание небольшой ГИС
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 29 окт 2013, 12:26
- Репутация: 0
Создание небольшой ГИС
Начинаю писать ГИС, помогите теоретическими советами!
Требования к ГИС:
1. Отборажение картографической основы из файлов формата *.sxf
2. Отображение на фоне картографической основы различных пользовательских объектов с заданными координатами.
3. Позиционирование, масштабирование
4. На фоне карты должен корректно отображаться Индикатор Кругового обзора https://dl.dropboxusercontent.com/u/43109422/iko.png
Как я вижу реализацию:
У Панорамы есть такой продукт GisWebServise, он нарезает тайлы из sxf файлов и отдает их по протоколу OGC WMTS. в одной из тайловых матриц
GlobalCRS84Scale (urn:ogc:def:wkss:OGC:1.0:GlobalCRS84Scale)
GlobalCRS84Pixel (urn:ogc:def:wkss:OGC:1.0:GlobalCRS84Pixel)
GoogleCRS84Quad (urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad)
GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible)
Я планирую написать клиент который будет забирать тайлы в GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible) склеивать их и отрисовывать.
Возникает вопрос насколько удоволетворит полученная мною картографическая основа пункту 4 из требований?
Знаю что GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible использует проекцию EPSG :3857 (WebMerkator)
Требования к ГИС:
1. Отборажение картографической основы из файлов формата *.sxf
2. Отображение на фоне картографической основы различных пользовательских объектов с заданными координатами.
3. Позиционирование, масштабирование
4. На фоне карты должен корректно отображаться Индикатор Кругового обзора https://dl.dropboxusercontent.com/u/43109422/iko.png
Как я вижу реализацию:
У Панорамы есть такой продукт GisWebServise, он нарезает тайлы из sxf файлов и отдает их по протоколу OGC WMTS. в одной из тайловых матриц
GlobalCRS84Scale (urn:ogc:def:wkss:OGC:1.0:GlobalCRS84Scale)
GlobalCRS84Pixel (urn:ogc:def:wkss:OGC:1.0:GlobalCRS84Pixel)
GoogleCRS84Quad (urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad)
GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible)
Я планирую написать клиент который будет забирать тайлы в GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible) склеивать их и отрисовывать.
Возникает вопрос насколько удоволетворит полученная мною картографическая основа пункту 4 из требований?
Знаю что GoogleMapsCompatible (urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible использует проекцию EPSG :3857 (WebMerkator)
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Создание небольшой ГИС
Написали много подробностей, а самое главное забыли )) У вас какая ГИС будет под веб или настольная?
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Создание небольшой ГИС
Надеюсь, под склейкой вы не подразумеваете настоящее склеивание и будете просто отображать тайлы на своих местах?
Что касается сетки азимута и удаления от ИКО, то любая вариация на тему проекции Меркатора при охвате достаточно существенной территории начнет вам врать как в масштабе так и в направлении. У Меркатора, напомню, меридианы, которые сходятся на полюсе, в проекции - параллельны. Если набор проекций ограничен вариациями на тему Меркатора, то вам придется рисовать азимутальную сетку с учетом проекции (при увеличении площади, отображенной на экране, ровное "колесо" будет превращаться в сложно деформированный эллипсоид, линии азимута к югу будут сходиться, а к северу - расходиться).
Что касается сетки азимута и удаления от ИКО, то любая вариация на тему проекции Меркатора при охвате достаточно существенной территории начнет вам врать как в масштабе так и в направлении. У Меркатора, напомню, меридианы, которые сходятся на полюсе, в проекции - параллельны. Если набор проекций ограничен вариациями на тему Меркатора, то вам придется рисовать азимутальную сетку с учетом проекции (при увеличении площади, отображенной на экране, ровное "колесо" будет превращаться в сложно деформированный эллипсоид, линии азимута к югу будут сходиться, а к северу - расходиться).
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Создание небольшой ГИС
Глядя сюда http://www.gisinfo.ru/products/giswebservice.htm вижу что поддерживаются и другие проекции, в том числе - UTM. Если территория, которую будет отображать ваша ГИС, укладывается в одну зону UTM, можете использовать ее. Если нет - нужно подробнее разбираться в целях, которые стоят перед ГИС, а потом искать решение.
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 29 окт 2013, 12:26
- Репутация: 0
Re: Создание небольшой ГИС
Всем большое спасибо за ответы!
Да просто буду отображать тайлы на своих местах средствами OpenGL, примерно посчитал что для моего разрешения экрана подойдет матрица 5*5 тайлов
С веб меркатором понятно по формулам которые нашел у вас на сайте "Пересчет координат из широты/долготы в проекцию "Сферического Меркатора" получается что в этой проекции весь земной шар имеет одну систему координат
В случае же с обычным меркатором у каждой зоны своя система координат и мне не очень понятно, как на экране вместе будут отображаться тайлы полученные из 2ух соседних зон например.
В принципе это идея! можно и так как вы сказали ИКО нарисовать, нужно только разобраться как его рисовать.
Набор проекций впринципе ничем не ограничен, просто у системы есть два режиме 1 это режим когда рисуеться ИКО, 2 режим это режим навигации, где мы в реальном времени можем масштабировать позиционировать карту, и перемещаться на ней в точку с любыми координатами.
Гис будет настольная, но специализированная, т.е. это не коробочное приложение а программно-аппаратный комплекс. Почему GisWebServise (сервер WMTS)? Потому что мне это показалось удобным при реализации проекта. Я буду лишь писать клиентскую часть, и показалось удобным что из заморочек с картой нужно лишь получить тайлы и правильно отобразить их.У вас какая ГИС будет под веб или настольная?
Надеюсь, под склейкой вы не подразумеваете настоящее склеивание и будете просто отображать тайлы на своих местах?
Да просто буду отображать тайлы на своих местах средствами OpenGL, примерно посчитал что для моего разрешения экрана подойдет матрица 5*5 тайлов
Максимальная ширина зоны УТМ 800 км у меня пока максимальная территория которую отображает ГИС 1000 км, но потом будет 10000. Но ведб если я буду использовать UTM а не web меркатор как тогда будут при проектироваться относительно друг друга соседние зоны?Глядя сюда http://www.gisinfo.ru/products/giswebservice.htm вижу что поддерживаются и другие проекции, в том числе - UTM. Если территория, которую будет отображать ваша ГИС, укладывается в одну зону UTM, можете использовать ее.
С веб меркатором понятно по формулам которые нашел у вас на сайте "Пересчет координат из широты/долготы в проекцию "Сферического Меркатора" получается что в этой проекции весь земной шар имеет одну систему координат
Код: Выделить всё
Lat Lon
-70.00,-180.00
x y
"-20037508.34" "-11068715.66"
-70.00,180.00
"20037508.34" "-11068715.66"
70.00,180.00
"20037508.34" "11068715.66"
70.00,-180.00
"-20037508.34" "11068715.66"
Код: Выделить всё
Если набор проекций ограничен вариациями на тему Меркатора, то вам придется рисовать азимутальную сетку с учетом проекции (при увеличении площади, отображенной на экране, ровное "колесо" будет превращаться в сложно деформированный эллипсоид, линии азимута к югу будут сходиться, а к северу - расходиться).
Набор проекций впринципе ничем не ограничен, просто у системы есть два режиме 1 это режим когда рисуеться ИКО, 2 режим это режим навигации, где мы в реальном времени можем масштабировать позиционировать карту, и перемещаться на ней в точку с любыми координатами.
-
- Активный участник
- Сообщения: 185
- Зарегистрирован: 26 июл 2010, 08:54
- Репутация: 30
- Откуда: Ногинск
Re: Создание небольшой ГИС
Если ГИС настольная, могу порекомендовать GisToolKit. Можете в качестве фона рисовать SXF-карту или подцепить тайловое изображение любого из известных геопорталов (в том числе и OpenStreetMap). А поверх подложки рисовать пользовательские объекты и круговой обзор.
Если общее количество Ваших пользовательских объектов не превысит 20000 и карта-подложка будет масштаба 1:200 000 или 1:4000 000 можно работать без лицензии (по крайней мере попробовать, потестировать).
http://www.gisinfo.ru/products/products_tools.htm
Пример настольного приложения на GisToolKit ("Банк пространственных данных")
Фон - тайлы OpenStreetMap, поверх фона - пользовательские объекты: карта - схема содержимого Банка.
Если общее количество Ваших пользовательских объектов не превысит 20000 и карта-подложка будет масштаба 1:200 000 или 1:4000 000 можно работать без лицензии (по крайней мере попробовать, потестировать).
http://www.gisinfo.ru/products/products_tools.htm
Пример настольного приложения на GisToolKit ("Банк пространственных данных")
Фон - тайлы OpenStreetMap, поверх фона - пользовательские объекты: карта - схема содержимого Банка.
- Вложения
-
- Банк.jpg (291.25 КБ) 8790 просмотров
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Создание небольшой ГИС
Если территория покрытия будет велика и карта может показываться целиком, то придется таки использовать Меркатора (то что вы называете "обычным" Меркатором - это вариации на тему Transverse Mercator, включая Гаусса-Крюгера и UTM с шестиградусными зонами, а действительно обычный - это то, что у Гугла, Яндекса и OSM). И, как следствие, при любом сдвиге карты перерисовывать азимутальную сетку с учетом всех фокусов проекции.
Скажите честно - это ведь какие-то задачи воздушного движения должны будут решаться этой системой? А то где бы еще могла понадобиться азимутальная сетка...
Если да, то население может уже начинать бояться.
Скажите честно - это ведь какие-то задачи воздушного движения должны будут решаться этой системой? А то где бы еще могла понадобиться азимутальная сетка...
Если да, то население может уже начинать бояться.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Создание небольшой ГИС
а зачем вам весь этот мудреж с растровыми тайлами? натяните векторную карту на шарик, и показывайте средствами OpenGL - и никаких заморочек с проекциями. Или натяните растровую, видео карточки нынче позволяютexplorer85 писал(а):Гис будет настольная, но специализированная, т.е. это не коробочное приложение а программно-аппаратный комплекс. Почему GisWebServise (сервер WMTS)? Потому что мне это показалось удобным при реализации проекта. Я буду лишь писать клиентскую часть, и показалось удобным что из заморочек с картой нужно лишь получить тайлы и правильно отобразить их.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Создание небольшой ГИС
gamm, это Google Earth получится..
Ну или без шариков - можно просто ортографическую проекцию использовать.
Ну или без шариков - можно просто ортографическую проекцию использовать.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Создание небольшой ГИС
Ну если пошла такая пьянка, то можно воспользоваться Word Wind в качестве клиента, вот пример такого использования. Его можно использовать как в настольном так и в веб варианте, хотя настольный вариант более предпочтителен.ericsson писал(а):gamm, это Google Earth получится..
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Создание небольшой ГИС
не совсем - товарищъ упомянул про OpenGL, которым он пользуется - слепить там шарик (если нужна картинка примерного одного масштаба) дело несложное. Кроме картинки, насколько я понимаю, ничего не нужно. Если нужно переключать масштабы и проекции - другое дело. Зато на шарике никаких проблем с индикатором, он всегда одинаковый, и все направления на месте.ericsson писал(а):gamm, это Google Earth получится.
У ортографической проекции, насколько я понимаю, будут проблемы с движением карты - вид индикатора будет меняться (или нужно все время варпить картинки самому вместо OpenGL, который делает это на карточке)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость