Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

grid-server

Grid - a local HTTP server for generating vector tiles (in KML and GeoJSON formats) with various geographic/coordinate grids.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Read in another language: English


Grid - локальный HTTP сервер для генерации векторных тайлов (в KML и GeoJSON форматах) с различными географическими/координатными сетками.

В сервер встроены 3 сетки:

  • географическая WGS 84
  • координатная Гаусса-Крюгера / Пулково-1942 (зоны по 6 градусов)
  • координатная UTM / WGS 84 (зоны по 6 градусов)

Кроме того, есть возможность добавлять произвольные сетки через grid.ini файл. Например:

pascal
[utm-zone-31n]
GeogCS=+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
ProjCS=+proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +type=crs
DrawPoints=0
DrawLines=1

Имя секции используется для идентификации сетки в url запросе.

Параметры GeogCS (обязательный) и ProjCS - строка инициализации проекции для proj4 библиотеки. Если параметр ProjCS отсутствует, то сетка считается географической. Если оба параметра присутствуют - координатной.

Параметры DrawPoints/DrawLines (опциональные) включают или отключают запись точек/линий, в выходной файл.

Структура url запроса: http://localhost:8888/{grid-id}/{step}/{z}/{x}/{y}.ext

  • {grid-id} - id сетки (имя секции из grid.ini или wgs84, gauss-kruger, utm - для встроенных сеток);
  • {step} - шаг сетки: в градусах для географических сеток; в километрах, для координатных. В качестве разделителя целой и дробной части используется точка. Для градусных сеток можно указать 0 - для автоматического шага;
  • {z}, {x}, {y} - координаты тайла как для OpenStreetMap (EPSG:3857);
  • .ext - формат тайла (поддерживаются: .kml, .json)

Использование

  • распаковать архив в папку с SASPlanet (без замены proj.dll);
  • запустить grid.exe, потом запустить SAS;
  • в списке слоёв в SAS, в подменю Grid выбрать одну из доступных сеток.

Для автоматизации запуска сервера перед запуском SAS, можно установить AutoHotKey v1.1 и запускать связку через скрипт run-sas-and-grid.ahk:

pascal
run, grid.exe,,hide,ppid
runwait, SASPlanet.exe
process,close,%ppid%

Скрипт запускает grid.exe, потом запускает SASPlanet.exe, ждёт в трее пока не закроется SAS и завершает процесс grid.exe. При этом сам grid.exe запускается в скрытом режиме и перед глазами никаких окошек не мелькает. Но учтите, что при таком скрытом запуске вы можете не увидеть каких-то важных сообщений об ошибках от сервера. Поэтому, первый запуск сервера рекомендуется выполнить вручную.


Сборка

Для компиляции сервера из исходников вам понадобятся:

  • Delphi (чем новее, тем лучше) / FreePascal (v3.2.3 или новее);
  • mORMot v2