利用Redis精准计算范围内坐标
随着互联网的快速发展,地理信息系统也逐渐成为我们生活中不可或缺的一部分。坐标标准是地理信息系统的基础,为开发者提供了广阔的应用空间。利用Redis精准计算范围内坐标,可以很好地解决定位和搜索问题,为用户提供更好的体验。
Redis是一种开源的内存数据库,具有高速读写能力和占用内存小的特点。在地理信息系统中,Redis主要用于存储坐标信息并进行精准计算。Redis提供了多种数据结构,如字符串、列表、哈希表、集合和有序集合等,因此非常适用于存储和计算坐标信息。
常见的坐标标准有WGS-84和GCJ-02,其中WGS-84属于国际标准,GCJ-02则是在WGS-84基础上进行中国特色加密处理的标准。下面给出一段Python代码,用于将GCJ-02坐标转换为WGS-84坐标:
import mathdef transform(lat, lng):pi = 3.14159265358979324a = 6378245.0ee = 0.00669342162296594323x_pi = pi * 3000.0 / 180.0if out_of_china(lat, lng):return lat, lngd_lat = transform_lat(lng - 105.0, lat - 35.0)d_lng = transform_lng(lng - 105.0, lat - 35.0)rad_lat = lat / 180.0 * pimagic = math.sin(rad_lat)magic = 1 - ee * magic * magicsqrt_magic = math.sqrt(magic)d_lat = (d_lat * 180.0) / ((a * (1 - ee)) / (magic * sqrt_magic) * pi)d_lng = (d_lng * 180.0) / (a / sqrt_magic * math.cos(rad_lat) * pi)mg_lat = lat + d_latmg_lng = lng + d_lngreturn lng * 2 - mg_lng, lat * 2 - mg_latdef transform_lat(x, y):pi = 3.14159265358979324a = 6378245.0ee = 0.00669342162296594323x_pi = pi * 3000.0 / 180.0d_lat = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * math.sqrt(abs(x))d_lat += (20.0 * math.sin(6.0 * x * pi) + 20.0 * math.sin(2.0 * x * pi)) * 2.0 / 3.0d_lat += (20.0 * math.sin(y * pi) + 40.0 * math.sin(y / 3.0 * pi)) * 2.0 / 3.0d_lat += (160.0 * math.sin(y / 12.0 * pi) + 320 * math.sin(y * pi / 30.0)) * 2.0 / 3.0return d_latdef transform_lng(x, y):pi = 3.14159265358979324a = 6378245.0ee = 0.00669342162296594323x_pi = pi * 3000.0 / 180.0d_lng = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * math.sqrt(abs(x))d_lng += (20.0 * math.sin(6.0 * x * pi) + 20.0 * math.sin(2.0 * x * pi)) * 2.0 / 3.0d_lng += (20.0 * math.sin(x * pi) + 40.0 * math.sin(x / 3.0 * pi)) * 2.0 / 3.0d_lng += (150.0 * math.sin(x / 12.0 * pi) + 300.0 * math.sin(x / 30.0 * pi)) * 2.0 / 3.0return d_lngdef out_of_china(lat, lng):if lng137.8347:return Trueif lat55.8271:return Truereturn False
以上代码中,transform_lat和transform_lng函数用于将GCJ-02坐标转换为WGS-84坐标,而out_of_china函数则用于判断该坐标是否在中国境内。在使用Redis存储坐标信息之前,需要先将所有坐标转换为WGS-84坐标。
利用Redis存储坐标信息,可以使用有序集合。有序集合本质上是一个键值对集合,每个元素都有一个唯一的分数,元素按分数排序。在地理信息系统中,可以将每个坐标的经纬度作为元素的分数,将坐标编号作为元素的值。

以下是一个使用Python Redis包实现的示例代码:
import redisr = redis.Redis(host='localhost', port=6379, db=0)# 添加坐标信息r.geoadd('locations', 116.405285, 39.904989, 'beijing')r.geoadd('locations', 121.472644, 31.231706, 'shangh')r.geoadd('locations', 113.264434, 23.129162, 'guangzhou')# 获取范围内的坐标res = r.georadius('locations', 116.405285, 39.904989, 100, 'km')print(res)
以上代码中,调用geoadd方法可以添加坐标信息,第一个参数为集合名称,后面依次为经度、纬度和坐标编号。调用georadius方法可以获取指定中心点范围内的所有坐标,第一个参数同样为集合名称,后面依次为中心点经度、纬度、半径范围和单位(km或m)。
利用Redis精准计算范围内坐标,可以轻松实现各类定位和搜索功能。例如,在餐厅点餐应用中,可以根据用户所在位置,查询附近的餐厅,提供更加精确的推荐。又例如,在旅游应用中,可以通过存储景点坐标信息,查询用户所在位置周围的景点,方便用户快速找到目的地。
利用Redis存储和计算坐标信息,可以为开发者提供更为灵活的开发方式,也可以为用户提供更为优质的使用体验。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
地图的构成要素有几个?
地图要素构成地图的基本内容,叫做地图要素。 它包括数学要素、地理要素和整饰要素(亦称辅助要素),所以又通称地图“三要素”。 (l)数学要素,指构成地图的数学基础。 例如地图投影、比例尺、控制点、坐标网、高程系、地图分幅等。 这些内容是决定地图图幅范围、位置,以及控制其它内容的基础。 它保证地图的精确性,作为在图上量取点位、高程、长度、面积的可靠依据,在大范围内保证多幅图的拼接使用。 数学要素,对军事和经济建设都是不可缺少的内容。 (2)地理要素,是指地图上表示的具有地理位置、分布特点的自然现象和社会现象。 因此,又可分为自然要素(如水文、地貌、土质、植被)和社会经济要素(如居民地、交通线、行政境界等)。 (3)整饰要素,主要指便于读图和用图的某些内容。 例如:图名、图号、图例和地图资料说明,以及图内各种文字、数字注记等
梦幻西游怎么跑商,拿到票票后干嘛额
30~39级人跑商: 由于30~39这个等级比较低,好的帮多数不会要,要就加个1~3级的帮。 这时候跑商比40难多拉,一开始的资金就少才2W,跑5W回来,这并不简单。 一开始在帮派白虎堂拿任务,然后点白虎堂总管,在点那个(购买商品),看看有没有CS的货,有就买拉直接到CA去卖,这个方法赚的(本人用这个方法3分钟能跑完一票,不过不是经常有) 好拉,现在开始有一些技巧性的问题拉,因为,40级以下在BJ用香没效果,所以呀,30~39的朋友可以去标局拿标运,不要送到目的地,跑完商再送过去。 (只推荐高伤害的玩家使用,而高血高防的玩家就不用拉,在BJ也死不了,点逃跑就可以拉。 ) 这个级别的玩家因为资金低,买不了多少货品,所以我认为那些高价的就别买拉。 看价表: AL商品:蜡烛:1400~2000,这个价钱范围内就可以买,之后到CS去卖。 (本人推荐买这个,便宜,运气好能大捞一笔)帽子:2500~3300,这个价钱范围内可以买拉,也是到CS卖。 (不推荐低于40的同志买,蜡烛是首选,蜡烛太贵就可以买这个)酒:3500~4200,这个价钱范围内可以买。 (这个就多数是40以上的玩家买的拉,不过我认为还是先考虑买蜡烛和帽子。 )到拉CS马上吧货卖拉,买入商品(这里又有一个小技巧,2个普通商人一般是一个买价高一个卖价高,所以一般先到一个那里看买价,老区就不用看买价拉直接看商品的数量就可以拉.(因为老区跑商的人很多,便宜的东西多数都差不多卖完拉,这也可以是进货的参考,但是由于时差可能会亏,所以只推介新手按商品数量进货) 看看自己买的东西和剩下的钱,估算一下卖拉东西后能不能交票,不行的话就回AL一趟,赚点小钱,够拉后就回CA卖东西交票。 好拉可以回CA卖东西交票拉! 40~59:这个阶段是最好跑的阶段,资金有4W只要交10W。 一开始还是一样,先在帮派看有没有CS的货物(这一点非常重要,可以缩短N多时间。 )没有的话就到CA看刀,CA刀的利润最高,看价表:佛珠:5300~7200(这个东西很难说,有时候5000+买进来,1W+卖出去,有是6000+卖进,7000+卖出......很难估计啊...所以一开始就不要买这个,除非帮派有CS货,让你赚拉一大笔后买它就差不多拉) 扇子:3300~3800(这个东西我多数不买,利润不高,而且经常涮超过4000的价,去CS和BJ差不多,都可以卖5000——6000) 刀:3500~4300(这个我经常买,帮派N久才出1次CS货,所也就长买这个拉。 而且这个拿去CS卖可以卖到5300——8300不等) 价钱如果不符合标准就跑去AL看,AL价表在上面。 之后就在AL和CS之间来回跑,当银票有8W时候就在CS买东西,看CS价表 鹿茸:5500~7200(和CA佛珠一样) 面粉:2000~2800 副:4400~5400(快交票是推介这个,这个比较稳定,可能会暴利,当时亏的纪几率最低) 如果价钱不可以,不要勉强,去BJ买,到DF卖,看BJ价表香油 (3100~3900)人参(~7200) 铃(3800~4500)这里我只推介香油 到DF卖完后不要跑去YZ,直接去找小白送到天台,回帮派交票。 60——79,这个阶段跑商很困难,比80以上的还要难,不信你可以开个号试试。 所以这里我就不推介跑商。 因为这个级别很容易入5级帮,可以去刷玄武,这可是最低能的任务,完全是打怪。 如果伤害输出高的话(DT,MW,WZ。 。 。 。 等)1小时可以刷120+的帮工)可比跑商快多拉!不是高伤害输出的也一样。 只不过拿的帮工少点,也比跑商多。 当然这个级别也需要跑商,因为帮主对不跑商或者帮战的人可是不留情的,所以警告1下别只顾刷帮工,每周怎么也跑10票商,不然维护都不够,怎么对的起帮主,而且也点不了JN和修抗啊。 根本没有资金。 这时候跑商就和80以上的差不多,就是要会分散投资,就是说CA买了几把刀(其他也可以),就到DF买几个纸钱,到AL把纸钱卖了,买帽子(其他也可以)到拉BJ卖了扇子(如果你一开始在CA买的不是刀是扇子就这么干,之后就买香油之类的)到CS把AL买来的货卖拉,(如果你在CA买的是刀,就到这里卖)。 。 。 。 。 。 这样不停的分散投资,这个要多练,不然总不顺手。 这样跑从CA——DF——AL——BJ——CS,每个地方都有赚钱,加起来就多拉。 运气好走一趟就可以,大约8分钟,运气不好2趟也可以大约15分钟吧。 一开始用这个方法可能要3趟左右,但是不要怕,跑多(80以上也是这么跑) 我好象少拉DF的价表,补上哈哈(平时少去DF所以漏拉哦)纸钱∶2200——3200(一般3000以上风险就大拉,2800以下可以安全进货)夜明珠∶6700——7900—(这个我一般看到都在1W以上,所以不推介大家买这个。 ) 首饰∶3200——4200 告诉你,如果你的资金离交票害差1000左右就可以去DF买纸钱到CA卖。 也能赚一点,多数都可以帮助你交票,实在不行就把纸钱运到AL,再不行你就只能上BJ回DF咯。 对拉,如果你在帮派资金少过维护时跑商奖励会更加丰富。
杭州市面积有多大?
截至2019年,全市下辖10个区、2个县、代管1个县级市,总面积.57平方千米,常住人口1036万人,城镇人口813.26万人,城镇化率78.5%,常住外来人口达450.44万人。 2019年4月2日,浙江省政府批复同意设立杭州钱塘新区,面积达531.7平方千米,托管管理范围包括江干区的下沙、白杨2个街道,萧山区的河庄、义蓬、新湾、临江、前进5个街道,以及大江东产业集聚区规划控制范围内的其他区域(不含党湾镇所辖接壤区域的行政村)。 区划详情辖区:10个市辖区、2个县、1个县级市街道社区:92个街道办事处,75个镇,23个乡,597个社区、807个行政村。 市政府:杭州市人民政府驻江干区解放东路18号。 扩展资料杭州位于中国长江三角洲南翼,杭州湾西端,钱塘江下游,京杭大运河南端,是长江三角洲重要中心城市和中国东南部交通枢纽。 杭州的地理坐标为坐标为东经118°21′-120°30′,北纬29°11′-30°33′。 市中心地理坐标为东经120°12′,北纬30°16′。 城市原点(零千米标志)设在上城区紫薇园坐标原点。 紫薇园坐标原点从1913年开始就作为杭州市的中心。 城市内的建筑、道路、水系及名胜古迹,都可根据该原点标出方位和与原点的距离。
发表评论