在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”;构成这些圆圈的线段,叫做纬线。我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬。...在它东面的为东经,共180度;在它西面的为西经,共180度。因为地球是圆的,所以东经180度和西经180度的经线是同一条经线。各国公定180度经线为“国际日期变更线”。...为了避免同一地区使用两个不同的日期,国际日期变线在遇陆地时略有偏离。 每一经度和纬度还可以再细分为60分,每一分再分为60秒以及秒的小数。...纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。有相同特定纬度的所有位置都在同一个纬线上。 赤道的纬度为0°,将行星平分为南半球和北半球。...单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile 如果仅对经度作正负的处理
二、创建地图 首先,创建一张指定中心坐标的地图,这里指定中心坐标为重庆交通大学(注意,location的格式为[纬度,经度],zoom_start表示初始地图的缩放尺寸,数值越大放大程度越大): import...,用于控制初始地图中心点的坐标,格式为(纬度,经度)或[纬度,经度],默认为None width:int型或str型,int型时,传入的是地图宽度的像素值;str型时,传入的是地图宽度的百分比,形式为...,且在地图的左下角施加了比例尺,标记出了公里和英里的比例尺。 ...中我们使用folium.Circle()来绘制指定圆心和半径的圆圈,其主要参数如下: location:同folium.Map()中的location,用于控制圆圈的圆心坐标 radius:int...型,用于控制圆圈的半径,单位米,注意,在folium.Circle()中,radius因为半径的单位是米,所以其大小随着我们对地图的缩放程度而进行相应的变化,但在与folium.CircleMarker
又称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置经线和纬线是人们为了在地球上确定位置和方向的,在地球仪和地图上画出来的,地面上并线和经线相垂直的线叫做纬线...在一定误差范围内,通常情况下,经纬线和米的换算为:经度或者纬度0.00001度,约等于1米。...,匹配越多的距离越近Geohash算法介绍GeoHash是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,通过把二维的空间经纬度数据编码为一个字符串,可以把平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码以...127.0.0.1:6379> geohash city beijing 1) "wx4g14s53n0"半径 - GEORADIUSgeoradius:以给定的经纬度为中心, 返回键包含的位置元素当中...距离的单位和用户给定的范围单位保持一致WITHCOORD: 将位置元素的经度和维度也一并返回WITHHASH: 以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值这个选项主要用于底层应用或者调试
因为是几何模型,可以用长半轴、短半轴和扁率来确定。我们通常所说的经度、纬度以及高度都以此为基础。 赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆。...投影后纬线为同心圆圆弧,经线为同心圆半径。没有角度变形,经线长度比和纬线长度比相等。适于制作沿纬线分布的中纬度地区中、小比例尺地图。市面上的中国地图应该就是用这种投影的。...按投影面与地球面的相对位置,分为正轴、横轴和斜轴3种。在正轴投影中,纬线为同心圆,其间隔由投影中心向外逐渐缩小,经线为同心圆半径。...Web墨卡托投影 Web墨卡托投影(又称球体墨卡托投影)是墨卡托投影的变种,它接收的输入是Datum为WGS84的经纬度,但在投影时不再把地球当做椭球而当做半径为6378137米的标准球体,以简化计算。...Web墨卡托投影有两个相关的投影标准,经常搞混: EPSG4326:Web墨卡托投影后的平面地图,但仍然使用WGS84的经度、纬度表示坐标; EPSG3857:Web墨卡托投影后的平面地图,坐标单位为米
【参数介绍】 folium.Marker() 的常用参数: location:同 folium.Map() 中的同名参数,tuple 或 list 类型输入,格式为(纬度,经度)或[纬度,经度],默认为...,单位为像素;注意,在 folium.CircleMarker() 中,因为 radius 的单位是像素,即其为屏幕上大小固定的一个圆圈,随着地图的缩放,其大小也不会发生变化;但在 folium.Circle...() 方法中,radius 参数单位为米,所以其大小会随着地图的缩放程度而进行相应的变化 color:str 型,用于控制圆圈的颜色,默认为十六进制颜色"#3388ff",即一种蓝色,可直接输入颜色名称...【参数介绍】 folium.Map() 的常用参数: location:tuple 或 list 类型输入,用于控制初始地图中心点的坐标,格式为(纬度,经度)或[纬度,经度],默认为 None width...将转换格式后的经纬度传入 folium 的 Circle() 方法(跟前面用到的 CircleMarker() 方法类似)中,用圆圈在地图上标记此位置,并加入展示汤加首都的地图中,以查看喷发的火山与汤加首都的距离
经度的范围在 (-180, 180],纬度的范围 在(-90, 90],纬度正负以赤道为界,北正南负,经度正负以本初子午线 (英国格林尼治天文台) 为界,东正西负。...” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内的用户就是我们想要邂逅的「附近的人」。...” 多出来的这部分区域内的用户,到圆点的距离一定比圆的半径要大,那么我们就计算用户中心点与正方形内所有用户的距离,筛选出所有距离小于等于半径的用户,圆形区域内的所用户即符合要求的附近的人。.../** * 获取附近 x 米的人 * * @param distance 搜索距离范围 单位km * @param userLng 当前用户的经度 * @param userLat 当前用户的纬度...比如对经度值等于 169.99 进行 4 位编码(N = 4,做 4 次分区),把经度区间[-180,180]分成了左分区[-180,0) 和右分区[0,180]。
前言 好久不见,距离OpenLayers入门第一篇已经过了很久,为什么迟迟没有后续呢,主要有两个原因,一是因为近期项目里使用地图的部分比较少,二是因为很多时候即使功能做出来了,但是还是不能完全理解,不是很明白的东西除了贴代码之外也写不了啥...import { Style, Stroke, Fill } from 'ol/style' import { Vector as VectorLayer } from 'ol/layer' // data为多边形每个点的经纬度坐标数组...element: nameEl, offset: [0, 0], positioning: 'bottom-center' }) map.addOverlay(nameOverlay) 绘制以米为单位的圆...,分别是使用circular和Circle这两者有什么区别我也不太清楚,它们的入参基本一样,中心点和半径,文档上没有指出半径的单位,第二种方法是百度上搜到的,绘制完经测距测试后是准确的。...添加阴影效果 OpenLayers的样式对象并不支持直接设置阴影效果,所以需要获取到canvas的绘图上下文来自行添加,原理是监听图层的prerender(在一个图层渲染前触发)和postrender(
说到地图,大家一定很熟悉,平时应该都使用过百度地图、地图、腾讯地图等,如果涉及到地图相关的开发需求,也有很多选择,比如前面的几个地图都会提供一套js API,此外也有一些开源地图框架可以使用,比如OpenLayers...WGS-84坐标系是国际通用的标准,EPSG编号为EPSG:4326,通常GPS设备获取到的原始经纬度和国外的地图厂商使用的都是WGS-84坐标系。...这两种坐标系都是地理坐标系,球面坐标,单位为度,这种坐标方便在地球上定位,但是不方便展示和进行面积距离计算,我们印象中的地图都是平面的,所以就有了另外一种平面坐标系,平面坐标系是通过投影的方式从地理坐标系中转换过来...,所以也称为投影坐标系,通常单位为米,投影坐标系根据投影方式的不同存在多种,在Web开发的场景里通常使用的是Web墨卡托投影,编号为EPSG:3857,它基于墨卡托投影,把WGS-84坐标系投影成正方形...为什么x是减,y是加呢,很简单,我们鼠标向右和向下移动时距离是正的,相应的地图会向右或向下移动,4326坐标系向右和向上为正方向,那么地图向右移动时,中心点显然是相对来说是向左移了,因为向右为正方向,所以中心点经度方向就是减少了
经度的范围在 (-180, 180],纬度的范围 在(-90, 90],纬度正负以赤道为界,北正南负,经度正负以本初子午线 (英国格林尼治天文台) 为界,东正西负。...” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内的用户就是我们想要邂逅的「附近的人」。 将经纬度存储到 MySQL: ?...” 多出来的这部分区域内的用户,到圆点的距离一定比圆的半径要大,那么我们就计算用户中心点与正方形内所有用户的距离,筛选出所有距离小于等于半径的用户,圆形区域内的所用户即符合要求的附近的人。.../** * 获取附近 x 米的人 * * @param distance 搜索距离范围 单位km * @param userLng 当前用户的经度 * @param userLat 当前用户的纬度...比如对经度值等于 169.99 进行 4 位编码(N = 4,做 4 次分区),把经度区间[-180,180]分成了左分区[-180,0) 和右分区[0,180]。
经度的范围在 (-180, 180],纬度的范围 在(-90, 90],纬度正负以赤道为界,北正南负,经度正负以本初子午线 (英国格林尼治天文台) 为界,东正西负。...” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内的用户就是我们想要邂逅的「附近的人」。...” 多出来的这部分区域内的用户,到圆点的距离一定比圆的半径要大,那么我们就计算用户中心点与正方形内所有用户的距离,筛选出所有距离小于等于半径的用户,圆形区域内的所用户即符合要求的附近的人。.../** * 获取附近 x 米的人 * * @param distance 搜索距离范围 单位km * @param userLng 当前用户的经度 * @param userLat 当前用户的纬度...” 思路对了,为了实现对经纬度比较,Redis 采用业界广泛使用的 GeoHash 编码,分别对经度和纬度编码,最后再把经纬度各自的编码组合成一个最终编码。
,我们可以在里面获取到用户的经度和纬度信息。...实际案例:外卖配送范围展示以一个外卖小程序为例,我们可以利用地图的圆形区域(circles)来展示配送范围。首先,获取商家的位置作为圆心,假设配送半径为r米。...radius: r, // 配送半径,单位为米 strokeWidth: 2 // 圆形边框宽度 }];最后更新页面的circles数据:this.setData({ circles: circles...});这样,在地图上就会显示出一个以商家为中心,半径为配送范围的圆形区域,让用户清楚知道自己是否在配送范围内。...常见面试题及参考答案请简述支付宝小程序中地图组件的主要属性及其作用参考答案:地图组件的主要属性包括longitude(地图中心的经度)、latitude(地图中心的纬度),用于确定地图的初始显示位置
墨卡托投影在今天对于地图展示仍起着极为重要的作用,目前世界各国绘制海洋地图时仍广泛使用墨卡托投影.我们平时看到的谷歌地图,百度地图,包括我们的高德地图,都是使用的墨卡托投影....Web墨卡托是Google Map在电子地图中所创造并使用的地图投影方法,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别在于把地球模拟为球体而非椭球体...以米为单位,由于赤道半径为6378137米,则赤道周长为2*PI*r = 2*20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892...为了展示上的通俗易懂,电子地图通常以经纬度为单位展示地理坐标,而墨卡托投影坐标,经度范围:[-180,180], 纬度上面已知不可能到达90°,取值范围是[-85.05112877980659,85.05112877980659...在投影过程中,将表示地球的参考椭球体近似的作为正球体处理(正球体半径 R = 椭球体半长轴 a)。
2.1.1 地理坐标系 以弧度制下度数为单位的地理坐标系(Geographic Coordinate Systems)帮助我们定位物体在地球球面上的具体位置以及绘制球体地图: 图3 WGS84...2.1.2 投影坐标系 地理坐标系虽然解决了我们在地球球面上定位的问题,但纬度和经度位置没有使用统一的测量单位,因为经度不变的情况下,纬度每变化1单位因为是对固定弧长的映射,所以真实距离是固定不变的...,纬度变化1度的真实距离恒等于: \[ 2\pi\cdot地球极半径/360\approx110.95(千米) \] 可是经度每变化1单位对应的真实距离要随着纬度的变化而变化,经度变化1度的真实距离为...: \[ (2\pi\cdot赤道半径/360)\cdot\cos(当地纬度)\approx111.314\cos(当地纬度)(千米) \] 这就导致我们既不能直接在地理坐标系下精确度量几何对象的长度...国内常用的基准面有:BEIJING1954,XIAN1980,WGS84等) units=m:声明坐标系单位设置为米 ellps=WGS84:声明椭球面(如何计算地球的圆度)使用WGS84
经度的范围在 (-180, 180],纬度的范围 在(-90, 90],纬度正负以赤道为界,北正南负,经度正负以本初子午线 (英国格林尼治天文台) 为界,东正西负。...1、设计思路 以用户为中心,假设给定一个500米的距离作为半径画一个圆,这个圆型区域内的所有用户就是符合用户要求的 “附近的人”。...GEOADD:将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS:从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST:返回两个给定位置之间的距离; GEOHASH...:返回一个或多个位置对象的Geohash表示; GEORADIUS:以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象; GEORADIUSBYMEMBER:以给定的位置对象为中心...WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。 WITHCOORD:将位置对象的经度和维度也一并返回。
当用户点击 Near Me 功能时,那么通过后台就可以以当前用户的位置为圆点,距离为半径查询相关的用户展示即可完成 注意 redis 的经纬度有 0.5%的误差,所以精度要求高的比如地图就慎用 redis...范围可以使用以下其中一个单位: m 表示单位为米 km 表示单位为千米 mi 表示单位为英里 ft 表示单位为英尺 在给定以下可选项时, 命令会返回额外的信息: WITHDIST: 在返回位置元素的同时...距离的单位和用户给定的范围单位保持一致 WITHCOORD: 将位置元素的经度和维度也一并返回 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值...GEORADIUS 使用输入的经度和纬度来决定中心点 指定成员的位置被用作查询的中心 ?...工作原理 sorted set 使用一种称为 Geohash 的技术进行填充。经度和纬度的位是交错的,以形成一个独特的 52 位整数.
实现方式还是比较简单的,首先用户在APP上开启定位权限,将自己的经纬度都存储到数据库,然后以此经纬度为基准,以特定距离为半径,查找此半径内的所有用户。...那么,如何java如何计算两个经纬度之间的距离呢?有两种方法,误差都在接受范围之内。 1、基于googleMap中的算法得到两经纬度之间的距离,计算精度与谷歌地图的距离精度差不多。.../** * 默认地球半径 */ private static double EARTH_RADIUS = 6371000;//赤道半径(单位m) /**...* @param lat1 第一点的纬度 * @param lon2 第二点的精度 * @param lat2 第二点的纬度 * @return 返回的距离,单位...double targetLon, double targetLat) { double jl_jd = 102834.74258026089786013677476285;// 每经度单位米
根据经纬度计算距离公式 图片来自互联网 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度; a=Lat1 – Lat2 为两点纬度之差 b=Lung1...-Lung2 为两点经度之差; 6378.137为地球半径,单位为千米; 计算出来的结果单位为千米,若将半径改为米为单位则计算的结果单位为米。...计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下。...参数说明 lng:经度 lat:纬度 地球半径:6378.137(千米) 一般地图上显示的坐标顺序为,纬度在前(范围-90 ~ 90),经度在后(范围-180 ~ 180) 各种语言计算距离的代码 这种计算方式一般都是直线距离...return s; } 以上代码大部分来自网上收集,经过验证过的,可以使用 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
本文将以Hello World为例对地图组件的使用列出一些demo,以方便后续开发。...某些情况下,我们可能还会在地图中显示一和闭合图形,小程序官方也提供了polygons组件供我们使用。和polyline使用比较接近,我们可以试试下面的代码。...Hello World - 在地图中显示圆 除了多边形显示,有事还需要以圆的形式展现,这里我们可以使用map组件的circles属性来实现。依然修改上面代码。...Number 否 圆的属性不多,在代码中,我们指定了该圆圆心的经纬度,指定了半径和描边填充颜色。...腾讯云联合小程序给大家带来了小程序·云开发解决方案,为开发者提供完整的云端支持,弱化后端和运维操作,使用平台原生 API 进行核心业务开发,实现快速上线和迭代。欢迎免费使用!