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

PHP for at hente PostGIS geografityper

Er det wkb-formatet du ønsker?

select ST_AsWKB('geog') from locations

Men hvorfor vil du først trække dataene ud for at foretage afstandsberegningen?

/Nicklas

Opdater

Ok

Jeg ved ikke hvorfor du ikke får et ordentligt resultat på dine forespørgsler. Jeg er for dårlig til php. Jeg vil gætte på, at resultatet af en eller anden grund er skubbet ind i en eller anden datatype, der ikke er den rigtige. Jeg mener fra ST_AsText skal du bare få en streng, intet mere mærkeligt end det.

Men for at få afstand skal du ikke trække punkterne ud. Det gør du selv for at gøre. Det er, hvad du gør hele tiden, når du bruger PostGIS og sammenligner forskellige geometrier i en enkelt tabel.

Lad os sige, at den første geografi har id=1 og den anden har id=2, forespørgslen kunne være noget i stil med:

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

Hvis du vil have afstanden til alle punkter (eller hvad det nu er) fra punkt med id=1 kan du skrive:

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;

og så videre.

Det vil være meget mere effektivt.

/Nicklas




  1. Fejl under import af MySql-dump i Mysql 5.7

  2. Sådan skriver du information fra html-formular til MySQL-database

  3. Sådan begrænser du værdier ved brug af distinkt

  4. Skift datoformatet i phpmyadmin