你怎么知道有什么用SRID为SHP文件?(How do you know what SRID to

2019-07-21 14:57发布

我试图把一个SHP文件到我的PostGIS的数据库,该数据只是有点过。 我想这是因为我使用了错误的SRID。 是PRJ文件的内容如下:

GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]

什么SRID这是否关联到? 更一般地,我怎么可以查找SRID基于PRJ文件中找到的信息? 是否有一个查找表的地方,列出所有SRID的和他们的“GEOGCS”等同?

作为参考,这里是一些使用导入的数据的图像srid=4269 (I也尝试4326,并得到完全相同的结果):

图像http://img245.imageshack.us/img245/2545/4326sand.png

黄色是我的数据从SHP进口的,背景是从的OpenLayers(从GeoDjango内置管理员)。 这是否意味着我使用了错误的SRID,或者这只是预期误差幅度?

SHP文件是从这里

Answer 1:

为了阐述提喻法 “的回答中,SRID有时被称为‘EPSG’的代码。 该SRID / EPSG代码是一个事实上的短手预测的知名文本表示。

你可以在SRID表的快速搜索,看看是否能找到一个确切的或类似的比赛:
SELECT srid, srtext, proj4text FROM spatial_ref_sys WHERE srtext ILIKE '%BLAH%'

以上混合物发现http://www.bostongis.com/?content_name=postgis_tut01 。

您还可以在搜索spatialreference.org对这类事情。 搜索工具是原始的,所以你可能需要使用谷歌搜索,并指定网站,但任何结果将显示您的ESRI PRJ内容时,PostGIS的SQL INSERT,和一堆其他表示。

我觉得你PRJ是: http://spatialreference.org/ref/sr-org/15/



Answer 2:

Prj2EPSG是一个小网站,旨在正是这个问题; 粘贴PRJ内容,并会尽力查找匹配的EPSG。 他们也有一个Web服务API 。 这不是一个精确的科学。 他们似乎利用Lucene和EPSG数据库,为比赛做文本搜索。



Answer 3:

这些数据似乎是NAD83,其中有4269.你的PostGIS数据库的SRID有spatial_ref_sys表这是SRID查找表。

如果数据相同与4269(NAD83)和4326(WGS84)的SRID,那么这里有些不对劲。



Answer 4:

快去下载GDAL公用事业的ogrinfo(这会吐投影信息)和ogr2ogr工具是非常宝贵的。

詹姆斯已经给了一个链接到spatialreference.org 。 这有助于找到空间参考信息...我认为你没有加载spatial_ref_sys.sql当你准备好PostGIS的实例 。

坦白地说,我不认为这个问题是在事物的PostGIS的一面。

我通常保持在我的PostGIS DBS不同SRIDs我的数据。 但是,我总是需要投射到输出SRS。 你是显示OpenStreetMap的预渲染的片段,我敢打赌,他们一直在使用SRID 900913(画了谷歌地图的修改墨卡托投影 ,现在每个人都使用渲染 )。

我给你的建议是:

1 - 坐落在的OpenLayers代码,您是从什么读瓷砖相匹配的右投影。

2:请在您想要的任何SRID数据库中的数据(只要它是正确的,当然)。

3.-确保您使用的是生成数据图像(ArcGIS Server时,Mapserver的,的GeoServer或不管它是什么)服务器重新投影到同一SRS。

一切都将匹配。

干杯



Answer 5:

使用GDAL的OSR Python模块以确定代码:

from osgeo import osr

srsWkt = '''GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]'''

# Load in the projection WKT
sr = osr.SpatialReference(srsWkt)

# Try to determine the EPSG/SRID code
res = sr.AutoIdentifyEPSG()
if res == 0: # success
    print('SRID=' + sr.GetAuthorityCode(None))
    # SRID=4269
else:
    print('Could not determine SRID')


Answer 6:

一定要看一看: http://www.epsg-registry.org/

通过筛选选项使用查询,并输入:北美基准1983年。

该收益率 - > EPSG:6269。

希望这对你的作品。



文章来源: How do you know what SRID to use for a shp file?