Map 如何从shapefile';s.prj文件?

Map 如何从shapefile';s.prj文件?,map,gis,shapefile,map-projections,r,Map,Gis,Shapefile,Map Projections,R,我正在为我们的gis应用程序使用mapdotnet服务来加载ShapeFile,这个mapdotnet服务需要proj4的详细信息。我是从spatialreference.org上获得的,但是对于proj4的详细信息是。如何从.prj文件或shapefile中获取proj4详细信息 以下是shapefile的.prj: PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American_1983_HARN"

我正在为我们的gis应用程序使用mapdotnet服务来加载ShapeFile,这个mapdotnet服务需要proj4的详细信息。我是从spatialreference.org上获得的,但是对于proj4的详细信息是。如何从.prj文件或shapefile中获取proj4详细信息

以下是shapefile的.prj:

PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",300812.797],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",45.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",45.87228112638889],UNIT["Foot_US",0.3048006096012192]]

应该可以从单个组件中计算出来。项目4允许指定所有内容。您需要ESRI文档来保存其PRJ文件。这将包括它们的定义(例如,NAD83和正常NAD83之间有什么区别?它们可能是相同的,但我不知道)

另一种方法可能是查看GDAL/OGR库和实用程序。它们能够读取大多数PRJ文件。

或者使用rgdal库:

library(rgdal)
# read the .shp file - layer is the same name but without the .shp
mymap <- readOGR("CA_tract_2000.shp", layer="CA_tract_2000") 
# proj4 info is located in the layer's proj4string slot
mymap@proj4string
库(rgdal)
#读取.shp文件-图层名称相同,但没有.shp

mymap您也可以使用这个Python脚本(在Internet上的其他地方可以看到):


另一个使用perl脚本的解决方案(需要Geo::GDAL):

#/usr/bin/perl-w
严格使用;
使用Geo::OSR;
my$srs=Geo::OSR::SpatialReference->new;
my$prj_text=do{打开我的$fh、shift或die$!;本地$/;};
$srs->ImportFromWkt($prj_text);
打印$srs->ExportToProj4,“\n”;
我使用了来自圣地亚哥GIS门户的和

PyCharm中的Python控制台:

import pycrs
crs = pycrs.load.from_file("C:\GIS\Address_APN\Address_APN.prj")
crs.to_proj4()
输出:

> '+proj=lcc +datum=NAD83 +ellps=GRS80 +a=6378137.0 +rf=298.257222101
> +pm=0 +x_0=6561666.666666666 +y_0=1640416.666666667 +lon_0=-116.25 +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +units=us-ft +axis=enu +no_defs'

如果您无法“导入osr”,请尝试安装GDAL python模块(pip install GDAL),然后“从osgeo导入osr”。类似这样的GIS重问题可能会引起专家的高度关注。
import pycrs
crs = pycrs.load.from_file("C:\GIS\Address_APN\Address_APN.prj")
crs.to_proj4()
> '+proj=lcc +datum=NAD83 +ellps=GRS80 +a=6378137.0 +rf=298.257222101
> +pm=0 +x_0=6561666.666666666 +y_0=1640416.666666667 +lon_0=-116.25 +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +units=us-ft +axis=enu +no_defs'