phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

PHP do pobierania typów geografii PostGIS

Czy jest to format wkb, który chcesz?

select ST_AsWKB('geog') from locations

Ale dlaczego chcesz najpierw pobrać dane, aby obliczyć odległość?

/Nicky

Aktualizacja

Dobrze

Nie wiem, dlaczego nie otrzymujesz prawidłowego wyniku w swoich zapytaniach. Jestem zbyt zły w php. Domyślam się, że wynik z jakiegoś powodu jest wpychany do jakiegoś typu danych, który nie jest właściwy. Mam na myśli, że z ST_AsText powinieneś po prostu otrzymać ciąg znaków, nic bardziej dziwnego niż to.

Ale aby uzyskać dystans, nie powinieneś wyciągać punktów. Aby to zrobić, robisz self-dołączenie. To właśnie robisz przez cały czas, używając PostGIS i porównując różne geometrie w jednej tabeli.

Załóżmy, że pierwsza geografia ma id=1, a druga ma id=2, zapytanie może wyglądać tak:

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

Jeśli chcesz odległość do wszystkich punktów (lub cokolwiek to jest) od punktu o id=1, możesz napisać:

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;

i tak dalej.

To będzie o wiele bardziej efektywne.

/Nicky




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. dlaczego tworzenie widoku z widoku sprzężenia lewego nie jest szybkie?

  2. Błąd MySql #1243 podczas wykonywania go przez phpMyAdmin

  3. Problem z eksportem/importem phpmyadmin z podziałami wierszy

  4. Jak wymagać SSL dla wszystkich zdalnych użytkowników?

  5. Nie można zalogować się do phpMyAdmin, nie wyświetlają się żadne błędy