php - 从指定边界内的数据库获取坐标( map 角)

标签 php mysql

我有这个字段 center。保存的数据是位置的 Longitude_Latitude。我正在使用 Google map JavaScript API,我想获取位于所示 map 内的坐标。 (我在服务器端使用 php)。

https://www.dropbox.com/s/uzeiq6043rvueqf/Capture.PNG
https://www.dropbox.com/s/lk6g4tucf60n8va/Untitled.png

我的想法是比较中心坐标和角坐标。 为了获得位置坐标

  1. center_Longitude 必须介于 TopLeftCoords_LongitudeBottomRightCoords_Longitude
  2. 之间
  3. center_Latitude 必须介于 TopLeftCoords_LatitudeBottomRightCoords_Latitude

问题是我可以使用 MySQL 来做到这一点吗?还是我必须为中心经度和纬度设置单独的字段?

最佳答案

我不清楚你在问什么,但我了解到你想分开 center字段以获取纬度和经度分量。这可以像这样完成:

SELECT 
    LEFT(center, LOCATE('_', center) - 1) AS latitude,
    RIGHT(center, LOCATE('_', center) - 1) AS longitude
FROM earth

更新 1

根据您的评论,您要求满足以下条件:

IF Lat <= TopLeftLat && Lat >= BottomRightLat && Lon <= TopLeftLon && Lon >= BottomRightLon

这是您修改后的查询:

SELECT
    LEFT(center, LOCATE('_', center) - 1) AS latitude, 
    RIGHT(center, CHAR_LENGTH(center) - LOCATE('_', center) ) AS longitude
FROM realestate

将条件添加到您的查询中看起来像这样(假设 TopLeftLat 等是您表中的属性):

SELECT a.lat, a.lon
FROM
    (SELECT
        LEFT(center, LOCATE('_', center) - 1) AS lat, 
        RIGHT(center, CHAR_LENGTH(center) - LOCATE('_', center) ) AS lon
    FROM realestate) a
WHERE a.lat <= TopLeftLat AND a.lat >= BottomRightLat AND a.lon <= TopLeftLon AND a.lon >= BottomRightLon

关于php - 从指定边界内的数据库获取坐标( map 角),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12611621/

相关文章:

php - 在 PHP 中除以余数

javascript - 提交数据时没有出现警告框

php - MySQL PHP邮政编码比较具体距离

php - 如何处理数据库中项目列表的 "order"(php)

mysql - PostgreSQL、MonetDB 和 MySQL 向现有表添加外键

php - 警告 : Division By Zero Working on PHP and MySQL

php - Symfony Assetic 将所有文件合并为一个

javascript - jQuery.ajax 为什么不从 php json_encode 访问该项目?

php - MySQL:关于重置 auto_increment 选项

javascript - Angularjs $http post请求数据和未定义错误的响应