2010-06-30 5 views
3

J'utilise des services mapdotnet pour notre application gis pour charger les fichiers de formes, et ce service mapdotnet veut les détails de proj4. Je les obtiens de spatialreference.org, mais pour this projection les détails proj4 sont blank. Comment puis-je obtenir les détails proj4 à partir du fichier .prj ou du fichier de formes?Comment puis-je obtenir des détails Proj4 à partir du fichier .prj du fichier de formes?

est en dessous de .prj du shapefile:

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]] 
+0

De lourdes questions GIS comme celle-ci pourraient obtenir un niveau plus élevé d'expert attention sur [GIS Stack Exchange] (http://gis.stackexchange.com/). –

Répondre

0

Il devrait être possible de travailler hors des composants individuels. Proj.4 permet de tout spécifier. Vous aurez besoin de la documentation ESRI pour leurs fichiers PRJ. Cela inclura leurs définitions (par exemple, quelle est la différence entre NAD83_HARN et NAD83 normal? Ils migrer sont les mêmes mais je ne sais pas)

une autre approche pourrait être de regarder la bibliothèque et les utilitaires GDAL/OGR. Ceux-ci sont capables de lire la plupart des fichiers PRJ.

2

Alternative à l'aide et la bibliothèque 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 
[email protected] 
6

Vous pouvez également utiliser ce script Python (vu ailleurs sur Internet):

#!/usr/bin/env python 

import osr 
import sys 

def main(prj_file): 
    prj_text = open(prj_file, 'r').read() 
    srs = osr.SpatialReference() 
    if srs.ImportFromWkt(prj_text): 
     raise ValueError("Error importing PRJ information from: %s" % prj_file) 
    print srs.ExportToProj4() 
    #print srs.ExportToWkt() 

if __name__=="__main__": 
    main(sys.argv[1]) 
+1

Si vous ne pouvez pas "importer osr", essayez d'installer le module GDAL python (pip install gdal) puis "from osgeo import osr". – Marian

2

Une autre solution en utilisant un script perl (nécessite Geo :: GDAL):

#!/usr/bin/perl -w 
use strict; 
use Geo::OSR; 
my $srs = Geo::OSR::SpatialReference->new; 
my $prj_text = do { open my $fh, shift or die $!; local $/; <$fh> }; 
$srs->ImportFromWkt($prj_text); 
print $srs->ExportToProj4, "\n"; 
Questions connexes