所以我使用ms sql在地理位置存储纬度和经度,在sql中我用以下方法访问该数据:
SELECT
location.Lat AS lat,
location.long AS long,
location
FROM tableName;
它运作良好,纬度为20,4706622,长度为44,8132969,位置是一些凌乱的六角数。
但是当我在PHP中尝试相同时它不起作用,它是相同的并且由以下原因引起:
location.lat/long
以下是我的php的样子
<?php
session_start();
include "connect.php";
$query = $handler->query("SELECT location.lat AS lat, street FROM shops");
$row = $query->fetch(PDO::FETCH_OBJ);
$location[0] = $row->lat;
$location[1] = $row->street;
echo json_encode($location);
如果我将location.lat/long替换为其他任何位置,例如位置,街道,城市或任何其他列,它将起作用。 我知道这取决于location.lat,但我不知道如何格式化它不同。 如果有什么不清楚,请询问。
答案 0 :(得分:0)
如果我更正了,您可以将字段命名为location.Lat
和location.long
将表格的字段名称更改为lat
和long
然后将您的查询更改为:
SELECT
Lat AS lat,
long AS long,
location
FROM tableName;
如果由于某种原因无法更改数据库结构,则另一个选择是创建视图。
据你所知,这个查询有效:
SELECT
location.Lat AS lat,
location.long AS long,
location
FROM tableName;
如果您的查询有效,那么您可以通过以下方式创建视图:
create view new_table_name as
SELECT location.Lat AS lat, location.long AS long, location FROM tableName;
然后更改您的php脚本以使用新视图,就像它是普通表一样。
Select * from new_table_name
应该让你知道刚刚发生了什么。