Рендерить пибрид с помощью mapnik
- 
				geka83
 - Участник
 - Сообщения: 78
 - Зарегистрирован: 03 май 2014, 21:02
 - Репутация: 5
 
Рендерить пибрид с помощью mapnik
Здравствуйте!! Подскажите в каком направление искать и возможно ли это сделать с помощью mapnika! Есть локальный тайловый сервер куда загуржаются и  нарезаются на тайлы космические снимки земной поверхности, а также база данных OSM установлен mapnik. Необходимо с помощью mapnika на основе имеющейся нарезки тайлов спутникового снимка земли и базы данных  OSM отрендерить гибрид (т.е. нанести на на имеющееся тайлы основные дороги и названия населенных пунктов).
			
									
									
						- SergeyRyzhkov
 - Гуру
 - Сообщения: 909
 - Зарегистрирован: 02 июл 2014, 19:13
 - Репутация: 203
 - Ваше звание: GP-экотеррористы
 - Откуда: Санкт-Петербург
 - Контактная информация:
 
Re: Рендерить пибрид с помощью mapnik
Интересная задача. Через месяц придется самому решение искать.
Если найдете что-то - отпишитесь, пожалуйста.
Пока что на ум приходит (к Mapnik не относится), из БД OSM нарезать также тайлы, а затем тем или иным способом "смержить" два набора, например используя GDAL.
Загвоздка в том что сами по себе тайлы не геопривязаны. Вернее если в структуре, например, файловой то косвенно имеем привязку, но как отдельный файл - нет
			
									
									
						Если найдете что-то - отпишитесь, пожалуйста.
Пока что на ум приходит (к Mapnik не относится), из БД OSM нарезать также тайлы, а затем тем или иным способом "смержить" два набора, например используя GDAL.
Загвоздка в том что сами по себе тайлы не геопривязаны. Вернее если в структуре, например, файловой то косвенно имеем привязку, но как отдельный файл - нет
- 
				geka83
 - Участник
 - Сообщения: 78
 - Зарегистрирован: 03 май 2014, 21:02
 - Репутация: 5
 
Re: Рендерить пибрид с помощью mapnik
Читал якобы космоснимки http://blog.kosmosnimki.ru/2010/02/17/h ... osmosnimki делают гибрид с помощью мапника. Значит по идее можно! Но пока не могу найти технических аспектов реализации!
			
									
									
						- Denis Rykov
 - Гуру
 - Сообщения: 3376
 - Зарегистрирован: 11 апр 2008, 21:09
 - Репутация: 529
 - Ваше звание: Author
 - Контактная информация:
 
Re: Рендерить пибрид с помощью mapnik
Очень просто, берете MapProxy, подключаете тайловый источник и слой на базе мапника и комбинируете как угодно.
			
									
									Spatial is now, more than ever, just another column- The Geometry Column.
						- SergeyRyzhkov
 - Гуру
 - Сообщения: 909
 - Зарегистрирован: 02 июл 2014, 19:13
 - Репутация: 203
 - Ваше звание: GP-экотеррористы
 - Откуда: Санкт-Петербург
 - Контактная информация:
 
Re: Рендерить пибрид с помощью mapnik
А еще способы есть сформировать (сгенерить) тайлы из нескольких источников?
MapProxy и т.д. - это хорошо, но хотелось бы иметь минимум доп. установок.
			
									
									
						MapProxy и т.д. - это хорошо, но хотелось бы иметь минимум доп. установок.
- 
				geka83
 - Участник
 - Сообщения: 78
 - Зарегистрирован: 03 май 2014, 21:02
 - Репутация: 5
 
Re: Рендерить пибрид с помощью mapnik
Спасибо Денис! Буду теперь разбираться!
			
									
									
						- SergeyRyzhkov
 - Гуру
 - Сообщения: 909
 - Зарегистрирован: 02 июл 2014, 19:13
 - Репутация: 203
 - Ваше звание: GP-экотеррористы
 - Откуда: Санкт-Петербург
 - Контактная информация:
 
Re: Рендерить пибрид с помощью mapnik
geka83
Делитесь результатом
			
									
									
						Делитесь результатом
- 
				bms
 - Интересующийся
 - Сообщения: 16
 - Зарегистрирован: 12 дек 2009, 16:35
 - Репутация: 0
 - Откуда: Москва
 
Re: Рендерить пибрид с помощью mapnik
Чтобы срендерить гибридный тайл достаточно добавить к объекту mapnik.map второй слой с описанным стиле, естественно
			
									
									
						Код: Выделить всё
   m = mapnik.Map(600, 600, 'init:epsg:3857')
    s = mapnik.Style()
    s1 = mapnik.Style()
    r = mapnik.Rule()
    r1 = mapnik.Rule()
    r.symbols.append(mapnik.RasterSymbolizer())
    r1.symbols.append(mapnik.LineSymbolizer())
    s.rules.append(r)
    s1.rules.append(r1)
    m.append_style('Raster', s)
    m.append_style('Vector', s1)
    layer = mapnik.Layer('world', m.srs)
    layer.datasource = mapnik.Gdal(file='/path/to/file.tif)
    layer.styles.append('Raster')
    m.layers.append(layer)
    layer1 = mapnik.Layer('fields', m.srs)
    layer1.datasource = mapnik.PostGIS(host='...', user='...', password='...', dbname='...',table='vector_table',srid=3857)
    layer1.styles.append('Vector')
    m.layers.append(layer1)
    m.zoom_all()
    image = mapnik.Image(m.width, m.height)
    mapnik.render(m, image)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя