ggk, rgis, eguar, smgis

Чтобы как-то систематизировать всяких генеральных планов и пр. фигни сделал штуку, которая умеет на лету делать gdal warp по контрольным точкам и тянуть нужные тайлы с проксируемого сервиса. На пробу сделал прокси для ggk.mos.ru, rgis.spb.ru и eguar.ru. Вот ссылки для josm imagery

Санкт-Петербург http://rgis.spb.ru

  • привязка исходя из проекции описанной в вики
tms:http://osm.dezhin.net/tyler/tms/rgis-address/{zoom}/{x}/{y} - улицы + дома
tms:http://osm.dezhin.net/tyler/tms/rgis-boundary/{zoom}/{x}/{y} - границы

Екатеринбург http://eguar.ru

  • максимальный зум больше дефолтного, можно поставить 21 в соотв колонку в настройках imagery
tms:http://osm.dezhin.net/tyler/tms/eguar-address/{zoom}/{x}/{y} - улицы + дома
tms:http://osm.dezhin.net/tyler/tms/eguar-boundary/{zoom}/{x}/{y} - границы районов, города и ГО

Москва (старая привязка) http://ggk.mos.ru

  • присутствуют всякие косяки, типа эпизодически выпадающих тайлов и не очень контрастной цветовой палитры для светлых слоев, но вроде оно не сильно мешает, хотя со временем это поправится.
tms:http://osm.dezhin.net/tyler/tms/ggk/{zoom}/{x}/{y} - ggk.mos.ru как есть

Смоленская область http://admin.smolensk.ru/~gis_site/

tms:http://osm.dezhin.net/tyler/tms/smgis/{zoom}/{x}/{y}

Смоленск http://www.smoladmin.ru/map/mapr.html?mode=js&map=SmMap

tms:http://osm.dezhin.net/tyler/tms/smcity/{zoom}/{x}/{y}

Как скорректировать привязку?

  1. переходим по ссылке http://osm.dezhin.net/tyler/layer/ggk и на вкладке находим интересующий нас фрагмент
  2. стрелками на клавиатуре двигаем слой до совпадения с данными осм или с треками (слой с треками можно включить на последних трех zoom level-ах)
  3. жмем add gcp, то что будет в поле под кнопкой нужно скопировать сюда или в личку и подождать когда привязка обновится

Круть!
Правда сдвиг метров в 6 относительно данных OSM получается… Будем дальше проекцию подкручивать или так оставим?
:slight_smile:

Я склонен к тому чтобы подкрутить. Сейчас сделано следующим образом: по проекции описанной в вики сгенерирована сетка из 64 точек. Сейчас можно добавлять точки прямо в нее в виде:
x y lon lat, где x, y координаты в rgis.spd.ru.
Через некоторое время заделаю чего-нибудь, чтобы можно было как-то по-удобней эти точки ставить.

Aleksandr Dezhin, супер!
По Екатеринбургу у меня получилось такое смещение относительно треков:
Проекция Меркатора Eguar Восточная-Декабристов 9.08290562762204E-8 -2.890015437184701E-6
Это смещение в окрестностях точки http://www.openstreetmap.org/?lat=56.826083&lon=60.637912&zoom=18&layers=M

Объясните ламеру, куда вставлять ссылку? http://tms:http://osm.dezhin.net/tyler/tms/eguar-address/{zoom}/{x}/{y}
Если в графу “Служебная ссылка” а потом “Получить слои” то джосм ругается “Неверная служебная ссылка” Если в графу “Ссылка на WMS” то вместо тайлов “Error”. И ещё: 2 раза повторяющееся http: это правильно? Пробовал и так: “tms:http://osm.dezhin.net/tyler/tms/eguar-address/{zoom}/{x}/{y}” тоже не работает. josm-latest

Вставлять в “Ссылка на WMS”

Нет

Только что попробовал - внутри Екатеринбурга работает. Версия JOSM 3880

Спасибо! Ргис работает. П/С: ссылки нужно поправить…

В общем я не одолел перевод этих смещений в какой-либо человеческий вид - если это меркатор, то это должны быть метры, но чего-то маловато для метров…
Привязал Екатеринбург по большему кол-ву точек, опираясь на ключевые дороги, должно получше быть. Возможно потребуется сбросить руками кеш тайлов imagery, flush tile cache похоже ничего не делает.

Это градусы в wgs84, скорее всего.

Upliner говорил что “Для меркатора это радианы по долготе и логарифм тангенса по широте”. Вроде (как упоминал usm78-gis), достаточно просто домножить на 6378137 для получения обычных значений меркатора.

Сдвиги направлены в стороны координатной сетки на которой они определены (и в единицах соответствующей координатной системы),
что несколько усложняет их практическое использование.
В примере dimuzz точка 60.637912E, 56.826083N, epsg:4326 сдвигается на


$ echo 9.08290562762204E-8 -2.890015437184701E-6 | LANG=C awk '{R=6378137; print $1*R,$2*R}'
0.57932 -18.4329

+0.57932 -18.4329 меркаторовских метра от


$ echo 60.637912 56.826083 0.0 | cs2cs -f "%.3f" +init=epsg:4326 +to +init=epsg:3857
6750181.487     7724654.312 0.000

ее координат в меркаторовских метрах: 6750181.487E, 7724654.312N, epsg:3857
Если учесть, что 60.637912E, 56.826083N, epsg:4326 находится в зоне UTM41 (epsg:32641)
с координатами


$ echo 60.637912 56.826083 0.0 | cs2cs -f "%.3f" +init=epsg:4326 +to +init=epsg:32641
355855.845      6300514.112 0.000

355855.845E, 6300514.112N, epsg:4326, то после добавления “меркаторовской поправки”
она станет иметь координаты


$ LANG=C awk 'END{printf("%.4f %.4f %.4f\n",6750181.487+0.57932,7724654.312-18.4329,0.000)}' < /dev/null | cs2cs -f "%.3f" +init=epsg:3857 +to +init=epsg:32641
355855.815      6300504.019 0.000

355855.815E, 6300504.019N, epsg:32641, т.е. сдвинется ~ на +3см -10м в UTM41.

Надо бы СК-63 добавить, чтобы и область не обижать. Где-то на gislab форуме я видел таблицу proj4 параметров для C3 и C4 (?):


# Pulkovo 1942 / CS63 zone C2
<3352> +proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defs  <>

(при этом не забыть правильный +towgs84=)

Edit: Вот гислабовская таблица из гуглокэша, хотя вроде как
+lat_0=0.1 это не совсем 100% +y_0=11057.626 (?)


C2=TM, 27.95, 0, 1, 250000, -11057.626, 0
C3=TM, 30.95, 0, 1, 250000, -11057.626, 0
C4=TM, 33.95, 0, 1, 250000, -11057.626, 0
P1=TM, 32.48333333333, 0, 1, 250000, -12900.566, 0
P2=TM, 35.48333333333, 0, 1, 250000, -12900.566, 0
P3=TM, 38.48333333333, 0, 1, 250000, -12900.566, 0
P4=TM, 41.48333333333, 0, 1, 250000, -12900.566, 0

С правкой смещений как-то грустно. В том смысле, что оно постоянно плавает… Проверял по бингу, его в свою очередь, выравнивая по трекам.
Да, я о Москве говорю.

Но в любом случае, штука очень полезная, т.к. пользоваться оригинальным ggk.mos.ru терпения не хватает.
Спасибо!

usm78-gis, я запутан. Какую проекцию мне использовать? Сейчас это:

+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=95948.85 +y_0=-6552807.1 +ellps=krass +units=m +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs

Могу попробовать поставить любую другую, если вы укажете ее параметры в виде строки proj4.

В шапке топика появилось описание, как скорректировать привязку.

Пока ничего лучше нет. +towgs84= такой же как и в mapinfo:


OGRFeature(Datum8parameters):2
  Datum# (String) = 1001
  Datum_Name (String) = Pulkovo 1942
  Ellipsoid_Name (String) = ELLIPSOID_KRASSOVSKY
  ShiftX (Real) = 24
  ShiftY (Real) = -123
  ShiftZ (Real) = -94
  RotationX (Real) = -0.02
  RotationY (Real) = 0.25
  RotationZ (Real) = 0.13
  scale_ppm (Real) = 1.1
  Prime_Meridian (Real) = 0

а со сдвигами в открытых источниках можно только гадать.
Вот в этом документе http://www.vsevreg.ru/files/munzakaz/kot735.doc пишут о местных системах МСК-64 и МСК-47, гугл опять же дает ссылку нa гислаб (cp. c CK63 выше):


"СК 47 зона 2", 8, 1001, 7, 30.95, 0, 1, 2250000, -6211057.626

но это никак не совпадает с моим кадастром.
Так что ничего другого не остается как улучшать +x_0 и +y_0 с помощью линейной
регрессии по GCP с фиксированными +lon_0 и +towgs84.

Еще сильно не хватает былой прозрачности слоя.

А куда все прокси удалились? :frowning: очень РГис надо бы.

умер винт, кэш копируется, скоро всё починят.

ааа, ох. Ждём-с! Спасибо! Я бы зеркальнул РГис бы например на всякий случай.

Вроде бы все должно работать.