我正在尝试将得克萨斯州参议院地区网站的Shapefiles转换为与Google Maps API一起使用的GeoJSON文件。我正在使用QGIS进行便利,但是我无法正确获得投影/坐标。到目前为止,我还没有尝试过谷歌墨卡托(EPSG:900913)和WGS 84(EPSG:4326)。我正在使用OpenLayers来验证结果,它一直将得克萨斯州放在几内亚湾附近(0纬度,0磅)。
我正在尝试将得克萨斯州参议院地区网站的Shapefiles转换为与Google Maps API一起使用的GeoJSON文件。我正在使用QGIS进行便利,但是我无法正确获得投影/坐标。到目前为止,我还没有尝试过谷歌墨卡托(EPSG:900913)和WGS 84(EPSG:4326)。我正在使用OpenLayers来验证结果,它一直将得克萨斯州放在几内亚湾附近(0纬度,0磅)。
Answers:
将可下载的shapefile直接加载到QGIS中没有问题。
数据位于EPSG:3081中,最好保留这种方式。Google API期望使用latlong值,因此目标CRS应该为EPSG:4326。
只需右键单击图层->另存为...,选择文件类型GeoJSON,其他文件名以及EPSG:4326作为新的CRS。您可以将结果添加到画布以查看它们是否对齐(On-the-fly-reprojection
选中)。
这是用于通过Web浏览器将shapefile转换为geojson的转换工具,而无需服务器端代码并且不支持非英语编码,只需上传zip文件并为正确的文本设置编码即可。
https://github.com/gipong/shp2geojson.js
如果将此库与Google Map api v3一起使用,则可以跳过EPSG代码字段,因为从德克萨斯州参议院地区网站下载的ZIP存档(PlanS172.zip)包含.prj文件。
loadshp({
url: '/shp/PlanS172.zip', // path or your upload file
encoding: 'big5' // default utf-8
}, function(geojson) {
// geojson returned
});
GeoJSON基于JavaScript对象表示法。在本文中,您可以探索在线,离线或借助您可以使用的API转换shapefile的不同方法。因此,请查看这篇文章,将shapefile转换为GeoJSON文件,以便在Google地图中使用。