sql >> Database >  >> Database Tools >> phpMyAdmin

PHP om PostGIS-geografietypen op te halen

Is het het wkb-formaat dat je wilt?

select ST_AsWKB('geog') from locations

Maar waarom wil je eerst de gegevens eruit halen om de afstand te berekenen?

/Nicklas

Bijwerken

Oké

Ik weet niet waarom u geen goed resultaat krijgt op uw vragen. Ik ben te slecht in php. Ik vermoed dat het resultaat om de een of andere reden in een gegevenstype wordt geduwd dat niet het juiste is. Ik bedoel, van ST_AsText zou je gewoon een string moeten krijgen, niets vreemder dan dat.

Maar om je afstand te krijgen, moet je de punten niet eruit trekken. Hiervoor doe je een self-join. Dat is wat u altijd doet als u PostGIS gebruikt en verschillende geometrieën in één enkele tabel vergelijkt.

Laten we zeggen dat de eerste geografie id=1 heeft en de tweede id=2. De zoekopdracht kan zoiets zijn als:

SELECT ST_Distance(a.the_geog, b.the_geog) as dist 
from locations a, locations b WHERE a.id=1 and b.id = 2;

Als u de afstand tot alle punten (of wat het ook is) vanaf een punt met id=1 wilt, kunt u schrijven:

SELECT  ST_Distance(a.the_geog, b.the_geog) as dist
from locations a inner join locations b on a.id != b.id WHERE a.id=1;

enzovoort.

Dat zal veel effectiever zijn.

/Nicklas




  1. Kan geen verbinding maken met SQL Server Analysis Services, hoewel het lijkt te werken

  2. phpMyAdmin installeren met Nginx op CentOS 8

  3. U heeft geen toestemming om de bulkload-instructiefout te gebruiken

  4. Schakel de prompt voor opslaan uit in SQL Server Management Studio 2005