Страница 1 из 1
					
				Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 09:40
				 Vitaly1988
				Здравствуйте! Нужно написать программу чтения и отображения навигационных карт формата S-57 так, как это делает, например, OpenCPN или SeeMyENC из SevenCS, но не так, как это делает QGis. Еще нашел программу 
GHelm , которая вроде читает карты с помощью iso8211lib, но судя по скриншотам отображает их совсем не в соответствии со стандартом и явно не всё. Прочел 
эту статью  - и вконец запутался. Подскажите, для начала, есть ли вообще свободные библиотеки, корректно читающие S-57? Какие? И нужно ли мне изучить стандарт S-57 для решения моей задачи или можно это пропустить как задачу низкого уровня и изучать что-то более высокоуровневое? Спасибо.
 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 11:02
				 Voltron
				Для начала: чем GDAL не устраивает?
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 11:22
				 Vitaly1988
				GDAL- то есть OGR? QGis, который, как я понимаю, работает с использованием этих библиотек, отображает карты некорректно. В чем тут проблема, в QGis или в OGR? Если в QGis - то спасибо за подсказку)
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 11:29
				 Voltron
				Есть ли проблема сразу сказать не могу. Возможно, ее вообще нет, просто нужны дополнительные действия по настройке отображения.
В чем именно проявляется некорректность отображения в QGIS? Желательно с примером файла и примером корректного отображения в другом ПО.
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 13:27
				 Vitaly1988
				В прикрепленном архиве сама карта s-57, скриншот ее отображения в программе SeeMyENC(правильное отображение), и скриншот в QGis. Тут почему-то запрещено выкладывать карты S-57... ?
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 15:16
				 Vitaly1988
				OGR вроде подходит для парсинга файла.
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 15:48
				 ericsson
				Для парсинга геометрии дофига чего подходит, а вот символика там довольно сложная, при том стандартизированная. Вот её и нет в кугисе. И не уверен, что всё можно решить одной только символикой.
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 16:54
				 Voltron
				Посмотрел. Похоже, дело только в символике, все имеющиеся слои определяются, насколько могу судить, правильно. ИМХО, такой подход имеет свои плюсы. Если символика действительно стандартизирована и едина для всех файлов этого формата (в чем я сомневаюсь) можно сделать набор символов для QGIS и она тоже будет открывать файлы так же
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 18:14
				 ericsson
				Все как раз стандартизировано.
http://www.iho.int/iho_pubs/IHO_Download.htm 
символы описаны в S-4 "REGULATIONS OF THE IHO FOR INTERNATIONAL (INT) CHARTS  AND  CHART SPECIFICATIONS OF THE IHO" (аналогичные данные, но в чуть более простой форме, изложены вот тут 
http://www.nauticalcharts.noaa.gov/mcd/chartno1.htm )
Кое-что может быть в документах S-52 и собственно S-57.
Некая трактовка стандартов может быть, возможно, только в выборе конкретных RGB значений для цветов. Но даже они где-то есть.
Добавлю (это, по-моему, важно): тестовые датасеты лежат тут 
http://www.iho.int/iho_pubs/standard/S- ... _intro.htm вместе с референсными pdf (по ссылке внизу).
 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 19:17
				 Konstantin Tokar
				Vitaly1988 писал(а):Здравствуйте! Нужно написать программу чтения и отображения навигационных карт формата S-57 так, как это делает, например, OpenCPN или SeeMyENC из SevenCS, но не так, как это делает QGis.
А сам OpenCPN не пробовали использовать?
 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 19:46
				 Vitaly1988
				ericsson писал(а):Все как раз стандартизировано. 
Легче не стало, скорее наоборот. Зато теперь знаю, куда копать - за это спасибо.
Konstantin Tokar писал(а): А сам OpenCPN не пробовали использовать?
OpenCPN - это программа с открытым кодом, не библиотека. А я не настолько высококлассный программист(только начинающий изучать С++), чтобы разобраться в его исходниках и перенести нужное в свою программу. Хотя, сейчас посмотрел, там тоже GDAL/OGR используют. Исходники, конечно, пригодятся, но свое приложение мне легче писать с нуля. )
 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 13 дек 2011, 19:51
				 ericsson
				Собственно, прочесть структуры формата - не проблема.
Проблема - показать все это, при том сделать это правильно. А то получится, действительно, как в кугисе в нынешнем виде. Там один знак "маяк" чего стоит.
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 27 янв 2012, 12:53
				 Vitaly1988
				Показать получилось с использованием библиотеки libS52 из пакета OpenEV. Эту же библиотеку, но с некоторыми изменениями, использовали в OpenCPN.
			 
			
					
				Re: Чтение S-57. С чего начать?
				Добавлено: 14 авг 2014, 12:56
				 Storkur
				Добрый день.
Мне тоже надо сделать приложение отображающие карты формата S-57, если я правильно понял то для чтения S-57 вы использовали OGR, а для отображения libS52?