Как уже было выше подмечено, база данных стала совсем “битая”.
В ближайшее время (1-2 недели) планирую произвести новый импорт базы данных на новых SSD дисках.
Установил mapSurfer.NET 2.5. Система Windows 7 x86, дотнет 4.6 и разные его обновления установлены. При открытии любого проекта - нативного или mml из папки с примерами - выскакивает исключение. Ниже скриншот при открытии “C:\Users\Public\Documents\MapSurfer.NET\2.5\Samples\Projects\contour-lines\project.mml”
Куда копать ? ))
В своё время я ставил дополнительно ещё gdal-201-1600-x64-core
freeExec подметил верно. Ссылки на требуемый пакет GDAL можно найти на странице
http://mapsurfernet.com/downloads
Да действительно установил компоненты GDAL Core и CSharp bindings, проект загрузился.
Нашел два проекта с примером CartoCSS, оба используют данные SRTM DEM. Скачал файл E060N90.DEM отсюда, положил его в папку "contour-lines\data\srtm", открыл проект, отзумился на нужную область (Алма-Ата, там гористая местность) - ничего не происходит, видна только черная подложка.
Возможно положил не тот DEM и не туда, но Help по DEM выдает ошибку http://mapsurfernet.com/docs/usermanual/data_sources/raster/index больше спрашивать помощи негде.
Помогите, хочется уже увидеть что он рендерит ))
А пример Relief.msnpx из поставки пробовал https://github.com/MapSurferNET/MapSurfer.NET-Examples/tree/master/Projects
И возможно косяк в том, что версию надо 2
В настройках проекта прописано следущющее
“Datasource”: {
“type”: “dem”,
“path”: “data\srtm”,
“datasource_type”: “SRTM_v2”,
т.е. требуется SRTM версии 2.
данные, на пример, можно скачать отсюда
https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/
Да я смотрел настройки проекта и моя ссылка вроде мало чем отличается https://dds.cr.usgs.gov/srtm/version2_1/SRTM30/e060n90/ кто же знал что вместо расширения dem нужно расширение hgt.
Хорошо бы это добавить в readme.txt в проекте
(added)
Да всё заработало, спасибо.
chnavПомогло переименование или какой формат там взять, а то hgt.zip там нет.
freeExec
Просто распаковал нужный файл из ссылки Runge https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/
Если нужны другие континенты разграфка тут
Не я про твою ссылку, там просто удобней сразу большой файл, а не куча мелких.
Самый простой способ для ОСМера начать использовать MapSurfer это, естественно, OSM XML или PBF в качестве провайдера данных. В комплекте с CartCSS у меня не получаются следующие вещи.
- В стиле указываю фильтр для дорог
[highway='motorway'],
[highway='trunk'][motorroad='yes']
{}
Но так получилось что в обрезанном PBF нет ни одного элемента motorroad=yes, соответственно такого поля нет в данных. В результате стиль для всего слоя не обрабатывается, ничто не рендерится, пустой лист.
- Мультиполигоны не обрабатываются совсем, словно нет такой геометрии.
Абсолютно с этим согласен. Давайте вместе попробуем это исправить.
Для решения проблемы №1 есть идея. Эта идея заключается в дополнительном файле, в котором пользователь сможет указать список тегов, которыми будет дополяться провайдер данных OSM XML/PBF.
Проблема №2. Насколько я помню, то мультиполигоны должны поддерживаться. Мультиполигоны могут не отображаться в случае если они представлены в файле частично. Можно воспользоваться JOSM для загрузки недостающих частей мультиполигона.
Если Вы вышлите мне свой проект со стилями и исходными данными (с указанием идентификатора отсутствующего мультиполигона), то я смогу быстрее внести необходимые изменения в соответствующий провайдер данных.
Мне кажется проще сделать условие при парсинге CSS: если key отсутствует в базе то любое выражение с ним сделать равносильным key = null
По проблемному мультиполигону выслал проект на почту. Спасибо.
Runge
Ещё несколько вопросов, все относятся с CartoCSS + OSM XML|PBF
NOTE: я предполагаю что провайдер OSM сделан только для quick start и п.п. 1-4 реализуются запросами PostgreSQL+PostGIS, но вдруг это реализовано внутри MapSurfer, только не описано и нет примеров.
@issue 2016-08-04, 08:30
-
В провайдере данных OSM есть ли какое-то ключевое слово для выделения объектов определенного типа, например
node, way, relation
или node, входящий в relation и имеющий роль admin_center -
Geometry Transformations
Есть ли реализация для CartoCSS или в провайдере данных OSM ? -
Какие функции можно использовать в выражениях для значений параметров, кроме тех что указаны в списке http://mapsurfernet.com/docs/usermanual/expressions/index ? (экспоненты, возведение в степень и т.д.)
-
Есть ли функции (для CartoCSS), параметром для которых является текущая геометрия, например изменить размер шрифта в зависимости от площади ?
-
И последнее очень важный момент непосредственно по переменным CartoCSS.
Исходя из всех просмотренных примеров - основной стиль мапника, veloroad, osm-bright и т.д. - переменные (variable @var) это не совсем переменные, скорее constant или define для подстановки. Тем не менее они не работают в качестве параметров фильтров, например такое определение не дает синтаксических ошибок, но слой не рисуется
@zoom_mid: 12;
//#highway[zoom >= 12] { // OK
#highway[zoom >= @zoom_mid] { // No errors but not rendered
line-width: 1.0;
}
Схожая проблема кажется была решена в TileMill https://github.com/mapbox/carto/issues/197 и https://github.com/mapbox/carto/issues/337
Спасибо.
@issue 2016-08-04, 10:20
Сконфигурировал IIS сервис строго как описано в инструкции http://mapsurfernet.com/docs/usermanual/web_services/running-webservice-using-iis75
но указал стиль CartoCSS. В броузере при вызове url http://localhost:8001/tms.ashx?x=0&y=0&z=0 вылетает ошибка
@issue 2016-08-04, 15:30
Использование плоских проекций.
Попытался сменить тип проекции в настройках проекта, т.е. рендерить тайлы не в дефолтном меркаторе, а, например Lambert Conical. В настройках проекта (файл mml) звменил строку на
При открытии проекта выскакивает исключение. Индексы у данных удалял, не помогает.
Вопрос: поддерживаются ли проекции PROJ4 и кастомные через строку как выше, или только гугломеркатор ? Имеются в виду не провайдеры данных (там богатый выбор проекций) а именно о рендере, тайлах для slippy map.
Обычно тайлы для slippy map определены для гугломеркатора.
Другие проекции возможны, но требуют как минимум соответствующей настройки на стороне тайлового сервиса и на клиенте.
chnav
У вас накопилось довольно много вопросов. Давайте разберем их по порядку.
Пост №1
Понятия node, way, relation в Мапсерфере нет. Исключительно ОСМовские типы данных конвертируются в геометрические объекты типа Point, Linestring, Polygon и т.д. Реализация CartoCSS совместима с той, что определена в Tilemill, поэтому присутствует возможность фильтровать данные по типу используя мапниковский синтаксис
[‘mapnik::geometry_type’ = 1]
В настоящий момент реализованна поддержка только тех геометрических преобразований, которые определены в спецификации CartoCSS, т.е. line-simplify, polygon-simplify, line-offset и т.д.
В следующей версии Мапрсерфера появится возможность определять геом. преобразования через line-geometry-transformation: “GeometryTransformations.MBRLongestAxis([geom_field])” с любым уровнем вложенности.
На сегодняшний день, в фильтрах CartoCSS выражения поддерживаются довольно скудно. Однако, значения текстового поля могут задаваться используя синтаксис указанный на приведенной вами странице.
Расширение возможностей фильтров, например [“Math.Abs([fieldName])” > 0] будет добавлено в следующем релизе.
В выражениях можно использовать любую статическую функцию статического класса приведенного на указанной вами странице. Например https://msdn.microsoft.com/en-us//library/system.math(v=vs.110).aspx
(экспоненты, возведение в степень и т.д.) → Math.Sin(0.5)
Такой функции пока нет, но она появится. Это можно будет сделать примерно так
landuse[“GeometryTransformations.ViewTransformation([geom], [ViewTransformation]).Area” > 2000]
{
text-size: 12;
}
или используя площадь объекта в метрах
landuse[“[geom].Area” > 2000000]
{
text-size: 12;
}
В том билде, что доступен сейчас для скачивания этой возможности нет.
Попробуйте установить следующий билд https://drive.google.com/file/d/0BwKq40HTyJ0LbFd4OThadUp0eWc/view?usp=sharing
В нем добавлена возможность использования определеных констант в фильтрах.
Пост №2
В указанном выше билде эта ошибка устранена.