地理坐标计算

/*根据半径(1000米)选择记录 */
SELECT * FROM pointlocation where earth_box(ll_to_earth(40.057031,116.307852),4000) @> ll_to_earth(pointlocation.lat, pointlocation.lon);

/*判两点间的距离*/
SELECT earth_distance(ll_to_earth(40.057031,116.307852), ll_to_earth(pointlocation.lat, pointlocation.lon)) FROM pointlocation where id=1112

  1. /*
  2. * postgreSQL之earthdistance学习笔记
  3. * author: wusuopubupt
  4. * date: 2013-03-31
  5. */
  6. /*创建表*/
  7. CREATE TABLE picture (
  8. id serial PRIMARY KEY ,
  9. p_uid char(12) NOT NULL,
  10. p_key char(23) NOT NULL,
  11. lat real not null,
  12. lng real NOT NULL,
  13. up int NOT NULL,
  14. down int NOT NULL,
  15. ip varchar(15) DEFAULT NULL,
  16. address varchar(256) DEFAULT NULL
  17. );
  18. /*插入记录*/
  19. INSERT INTO picture(p_uid, p_key, lat, lng, up, down, ip, address)
  20. VALUES(‘aaaabbbbcccc‘, ‘2014032008164023279.png‘, 40.043945, 116.413668, 0, 0, ‘‘, ‘‘);
  21. /*插入记录*/
  22. INSERT INTO picture(p_uid, p_key, lat, lng, up, down, ip, address)
  23. VALUES(‘xxxxccccmmmm‘, ‘2014032008164023111.png‘, 40.067183, 116.415230, 0, 0, ‘‘, ‘‘);
  24. /*选择记录*/
  25. SELECT * FROM picture;
  26. /*更新记录*/
  27. UPDATE picture SET address=‘LiShuiqiao‘ WHERE id=1;
  28. UPDATE picture SET address=‘TianTongyuan‘ WHERE id=2;
  29. /*对经纬度列创建索引*/
  30. CREATE INDEX ll_idx on picture USING gist(ll_to_earth(lat, lng));
  31. /*根据半径(1000米)选择记录*/
  32. SELECT * FROM picture where earth_box(ll_to_earth(40.059286,116.418773),1000) @> ll_to_earth(picture.lat, picture.lng);
  33. /*选择距离当前用户的距离*/
  34. SELECT picture.id, earth_distance(ll_to_earth(picture.lat, picture.lng), ll_to_earth(40.059286,116.418773))
  35. AS dis FROM picture
  36. ORDER BY dis ASC;
  37. /*
  38. * 以下内容是网上的一篇教程
  39. * 地址:http://www.cse.iitb.ac.in/dbms/Data/Courses/CS631/PostgreSQL-Resources/postgresql-9.2.4/contrib/earthdistance/expected/earthdistance.out
  40. */
时间: 2024-10-20 09:35:16

地理坐标计算的相关文章

实战ELK(9) Elasticsearch地理位置

地理坐标点(geo-point) 是指地球表面可以用经纬度描述的一个点.地理坐标点可以用来计算两个坐标位置间的距离,或者判断一个点是否在一个区域中.地理坐标点不能被动态映射(dynamic mapping)自动检测,而是需要显式声明对应字段类型为 geo_point . PUT /attractions { "mappings": { "restaurant": { "properties": { "name": { &quo

利用SQL计算两个地理坐标(经纬度)之间的地表距离

两个地理坐标(经纬度)地表距离计算公式: 公式解释如下: Long1,Lat1表示A点经纬度,Long2,Lat2表示B点经纬度: a=Lat1–Lat2 为两点纬度之差,b=Long1-Long2为两点经度之差: 6378.137为地球半径,单位为千米: 计算出来的结果单位为千米,若将半径改为米为单位则计算的结果单位为米; 计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下. 引用自https://segmentfault.com/a/1190000013922206 SQL语句实现如

(十)WebGIS中地理坐标与屏幕坐标间的转换原理

1.前言 地图本身是拥有坐标的,一般可以大致分为平面坐标和经纬度坐标,在这里我们统称为地理坐标,比如北京,(115.9°E ,39.6°N)和(506340,304400)均是其地理坐标,只是表示形式不同而已. 我们在上一章讲解了矢量图层中数据的来源,最后提出了一个还未解决的问题,即当我们获得了矢量数据后,如何在屏幕中将这些数据里的地理(Geometry)坐标转换为屏幕坐标,从而在屏幕端Canvas里的各个UIComponent(要素)中绘制出来? 这一章我们将对此转换做出讲解. 2.转换前提

(转)ARCGIS中坐标转换及地理坐标、投影坐标的定义

原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或是说坐标系统是默认为第一加载到当前工作区的那个文件的坐标系统,后加入的数据,如果和当前工作区坐标系统不相同,则ArcMap会自动做投影变换,把后加入的数据投影变换到当前坐标系统下显示!但此时数据文件所存储的数据并没有改变,只是显示形态上的变化!因此叫动态投影!表现这一点最明显的例子就是,在Expor

sencha touch权威指南---学习笔记5-经纬度获取计算直线距离

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />    <title></title>    <link rel="stylesheet" href="sdk-touch/resources/css/sencha-touch.

PHP实现搜索地理位置及计算两点地理位置间距离的实例

地理位置搜寻LBS,存储每个地点的经纬度坐标,搜寻附近的地点,建立地理位置索引可提高查询效率.mongodb地理位置索引,2d和2dsphere,对应平面和球面. 1.创建lbs集合存放地点坐标 use lbs; db.lbs.insert( { loc:{ type: "Point", coordinates: [113.332264, 23.156206] }, name: "广州东站" } ) db.lbs.insert( { loc:{ type: &quo

计算两个经纬度之间的距离

//计算两个经纬度之间的距离 /** * 计算两点地理坐标之间的距离 * @param Decimal $longitude1 起点经度 * @param Decimal $latitude1 起点纬度 * @param Decimal $longitude2 终点经度 * @param Decimal $latitude2 终点纬度 * @param Int $unit 单位 1:米 2:公里 * @param Int $decimal 精度 保留小数位数 * @return Decimal

使用R语言计算均值,方差等

R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [1] 5.855 2 计算中位数 median(height) [1] 5.92 3 计算标准差 sd(height) [1] 0.1871719 4 计算方差 var(height) [1] 0.03503333 5 计算两个变量之间的相关系数 cor(height,log(height)) [1] 0

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于