LBS应用中,为了实现“经纬度转地址”的需求,快速定位选择用户地址,奈何百度、高德的API又要钱钱
那就自己下载城市边界数据,处理数据并导入到MySQL当中去吧!
省市区边界数据:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
这里用的是省市区三级坐标边界数据
四级的数据要钱
好了,csv文件下载下来了,怎么把它导入到MySQL?好像直接用MySQL的指令没法导入这个csv文件哦?
看到这个边界数据提供者主页,他有提供一个转换工具,可以把csv转sql,不过好像……只能转10个哦,转多了他就要收钱了emm
那我们就自己解析一下csv文件,转成sql吧
首先咱先在MySQL当中建个表!
1 | CREATE TABLE Geo ( |
然后在mysql当中执行指令
1 | source D:/Users/DELL/Desktop/Area-City/sql.sql |
接下来,我们就可以在MySQL当中直接使用sql语句来做地址逆解析啦!
例如,我想获取经度116.929976 纬度28.342231的地名,那么就可以使用sql语句
1 | SELECT id,deep,name FROM Geo WHERE ST_Intersects(polygon, ST_GeomFromText('POINT(116.929976 28.342231)',0))=1; |