Skąd wiesz, jakiego SRID użyć do pliku shp?
Próbuję umieścić plik SHP w mojej bazie PostGIS, dane są tylko trochę wyłączone. Myślę, że to dlatego, że używam niewłaściwego SRID. Zawartość pliku PRJ jest następująca:
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]]
Z czym SRID to koreluje? I bardziej ogólnie, jak mogę wyszukać SRID na podstawie informacji znalezionych w pliku PRJ? Czy istnieje gdzieś tabela wyszukiwania, która zawiera listę wszystkich srid i ich odpowiedników "geogcs"?
Dla odniesienia, oto obraz niektórych danych zaimportowane za pomocą srid=4269
(próbowałem również 4326 i dostałem dokładnie takie same wyniki):
Obraz http://img245.imageshack.us/img245/2545/4326sand.png
Żółty to moje dane importowane z SHP, a tło jest z openlayers (z geodjango admin). Czy to oznacza, że używam niewłaściwego SRID, czy jest to tylko oczekiwany margines błędu?
Plik shp pochodzi z tutaj
6 answers
Aby rozwinąć odpowiedź synekdoche , srid jest czasami nazywany kodem "EPSG". Kod SRID / EPSG jest skrótem defacto dla dobrze znanych reprezentacji tekstowych projekcji.
Możesz wykonać szybkie wyszukiwanie w tabeli SRID, aby sprawdzić, czy możesz znaleźć dokładne lub podobne dopasowanie: SELECT srid, srtext, proj4text FROM spatial_ref_sys WHERE srtext ILIKE '%BLAH%'
Powyżej znaleziono w http://www.bostongis.com/?content_name=postgis_tut01 .
Możesz także wyszukać na spatialreference.org do tego rodzaju rzeczy. Narzędzie wyszukiwania jest prymitywne, więc być może będziesz musiał użyć wyszukiwarki Google i określić witrynę, ale wszelkie wyniki pokażą ci zawartość ESRI PRJ, wstawkę PostGIS SQL i kilka innych reprezentacji.
Myślę, że Twój PRJ jest na: http://spatialreference.org/ref/sr-org/15/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:36
Prj2EPSG to mała strona, której celem jest dokładnie ten problem; wklej w treści PRJ i stara się znaleźć pasujący EPSG. Mają również Web service API . To nie jest nauka ścisła. Używają Lucene i bazy danych EPSG do wyszukiwania dopasowań.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-31 02:44:37
Dane wydają się być NAD83, który ma SRID 4269. Twoja baza danych PostGIS ma tabelę spatial_ref_sys
, która jest tabelą wyszukiwania SRID.
Jeśli dane wyglądają tak samo z SRID 4269 (NAD83) i 4326 (WGS84), to coś jest nie tak.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-09 03:12:31
Idź i pobierz GDAL utilities , ogrinfo (które pluje informacje o projekcji) i ogr2ogr utilities są nieocenione.
James dał już link do spatialreference.org . to pomaga znaleźć przestrzenne informacje odniesienia... Zakładam, że załadowałeś spatial_ref_sys.sql
kiedy przygotowywałeś swoją instancję postgis .
Zazwyczaj przechowuję swoje dane w różnych SRIDs w moim PostGIS dbs. Jednak zawsze potrzebuję , aby projektować na wyjście SRS. Pokazujesz wstępnie renderowane kafelki OpenStreetMap i założę się, że zostały narysowane za pomocą SRID 900913 (zmodyfikowana projekcja Mercatora Google map, której teraz każdy używa do render).
Moja rekomendacja dla ciebie to:
1-ustaw odpowiednią projekcję w kodzie OpenLayers, która pasuje do dowolnych kafelków, z których czytasz.
2.- Przechowywać dane w baza danych w dowolnych SRIDACH (o ile oczywiście jest poprawna).
3.- Upewnij się, że serwer, którego używasz do generowania obrazów z Twoich danych (serwer ArcGIS, Mapserver, GeoServer lub cokolwiek to jest) jest reprojecting do tego samego SRS.
Wszystko się zgadza.Cheers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-15 18:20:17
Użyj GDAL ' s OSR Python module aby określić kod:
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')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-29 22:53:35
Zobacz koniecznie: http://www.epsg-registry.org/
Użyj opcji Query by Filter i wpisz: North American Datum 1983.
To daje - > EPSG: 6269.
Mam nadzieję, że to zadziała dla Ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-25 03:35:43