使用MySQL的geometry类型处理经纬度距离问题的方法
建表
CREATETABLE`map`( `id`int(11)NOTNULL, `address`varchar(255)NOTNULLDEFAULT'', `location`geometryNOTNULL, PRIMARYKEY(`id`), SPATIALKEY`idx_location`(`location`) )
插入
INSERTINTOmap(id,address,location)VALUES(1,'somewhere',ST_GeomFromText('POINT(121.36696131.190049)'));
注意必须使用ST_GeomFromText函数,且POINT()里面是:经度+空格+纬度
查询
1.查看经纬度
SELECTaddress,ST_AsText(location)ASlocationFROMmap;
2.计算两点之间的距离
SELECTST_Distance_Sphere(POINT(121.590347,31.388094),location)ASdistantFROMmap;
算出来的结果,单位是米
注意现在POINT()里面经纬度之间是逗号分隔的
3.查询距离小于1000m的地点,并由远及近排序
SELECTid,address,ST_Distance_Sphere(POINT(121.590347,31.388094),location)ASdistantFROMmapWHEREST_Distance_Sphere(POINT(121.590347,31.388094),location)<1000ORDERBYdistant;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短