shp怎么转geojson
时间: 2024-09-13 13:08:54 浏览: 50
将Shapefile(.shp)格式转换为GeoJSON格式,可以通过多种软件工具或编程库来实现。以下是一些常见的转换方法:
1. 使用开源GIS软件QGIS:
- 打开QGIS。
- 选择“矢量”菜单中的“研究工具” -> “导入/导出” -> “导出图层为GeoJSON”。
- 在弹出的对话框中选择你的.shp文件,然后输入输出路径和文件名,选择保存为GeoJSON格式。
- 点击“确定”进行转换。
2. 使用命令行工具ogr2ogr:
- ogr2ogr是GDAL/OGR库中的一部分,可以在命令行中使用。
- 打开命令行工具(例如,命令提示符或终端)。
- 输入以下命令:`ogr2ogr -f GeoJSON output.json input.shp`。
- 该命令会将名为`input.shp`的文件转换为名为`output.json`的GeoJSON文件。
3. 使用编程语言和相关库,例如Python:
- 在Python中可以使用`fiona`或`geopandas`库来转换格式。
- 使用`fiona`的示例代码:
```python
import fiona
from fiona.transform import transform
from shapely.geometry import shape
# 读取Shapefile
with fiona.open("input.shp") as source:
schema = source.schema
# 将坐标转换为WGS84坐标系(如果需要)
for feature in source:
geom = shape(feature['geometry'])
geom_wgs84 = transform(source.crs, {'init': 'epsg:4326'}, geom)
feature['geometry'] = geom_wgs84.__geo_interface__
# 写入GeoJSON文件
with open('output.geojson', 'w') as dst:
dst.write(json.dumps(feature))
```
- 使用`geopandas`的示例代码:
```python
import geopandas as gpd
# 读取Shapefile
gdf = gpd.read_file("input.shp")
# 将Shapefile保存为GeoJSON
gdf.to_file("output.geojson", driver='GeoJSON')
```
阅读全文