You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1301 2014-05-04 18:10:20
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
firsovil10, чтобы изменить свойства шрифта у TextSymbolizer вам необходимо свойство TextLayout ->TextBlocks.
TextBlocks представляет собой список текстовых элементов надписи (например два текстовых значения города на разных языках, но с разным размером), у каждого элемента свои свойства, включая название шрифта и его параметры.
В элементе TextBlock вы можете использовать непосредственно имя шрифта, которое относится только к этому симболайзеру, либо использовать FontSets и прописать в свойстве FontSetName название из набора шрифтов FontSets.
Для примера можете открыть один из проектов, которы идут вместе с инсталятором.
При создании новых TextSymbolizer я бы посоветовал использовать copy-paste функцию.
Offline
#1302 2014-05-04 18:13:41
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
golyanitskiy
да и понятно, что место условно непроходимое, если шо
А так по карте - ну поле и поле. А там на самом деле трубы высотой в человеческий рост
добавить конечно можно, но мы должны также учитывать то, что плотность данных в разных уголках мира разная.
И то, что в одном месте (в поле) это ориентир, то в другом, например в Берлине, это ужасно награмождение разного рода линий, включая улицы.
Однозначного ответа я пока дать не могу, мне нужно посмотреть на наличие данных.
Offline
#1303 2014-05-04 18:31:08
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Обновление MapSurfer.NET
Обновление данных опять встало?
Offline
#1304 2014-05-04 18:36:29
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Runge, спасибо за пояснение. Параметр так хитро запрятан, что при беглом изучении возможностей TextSymbolizer я его проглядел. А настраивается там всё очень широко.
Ещё вопрос по свойству TextAbbreviation. Как я понимаю, для его работы нужен словарь сокращений (типа "ул."="улица"), путь к которому прописывается ручками в свойство Path элемента коллекции TextAbbreviationDictionaries. Какой формат составления самого словаря используется? Возможно, есть какой-то общепринятый (подобно тому же "{a}"="{b}"), но беглый поиск в гугле ничего такого не дал. Так что сей вопрос интересует, раз уж документации (пока?) нет. ![]()
Offline
#1305 2014-05-04 19:47:13
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
freeExec,спасибо. Запустил процесс обновления снова.
Что-то уж часто обновление стало падать. Надо что-нибудь с этим придумать.
firsovil10
Пожалуйста.
Да, настроек действительно ооочень много. ![]()
Насчет TextAbbreviation ...
В данный момент поддерживается только файл сокращений формата Maplex
* Maplex Extension Dictionary File - v1.0
* Format: TEXT ABBREVIATION(S) TYPE
* where TYPE=[Translation|Keyword|Ending]
"улица" ул. Translation
"проспект" просп. Translation
".....
* [end]
более подробную информацию по этому формату можно узнать здесь http://webhelp.esri.com/arcgisdesktop/9 … ore_labels
Last edited by Runge (2014-05-04 19:47:33)
Offline
#1306 2014-05-05 07:09:33
- LLlypuk82
- Member

- Registered: 2012-12-23
- Posts: 2,512
- Website
Re: Обновление MapSurfer.NET
Я хотел бы предложить как-то графически обозначать заброшенные/разрушенные/неиспользуемые объекты
Поддерживаю просьбу. Пунктир (можно и блёклость вкупе) для них - было бы самое то.
Offline
#1307 2014-05-05 08:24:06
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
Paravoz , LLlypuk82 прошу прощения. Пропустил ваш пост.
Не могли бы вы предоставить ссылки на значения тегов и на объекты типов заброшенные/разрушенные/неиспользуемые?
Попробую что-нибудь придумать.
Offline
#1308 2014-05-05 08:32:33
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Обновление MapSurfer.NET
Не могли бы вы предоставить ссылки на значения тегов
http://wiki.openstreetmap.org/wiki/Key:abandoned
Притом неплохо бы про стимулировать новый namespace "abandoned:*", отказавшись от поддержки abandoned=yes
Offline
#1309 2014-05-05 08:38:04
- chnav
- Member

- From: Russia, mapping Kazakhstan
- Registered: 2010-03-18
- Posts: 3,303
Re: Обновление MapSurfer.NET
Runge
А как вообще происходит обработка/отрисовка symbolizer ?
Ну вот допустим сейчас со зданиями, есть symbolizer
1. building=yes
Добавим ещё один symbolizer
2. building=yes
disused=yes
Они оба будут отрисовываться один поверх другого, или MapSurfer понимает что идет обработка одной и той же геометрии и выберет последнее значение для каждого стиля (линия, цвет и т.д.) ? (как в MapCSS)
PS: извиняюсь если вопрос нубский, давно не запускал Studio т.к. помню именно этот момент меня расстроил.
Last edited by chnav (2014-05-05 08:41:33)
Offline
#1310 2014-05-05 09:03:42
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Обновление MapSurfer.NET
Я делал через явное описание задан тег или нет. Хотя там есть какие-то alsoFilter и elseFilter но как это использовать я не понял.
Offline
#1311 2014-05-05 09:04:13
- LLlypuk82
- Member

- Registered: 2012-12-23
- Posts: 2,512
- Website
Re: Обновление MapSurfer.NET
abandoned
disused
Возможно имеет смысл в этот ряд поставить и building=construction
building=collapsed не нашёл
Offline
#1312 2014-05-05 09:14:50
- chnav
- Member

- From: Russia, mapping Kazakhstan
- Registered: 2010-03-18
- Posts: 3,303
Re: Обновление MapSurfer.NET
Я делал через явное описание задан тег или нет. Хотя там есть какие-то alsoFilter и elseFilter но как это использовать я не понял.
Если так - то... Добавляя отрисовку ещё одного тега придется всем попутным симболайзерам добавлять его отрицание. У меня сейчас так в alaCarte
highway=* - цвет, окантовка, ширина - по-умолчанию (минимум 8 возможных значений)
smoothness=* - заменяется цвет линии (5 значений + undefined)
surface=* - заменяется цвет линии (3 значения + undefined)
oneway=* - заменяется цвет окантовки (2 значения + undefined)
highway:category=* - заменяется ширина (5 значений + undefined)
Если это всё описывать принудительно - получается многомерная матрица и symbolizer для каждого условия. Итого 3456 комбинаций.
Last edited by chnav (2014-05-05 09:21:27)
Offline
#1313 2014-05-05 09:22:45
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Обновление MapSurfer.NET
Я предполагаю, что не зря можно менять порядок у rules и поэтому думаю, что alsoFilter и elseFilter завязаны как раз на них, пойду по-экспериментирую.
Да, так и работает.
1 правило [highway] = "service"
2 правило [surface] = "asphalt" + alsoFilter=true и тогда он на этом месте рисует ещё раз уже этим "символом".
3 правило [lanes] != null + alsoFilter=true => highway=service + lanes=*
Last edited by freeExec (2014-05-05 10:35:48)
Offline
#1314 2014-05-05 10:47:48
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
LLlypuk82, спасибо.
chnav, freeExec
Обработка симболайзеров происходит по порядку указанном в списке. Т.е. если условие в Rule выполнено, то симболайзер отрисовывается.
Свойство ProcessFeatureOnce у объекта Style помогает прервать обработку последующих правил, если хотя бы одно из них было выполнено.
alsoFilter и elseFilter работают по тем же правилам, что и в Манике.
см. https://github.com/mapnik/mapnik/wiki/ElseFilter и https://github.com/mapnik/mapnik/wiki/AlsoFilter
Если так - то... Добавляя отрисовку ещё одного тега придется всем попутным симболайзерам добавлять его отрицание. У меня сейчас так в alaCarte
highway=* - цвет, окантовка, ширина - по-умолчанию (минимум 8 возможных значений)
smoothness=* - заменяется цвет линии (5 значений + undefined)
surface=* - заменяется цвет линии (3 значения + undefined)
oneway=* - заменяется цвет окантовки (2 значения + undefined)
highway:category=* - заменяется ширина (5 значений + undefined)Если это всё описывать принудительно - получается многомерная матрица и symbolizer для каждого условия. Итого 3456 комбинаций.
Согласен, что без поддержки каскадности в описании стиля (например как в CartoCSS) некоторые задачи могут быть довольно громоздкими.
В тоже время в Мапсерфере есть возможность изменения любого свойства любого симболайзера во время выполнения программы, используя CustomValueSymbolizer.
Этот симболайзер является свого рода оберткой, который дает возможность обращаться к свойствам других. Это некий аналог представления свойств симболайзера через выражения.
Например, вы можете указать в поле InternalSymbolizer симболайзер LineSymoblizer и указать цвет линии из базы данных. Для этого нужно указать в PropertyName = Stroke.ColorHtml, а в ValueExpression = StringExtensions.ExtractHStoreValue([tags], "colour")
Используя возможности CustomValueSymbolizer, вы можете написать свой конвертер и подключить его к Мапсерферу как плагин.
Т.е. для вашего случая с дорогами, вам нужно написать небольшой статический класс с функцией, которая будет выдавать цвет по значению smoothness или surface, или же с функцией, которая будет выдавать ширину дороги.
Last edited by Runge (2014-05-05 10:49:20)
Offline
#1315 2014-05-05 13:58:27
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Продолжу. ![]()
Последняя версия Studio вылетает при попытке вызова провайдера GDAL/OGR. Недоделанный функционал или надо скопировать в папку с программой какие-то файлы этих библиотек?
Offline
#1316 2014-05-05 14:07:38
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
firsovil10, cпасибо за сообщение об ошибке.
Для работы с GDAL/OGR пакету действительно нужны дополнительные библиотеки.
Ссылки на них вы можете найти в разделе Requirements на странице http://openmapsurfer.uni-hd.de/Framework/info.html
Offline
#1317 2014-05-05 16:26:02
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Приведённые на сайте ссылки на данный момент лично у меня не пашут и вообще, похоже, работают крайне нестабильно. gisinternals тоже не работает и, видимо, страдает той же болезнью.
А подсунуть Studio файлики из комплекта того же QGIS никак нельзя? Или там совсем другая песня?
Offline
#1318 2014-05-05 17:52:11
- Paravoz
- Member
- From: Ярославль
- Registered: 2009-12-01
- Posts: 728
Re: Обновление MapSurfer.NET
Paravoz , LLlypuk82 прошу прощения. Пропустил ваш пост.
Не могли бы вы предоставить ссылки на значения тегов и на объекты типов заброшенные/разрушенные/неиспользуемые?
Попробую что-нибудь придумать.
Заброшенный объект
не использующийся по назначению
disused=*
полностью заброшенный
abandoned=*
разрушенное или демонтируемое здание
building=collapsed
руины
ruins=yes
руины, представляющие историческую ценность
historic=ruins
Что ещё нашел в Вики:
http://wiki.openstreetmap.org/wiki/RU:Key:disused
http://wiki.openstreetmap.org/wiki/RU:Key:abandoned
Offline
#1319 2014-05-05 18:00:37
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
firsovil10
Сложно сказать причину, по которой у вас не работает GDAL.
Не могли бы вы предоставить логи Studio? При вылете, программа генерирует stacktrace.
Попробуте открыть проект Relief из примеров. Интересно, будет ли на нем вылетать?
Paravoz, спасибо.
Offline
#1320 2014-05-05 18:18:19
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Runge, при вылете выскакивает вот что:
Exception details:
Message: Инициализатор типа "MapSurfer.Data.GDAL.GDALWrapper.GDALUtility" выдал исключение.
Source: MapSurfer.Data.GDALWrapper
StackTrace: в MapSurfer.Data.GDAL.GDALWrapper.GDALUtility.GetSupportedFormatsInfo()
в MapSurfer.Data.Providers.GDAL.GDALEditorForm.䵧去魭ⷺ簐晭()
в MapSurfer.Data.Providers.GDAL.GDALEditorForm.OnLoad(EventArgs e)
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
При загрузке проекта с рельефом вылета не происходит, но программа "не видит" самих файлов с рельефом. Отображается "голая" сетка
Offline
#1321 2014-05-05 21:27:56
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
firsovil10, судя по логу, вылетает из-за нехватки прав доступа для вызова функции Environment.SetEnvironmentVariable (см. http://msdn.microsoft.com/en-us/library … 0%29.aspx)
Какие права доступа у вашего пользователя? Можете ли попробовать запустить программу с правами доступа администратора?
В любом случае спасибо за лог, я постараюсь исправить ошибку в следующей версии.
И еще. Укажите пожалуйста путь, по которому у вас находится папка GDAL.
Last edited by Runge (2014-05-05 21:38:18)
Offline
#1322 2014-05-05 22:05:18
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Если речь о папке с провайдером, то путь стандартный: C:\Program Files\MapSurfer.NET\1.15\Core\Plugins\Providers\GDAL. Если же речь идёт о папке, где находится сам GDAL (тот, что вместе с QGIS), то тут тоже всё стандартно: C:\Program Files\QGIS Valmiera\bin.
Запуск под админом не помог. Лог аналогичен
Offline
#1323 2014-05-05 22:13:57
- Runge
- Member
- Registered: 2009-10-02
- Posts: 635
- Website
Re: Обновление MapSurfer.NET
Меня интересует в первую очередь путь к папке, где находятся dll файлы библиотеки GDAL.
Для того чтобы мапсерфер нашел нужный путь, ему необходимо найти в переменных среды переменные "GDAL_DRIVER_PATH" и "GDAL_DATA".
У меня например при установке http://vbkto.dyndns.org/sdk/Download.as … 4-core.msi, GDAL ставится в папку C:\Program Files\GDAL.
Работу провайдера GDAL с файлами из QGIS гарантировать не могу, посольку на них я не тестировал.
Offline
#1324 2014-05-05 22:54:35
- firsovil10
- Member

- Registered: 2014-05-04
- Posts: 31
Re: Обновление MapSurfer.NET
Попробовал ручками прописать данные переменные среды согласно https://trac.osgeo.org/gdal/wiki/ConfigOptions, ничего не поменялось. Если удастся скачать-таки "правильный" дистрибутив, попробую с ним. А вообще стоило бы добавить в настройки задание "своего" пути к GDAL/OGR, поскольку в данный момент, так понимаю, программа завязана именно на дистрибутив с "вечно лежащего" сервера. А библиотеки эти распространяются куда бОльшим числом способов. ![]()
Offline
#1325 2014-05-05 23:27:48
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Обновление MapSurfer.NET
с "вечно лежащего" сервера.
Притом с 7 числа dyndns закрывает халяву, поэтому возможно этот сервер больше не увидит мир.
Offline