Vektör verilerinden basit görüntü oluşturma


14

Herkes bir şekil dosyasından bir görüntü oluşturmak için hızlı (ve tercihen açık kaynaklı) bir yol önerebilir. Örneğin, parsel sınırları içeren bir şekil dosyası var, bu parselleri gösteren bir png dosyası oluşturmak istiyorum. Bu görüntü için gerekli semboloji çıplak kemikler olacaktır (katı anahat ve dolgu).

MapServer'dan shp2img hile yapacağını biliyorum. Sadece başka bir şey olup olmadığını merak ediyorum.

Önceden derlenmiş araçlara veya api / sdks'e yapılan göndermeler kabul edilir.


Belki de bu soru daha genel bir soru olması için "Vektör verilerinden basit resim (örn. Şekil) oluşturma" şeklinde yeniden yazılabilir. Hala cevabınızı alıyorsunuz, ancak diğer halkın da görmesi / cevaplaması için daha fazla teşvik var. Aynı sebepten dolayı "ve açık kaynak" nın "tercihen açık kaynak" olarak değiştirilmesini de öneririm.
Mark Ireland

İyi puanlar, düzenlemeler uygulandı.
user890

Yanıtlar:


15

Python (modüller: shapley , GDAL / OGR , numpy , matplotlib ) ve GDAL / OGR'yi , neredeyse tüm vektör veri soslarından resim çekmek için kullanabilirsiniz. Belki bu size yardımcı olur.

Misal:

from shapely.geometry import Polygon
from shapely.wkb import loads
from osgeo import ogr
from matplotlib import pyplot

def drawPoligon(poligon,graf):
    xLista,yLista = poligon.exterior.xy
    graf.fill(xLista,yLista,"y")
    graf.plot(xLista,yLista, "k-")

fig = pyplot.figure(figsize=(4, 4),dpi=180)
ax = fig.add_subplot(111)
file1 = ogr.Open("d:\\temp02\\datafile.shp")

layer = file1.GetLayerByName("datafile")
parcel = layer.GetNextFeature()

while parcel is not None:
    geometryParcel = loads(parcel.GetGeometryRef().ExportToWkb())
    drawPoligon(geometryParcel , ax)
    parcel = layer.GetNextFeature()


pyplot.savefig('datafile.png')

Tam olarak ihtiyacım olan şey. Bu yaklaşım özellikle şekil dosyası veri kaynaklarına bağlı olmadığından kullanışlıdır. Teşekkürler.
user890

6

Hızlı, ucuz (ve kirli):

  • şekil dosyanızı bir qgis , udig , openjump veya başka herhangi bir ücretsiz CBS ile açıp simgeleyen ,
  • " ekranı yazdır " düğmesine basın ,
  • gimp içine yapıştırın ve png dosyası olarak kaydedin.

Dezavantajı: elbette, görüntü çözünürlüğü ekranın çözünürlüğünden daha iyi olamaz.



2

Sanırım ne demek istediğine çabucak bağlı. Yükledikten sonra kurulumu kolay veya kullanımı kolay bir şey mi demek istediniz?

MapServer ve shp2img'den bahsediyorsunuz. MapServer yüklüyse, büyük olasılıkla şekil dosyaları klasöründe dolaşıp varsayılan simgelerle görüntülerini oluşturacak oldukça basit bir MapScript (Python veya php) komut dosyası yazabilirsiniz.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.