美文网首页
百度地图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