形状文件不显示在卡通基础地图上?

2024-04-27 11:10:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试添加一些形状文件到一个卡通基础地图。结果发现有些形状文件有用,而另一些不起作用。我在谷歌上搜索了一整天,没有任何运气。你能帮忙吗。 下面是我正在使用的代码。可在此处下载两个形状文件:

https://www.dropbox.com/sh/2lp93uz28rmyfcs/AAAiA-p4ge5KzHDC5dXlflXga?dl=0

import matplotlib.pyplot as plt 
import cartopy.crs as ccrs
from cartopy.io.img_tiles import OSM
from cartopy.io import shapereader

#%% ======== map paramters =================
map_extent_eastings=(378000,390000)
map_extent_northings=(6427500,6443000)

#%%
plt.subplots(1,1,figsize=(10,10))
ax = plt.axes(projection=ccrs.epsg(28350))
ax.set_extent([map_extent_eastings[0],map_extent_eastings[1],map_extent_northings[0],map_extent_northings[1]],crs=ccrs.epsg(28350))

tiler = OSM() 
cur_CRS = tiler.crs
zoom = 8 #12 for the final 
ax.add_image(tiler, zoom, interpolation='bilinear' )


#============= Figure out why this deosn't work ===================
### this one doesn't work 
ax.add_geometries(shapereader.Reader('data/AdditionalPumping_south_v2_test.shp').geometries(), 
                  ccrs.epsg(28350),facecolor='none',edgecolor='r',linewidth=1.5,zorder=10)

# This one works 
ax.add_geometries(shapereader.Reader('data/MAR_locations_v2.shp').geometries(), 
                  ccrs.epsg(28350),facecolor='none',edgecolor='r',linewidth=1.5,zorder=10)

plt.show()

===============================


Tags: 文件importmappltaxepsgextent形状
2条回答

Github上的Cartopy社区已经找到了解决方案。任何对此感兴趣的人,请参见https://github.com/SciTools/cartopy/issues/1217

我检查了你上传到dropbox上的shapefile。结果是形状文件没有被正确读取。在

当我打印出MAR_locations_v2.shp的记录时,这就是我得到的

Record(MULTIPOLYGON (((386523.5418971451 6432084.711430285, 386523.5418971451 6432184.711430287, 386573.541897146 6432184.711430287, 386573.541897146 6432084.711430285, 386523.5418971451 6432084.711430285))), {'Name': ''}, )

Record(MULTIPOLYGON (((386405.7078714892 6438043.356735789, 386405.7078714892 6438143.356735789, 386505.7078714911 6438143.356735789, 386505.7078714911 6438043.356735789, 386405.7078714892 6438043.356735789))), {'Name': ''}, )

当我打印南加泵v2的记录时_测试.shp我明白了

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 1, 'row': 465.0, 'column_': 94.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 2, 'row': 469.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 3, 'row': 470.0, 'column_': 94.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 4, 'row': 473.0, 'column_': 106.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 5, 'row': 475.0, 'column_': 93.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 6, 'row': 475.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 7, 'row': 480.0, 'column_': 93.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 8, 'row': 482.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 9, 'row': 482.0, 'column_': 110.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 10, 'row': 485.0, 'column_': 92.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 11, 'row': 489.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 12, 'row': 490.0, 'column_': 92.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 13, 'row': 491.0, 'column_': 114.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 14, 'row': 495.0, 'column_': 91.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 15, 'row': 496.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 16, 'row': 500.0, 'column_': 91.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 17, 'row': 500.0, 'column_': 118.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 18, 'row': 503.0, 'column_': 97.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 19, 'row': 509.0, 'column_': 120.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 20, 'row': 510.0, 'column_': 96.0, 'Shape_Leng': 240.0, 'Shape_Area': -2000.0}, )

Record(GEOMETRYCOLLECTION EMPTY, {'OBJECTID': 21, 'row': 518.0, 'column_': 119.0, 'Shape_Leng': 80.0, 'Shape_Area': -400.0}, )

这并不是这个问题的完整答案,但是它回答了为什么你没有得到剧情的部分。您可能希望以不同的方式保存形状文件,以便打印。在

相关问题 更多 >