我有一系列保存在MySQL数据库中的区域(城市,地区等)。目前,这些只包含一个人类可读的名称。
如何选择包含特定纬度/经度的所有记录?如何保存区域信息?是否可以与Google Maps API搭配使用?
(是的,不幸的是,我与使用MySQL有关。)
答案 0 :(得分:0)
最好的做法就是使用Google API收集特定邮政编码的lat和long(假设你有邮政编码)并构建所有lat / longs / postcodes的对象然后编写PHP脚本/函数只需循环遍历数组,用新的lat和longs
通过邮政编码更新你的数据库记录例如:
$data = array ( array ( 'e11', '0.01111', '5.313133' ), array ( 'e11', '0.01111', '5.313133' ) );
foreach ( $data as $p )
{
query ( 'UPDATE table SET lat = "' . $p['lat'] . '", lng = "' . $p['long'] . '" WHERE postcode = "' . $p['postcode'] . '" );
}
它只是漫长的啰嗦,然后收集所有长片,并采用一种格式实际循环。
答案 1 :(得分:0)
这在vanilla MySQL中并不容易。大多数时候,人们通过使用数据库引擎的GIS扩展来解决这个问题,以便存储您正在寻找的“区域”信息类型。 MySQL有Spatial Extensions可以做到这一点,你可能正在寻找的确切函数,如ST_Contains列出here。
注意:您需要使用MySQL> = 5.6.1来获取contains
函数的预期行为,否则它们只是基于哑的矩形操作。