美文网首页
百度地图MySQL如何实现按距离排序、范围查找

百度地图MySQL如何实现按距离排序、范围查找

作者: OnlyRose | 来源:发表于2017-12-03 16:40 被阅读40次

表结构如下:

-- ----------------------------
-- Table structure for sblocation_table
-- ----------------------------
DROP TABLE IF EXISTS "sblocation_table";
CREATE TABLE "sblocation_table" (
  "_id" TEXT,
  "address" TEXT,
  "lon" REAL,
  "createtime" TEXT,
  "longitude" TEXT,
  "latitude" TEXT,
  "lat" REAL,
  "type" TEXT,
  "owner" TEXT,
  PRIMARY KEY ("_id")
);
表结构.png
SELECT DISTINCT
    sblocation_table._id,
    sblocation_table.address,
    sblocation_table.createtime,
    sblocation_table.longitude,
    sblocation_table.latitude,
    sblocation_table.owner,
    ROUND(
    6378.138 * 2 * ASIN (
    SQRT (
    POW ( SIN ( ( 34.200317 * PI () / 180 - latitude * PI () / 180 ) / 2 ), 2 ) + COS ( 34.200317 * PI () / 180 ) * COS ( latitude * PI () / 180 ) * POW ( SIN ( ( 108.875249 * PI () / 180 - longitude * PI () / 180 ) / 2 ), 2 ) 
    ) 
    ) * 1000 
    ) AS distance_um 
FROM
    sblocation_table 
ORDER BY
    distance_um ASC

34.200317 108.875249为输入值


MySql执行结果.png

在Android SqlLite上执行错误


Android SqlLite上执行错误.png

相关文章

网友评论

      本文标题:百度地图MySQL如何实现按距离排序、范围查找

      本文链接:https://www.haomeiwen.com/subject/thzabxtx.html