使用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 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短