QGISやリーフレットのように、matojsonファイルを読み込むのが基本ですが、matplotlibのようなものです。私はこの方法でやりたいので、正確には6000個のgeojsonファイルを読み込み、スタイリングのいくつかを変更してイメージとしてエクスポートすることができます。Pythonでmatplotlibに表示するgeoJsonファイルを表示するにはどうすればいいですか?
私はthis oneなどの他のリンクをたどってきましたが、この方法で「境界」を設定しようとするとKeyErrorsを取得しています。
def setPlotExtent(ax, data):
# get feature extents (a property of the cloudmade geojson)
# note this was previously bbox
minx = data['bounds'][0][0]
maxx = data['bounds'][1][0]
miny = data['bounds'][0][1]
maxy = data['bounds'][1][1]
# set the graph axes to the feature extents
ax.set_xlim(minx, maxx)
ax.set_ylim(miny, maxy)
私はQGISでこれをやってみましたが、あまり成功しました、私は、ArcGISの試用版をダウンロードし、それをやろうとしていると考えられてきましたが、matplot libにとそれを行うと、最も簡単になります。擬似コードで
は、私がやりたいすべてが
(かなり多く、他のスタックの質問にあったものだけです)...for geoJsonFile in geoJsonDir
loadIntoMatPlotLib(geoJsonFile)
changeSomeFeatures()
exportAsPNG()
私の完全なコードはここにある...何かのようです
from matplotlib import pyplot
from descartes import PolygonPatch
import simplejson
def configurePlot():
# set up the mapplotlib
fig = pyplot.figure(1, figsize=(10, 4), dpi=180)
ax = fig.add_subplot(121)
return fig, ax
def setPlotExtent(ax, data):
# get feature extents (a property of the cloudmade geojson)
# note this was previously bbox
minx = data['bounds'][0][0]
maxx = data['bounds'][1][0]
miny = data['bounds'][0][1]
maxy = data['bounds'][1][1]
# set the graph axes to the feature extents
ax.set_xlim(minx, maxx)
ax.set_ylim(miny, maxy)
def plotFeature(coordinates, myplot):
poly = {"type": "Polygon", "coordinates": coordinates}
patch = PolygonPatch(poly, fc='#6699cc', ec='#6699cc', alpha=0.5, zorder=2)
# plot it on the graph
myplot.add_patch(patch)
# turn the geojson into a python object
with open(r"Geo_AOI_1_RIO_img163.geojson") as f:
pydata = simplejson.load(f)
print(pydata)
fig, myplot = configurePlot()
setPlotExtent(myplot, pydata)
plotFeature(pydata['coordinates'], myplot)
# save the plot as an image
pyplot.show()
fig.savefig('myplot.png')
最終的に、これはGeoJSONファイルから生成しようとしている画像です。私はQGISで手動で行った。