У меня есть база данных PostGIS со столбцом географии.Я хотел бы иметь возможность использовать PHP для выбора географии, чтобы затем я мог выполнить другой запрос, используя ST_Distance, чтобы получить расстояние между точками.Однако, когда я запускаю
SELECT geog from locations;
, я получаю странное значение 6 вместо вывода HEX (что-то вроде 0101000020E6100000C442AD69DEAD5740575BB1BFEC6E3D40 - это то, что я ожидаю).Когда я использую тот же запрос в phpPgAdmin, я получаю ожидаемый результат, но не из своего скрипта PHP: (
Я бы очень признателен за любую помощь:)
Спасибо,
elshae
EDIT
$locations_result = @pg_query($DBConnect, "SELECT geog from locations;");
if (!$locations_result) {
echo "An error occurred upon getting data from the locations table.\n";
exit;
}
$i = 0;
while ($locations_arr = pg_fetch_row($locations_result)) {
$locations['location'][$i] = $locations_arr[0];
echo $locations['location'][$i];
$i++;
}
EDIT2 Итак, сейчас я пытаюсь выбрать географию прямо в функции ST_Distance, чтобы она моглапросто получить результат географии напрямую, что-то вроде:
SELECT ST_Distance(geog_a, geog_b) FROM(SELECT geog AS geog_a FROM location WHERE id=123 UNION SELECT geog AS geog_b FROM location WHERE id=345);
Но мой синтаксис SQL неверен, и мне еще предстоит выяснить, как я могу получить результат, к которому я стремлюсь.UNION помещает эти значения в один столбец, что я уже и сделал.Вместо этого мне нужно что-то вроде:
geog_a |geog_b
----------------
hdsklgh|shfksh