Рендерить пибрид с помощью 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)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей

