sql >> Database >  >> RDS >> PostgreSQL

Hoe behandelt postgi coördinaten verzonden met verschillende SRID

Het transformeren van SRS van geometrieën is veel meer dan alleen het veranderen van hun SRID. Dus als om de een of andere reden na een transformatie de coördinaten terugkeren met exact dezelfde waarden, was er hoogstwaarschijnlijk helemaal geen transformatie.

Dit voorbeeld gebruikt ST_Transform om een ​​geometrie te transformeren van 25832 naar 4326 . Bekijk de resultaten zelf:

WITH j (geom) AS (
 VALUES('SRID=25832;POINT (11.061 49.463)'::geometry))
SELECT ST_AsEWKT(geom),ST_AsEWKT(ST_Transform(geom,4326)) FROM j;

 

       st_asewkt            |                      st_asewkt                       
---------------------------------+------------------------------------------------------
 SRID=25832;POINT(11.061 49.463) | SRID=4326;POINT(4.511355210946569 0.000446125446657)
(1 Zeile)
  • De Polygoon-transformatie in uw vraag is trouwens correct.

Zorg ervoor dat django de door u genoemde waarden echt opslaat. Stuur een 25832 geometrie en controleer direct de SRS in de database. Als je alleen django gebruikt, kan het zijn dat het de coördinaten in de verzoeken opnieuw transformeert, wat zou kunnen verklaren dat je geen verschil ziet.

Op uw vraag:

WGS84 is de meest gebruikte SRS ter wereld, dus ik zou geneigd zijn om ja te zeggen, maar het hangt allemaal af van uw gebruikssituatie. Als u niet zeker weet welke SRS u moet gebruiken, kan dit erop wijzen dat uw use-case er geen beperking aan oplegt. Houd je dus aan WGS84 maar houd er rekening mee dat je geen verschillende SRS door elkaar haalt in je applicatie. Trouwens:als je geometrieën in meerdere SRS in dezelfde tabel probeert op te slaan, zal PostgreSQL een uitzondering maken;)

Verder lezen:ST_AsEWKT , WGS84



  1. Hoe ontwerp je het beste een REST API met meerdere filters?

  2. Oracle SQL-query om opeenvolgende records te groeperen

  3. java.sql.SQLException:veld heeft geen standaardwaarde

  4. Kolomgrootte wijzigen in MySQL