벡터 데이터에서 간단한 이미지 만들기


14

누구나 shapefile에서 이미지를 생성하는 빠른 (그리고 바람직하게는 오픈 소스) 방법을 제안 할 수 있습니까? 예를 들어, 소포 경계를 포함하는 shapefile이 있는데,이 소포를 나타내는 png 파일을 만들고 싶습니다. 이 이미지에 필요한 기호는 베어 본입니다 (단단한 윤곽과 채우기).

MapServer의 shp2img가 트릭을 수행한다는 것을 알고 있습니다. 사용 가능한 다른 것이 있으면 궁금합니다.

사전 컴파일 된 도구 또는 API / SDK에 대한 모든 참조를 환영합니다.


아마도이 질문은 "벡터 데이터 (예 : 모양)에서 간단한 이미지 만들기"라는 제목으로 제목이 더 일반적인 질문입니까? 당신은 여전히 ​​답을 얻지 만, 다른 사람들도보고 / 응답 할 동기가 더 있습니다. 또한 같은 이유로 "그리고 오픈 소스"를 "바람직하게 오픈 소스"로 변경하는 것이 좋습니다.
Mark Ireland

좋은 점, 편집 내용이 적용되었습니다.
user890 1

답변:


15

python (모듈 : shapley , GDAL / OGR , numpy , matplotlib ) 및 GDAL / OGR 을 사용하여 shapefile의 경우 거의 모든 벡터 데이터 소스에서 이미지를 그릴 수 있습니다. 어쩌면 이것이 도움이 될 것입니다.

예:

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')

정확히 내가 필요한 것. 이 방법은 shapefile 데이터 소스와 관련이 없으므로 특히 유용합니다. 감사.
user890

6

빠르고 저렴하며 더럽습니다.

  • qgis , udig , openjump 또는 다른 무료 GIS로 모양 파일을 열고 상징화하십시오 .
  • " print screen "버튼을 누르고
  • 김프에 붙여넣고 png 파일로 저장하십시오.

단점 : 물론 이미지 해상도는 스크린의 해상도보다 세밀 할 수 없습니다.


3

GeoTools http://geotools.org 에는이 작업을 수행하는 데 필요한 모든 비트가 포함되어 있습니다. 누군가 어딘가에 코드를 가지고 있지 않은 경우 놀랍습니다.


2

나는 그것이 당신이 의미하는 바에 달려 있다고 생각합니다. 설치하기 쉬운 것이나 설치 한 후에는 사용하기 쉬운 것을 의미합니까?

MapServer와 shp2img를 언급했습니다. MapServer를 설치 한 경우 shapefile 폴더를 반복하고 기본 심볼로 이미지를 렌더링하는 매우 간단한 MapScript (Python 또는 php) 스크립트를 작성할 수 있습니다.



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.