【发布时间】:2011-09-25 10:41:28
【问题描述】:
不确定这是逻辑问题还是 MySQL 问题...但是,仍然需要帮助。
我有一个地区列表,每个地区都有坐标。数据库大小约为 115MB。以下是记录的样本:
| PC1 | PC2 | CITY | PROV | AREACODE | LAT | LNG |
| A1A | 0B8 | ST. JOHNS | NL | 709 |47.5986880000|-52.7255210000|
| A1A | 0B9 | ST. JOHNS | NL | 709 |47.5505750000|-52.7460720000|
等等,等等……
我需要做的是获取每个城市的记录,它代表最大纬度和经度值,然后是最大纬度和最小经度值,然后是以最小纬度值和最小经度值记录,然后以最小纬度值和最大经度值记录。
我一开始是:
SELECT MAX(lat), MAX(lng), MIN(lat), MIN(lng), city FROM places GROUP BY city
这给了我每个城市的一条记录,其中包含我要求的 MAX/MIN 值,但这些最小值和最大值代表了对最小纬度、最大纬度等的单独查询......这给了我一个很好的面积估计所以我可以在谷歌地图上画一个多边形……但它们是正方形,有很多重叠,我知道我可以做得更好……这些结果代表了任何地方的最大北、南、东、西记录在城市记录组中..
我想要做的是搜索具有最大纬度和最大纵向值的 ONE 记录,然后是最大纬度和最小纵向值,......等等。
不知道如何嵌套这些 SQL 语句...我尝试了一些 IN 语句,但总是导致一条记录不能完全代表任何最大值或最小值。
【问题讨论】:
标签: mysql geolocation geometry google-maps-api-3