geo

Redis GEO特性实现获取附近门店功能

ε祈祈猫儿з 提交于 2020-02-21 11:46:43
目前项目有需要获取用户位置,然后推荐距离最近的5家门店的需求,目前无需做任何开发可以满足需求的方案是:把用户位置经纬度作为参数丢进数据库通过sql按照距离远近进行排序,大致sql如下: select * from 柜台表 order by ROUND(6378.138*2*ASIN(SQRT(POW(SIN((latitude*PI()/180-#{用户位置纬度}*PI()/180)/2),2)+COS(latitude*PI()/180)*COS(#{用户位置纬度}*PI()/180)*POW(SIN((longitude*PI()/180-#{用户位置经度}*PI()/180)/2),2)))*1000) asc limit 0, 5 弊端也很明显:数据运算量大,设想品牌有一万家门店,同时有一万个人参与活动,这种并发情况下数据库扛不住会导致系统崩溃,这种方案行不通。 经人推荐说Redis GEO特性可支持位置相关操作,这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作。那就开始引入: 1 首先导入pom依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.6.RELEASE<

Redis地理位置GEO命令

落爺英雄遲暮 提交于 2020-02-18 15:53:28
火热的生活服务类软件 微信/陌陌 美团/饿了么 携程/马蜂窝 高德地图/百度地图 ..... 基本操作 添加坐标点 geoadd key longitude latitude member [longitude latitude member ...] 获取坐标点 geopos key member [member ...] 计算坐标点距离 geodist key member1 member2 [unit] 如果两个位置之间的其中一个不存在,那么命令返回空值。 指定单位的参数unit必须是以下单位的其中一个: m表示单位为米 km表示单位为千米 mi表示单位为英里 ft表示单位为英尺 如果用户没有显式地指定单位参数,那么geodist默认使用米作为单位。 geodist命令在计算距离时会假设地球为完美的球形,在极限情况下,这一假设最大会造成0.5%的误差。 根据坐标求范围内的数据 georadius key longitude latitude radius m|km|ft|mi [withcoord][withdist][withhash][asc|desc] [count count] 以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素。 范围可以使用以下其中一个单位: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里

(数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇

会有一股神秘感。 提交于 2020-02-08 21:26:18
本文对应代码已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介    geopandas 是建立在 GEOS 、 GDAL 、 PROJ 等开源地理空间计算相关框架之上的,类似 pandas 语法风格的空间数据分析 Python 库,其目标是尽可能地简化 Python 中的地理空间数据处理,减少对 Arcgis 、 PostGIS 等工具的依赖,使得处理地理空间数据变得更加高效简洁,打造纯 Python 式的空间数据处理工作流。本系列文章就将围绕 geopandas 及其使用过程中涉及到的其他包进行系统性的介绍说明,每一篇将尽可能全面具体地介绍 geopandas 对应方面的知识,计划涵盖 geopandas 的 数据结构 、 投影坐标系管理 、 文件IO 、 基础地图制作 、 集合操作 、 空间连接与聚合 。   作为 基于geopandas的空间数据分析 系列文章的第一篇,通过本文你将会学习到 geopandas 中的 数据结构 。    geopandas 的安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用 pip install geopandas 或 conda install geopandas 可能会引发依赖包相关错误导致安装失败,官方文档中的推荐安装方式为

Azure SQL Database Active Geo-Replication简介

拥有回忆 提交于 2020-02-07 00:32:15
笔者在《 迁移 SQL Server 数据库到 Azure SQL 实战 》一文中,介绍了如何把一个本地版的 SQL Server 数据库迁移到 Azure SQL Database。迁移虽然顺利实现了,但是现在我们又面临一个新的任务:如何对新迁移的数据库进行备份? 对于数据库的维护来说,备份工作可谓是重中之重。MS Azure 当然也提供了很完善的数据库备份功能,但是在动手创建备份计划前,请思考一下备份工作的真实目的:当然首先要保证数据的安全,一般来说定时创建数据库的备份文件,再拷贝到不同的存储设备上就可以了;其次,当灾难发生时,能不能在最短的时间内还原数据库从而恢复应用?最后,能不能让备份的数据库也创造一些价值? 让我们带着这些问题,一起来了解下 Azure 提供的一种可以跨越数据中心的数据库备份方式:Active Geo-Replication。 文章来源: 葡萄城产品技术社区 一、Active Geo-Replication 是什么? 这里的 Active 我们可以理解为 "正在运行的",Geo 表示的是 "geographic" 也就是 "地理的",Replication 是 "复制" 的意思。合起来的大意就是 "在不同的地理位置上运行的副本"。 Active Geo-Replication 允许我们最多配置4个只读的从数据库,再加上一个主数据库

Azure SQL Database Active Geo-Replication 简介

拥有回忆 提交于 2020-02-06 23:36:54
对于数据库的维护来说,备份工作可谓是重中之重。MS Azure 当然也提供了很完善的数据库备份功能。但是在动手创建备份计划前请思考一下备份工作的真实目的。当然首先要保证数据的安全,一般来说定时创建数据库的备份文件,再拷贝到不同的存储设备上就可以了。其次,当灾难发生时可不可以用最短的时间还原数据库从而恢复应用?再次,能不能让备份的数据库也创造一些价值… 让我们带着这些问题一起来了解下 Azure 提供的一种可以跨越数据中心的数据库备份方式:Active Geo-Replication。 Active Geo-Replication 是什么? 这里的 Active 我们可以理解为"正在运行的",Geo 表示的是"geographic"也就是"地理的",Replication 是"复制"的意思。合起来的大意就是"在不同的地理位置上运行的副本"。 Active Geo-Replication 允许我们最多配置4个只读的从数据库,再加上一个主数据库,此时你就会拥有五个数据库的实例,并且它们都是可访问的。注意,这五个数据库可以设置在不同的数据中心,也就是说当其中的四个数据中心完全挂掉的时候,你的数据库依然是安全的,并且可以立即使用,因为它是正在运行的数据库。主数据库可读写,并且以异步的方式把变更同步到其余的从数据库。我们可以轻松的把主数据库和从数据库配置到不同的数据中心,因而当灾难降临的时候

Scale a circle's radius (given in meters) to D3.js d3.geo.mercator map

拥有回忆 提交于 2020-02-02 11:50:56
问题 I am using D3.js and TopoJSON libraries to render a flat SVG map of the world in a small div on a web page. I'm also taking some geographic objects (polygons and circles), and plotting them on this map via lat/long coordinates. This all seems to be working pretty well, however, the circle objects that I am plotting on the map contain a radius element which is given in meters. I cannot find or figure out how to convert/scale this measurement appropriately onto the SVG map. Any help would be

pyecharts数据可视化

孤者浪人 提交于 2020-01-30 07:58:50
Echarts是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生啦。 尽管python有自带的matplotlib、seaborn等画图模块,但其绘制出来的是静态图,而pyecharts可以绘制出非常棒的动态效果图,果断入坑! #关于一些函数的说明 - add() 用于添加图表的数据和设置各种配置项 - show_config() 打印输出图表的所有配置项 - render() 生成 .html 文件 - 支持保存做种格式 - 对象.render(path='snapshot.html') - 对象.render(path='snapshot.png') - 对象.render(path='snapshot.pdf') 1、词云图 1.1 英文词云 from pyecharts import WordCloud name =['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home',

pyecharts代码

戏子无情 提交于 2020-01-28 18:17:46
作为一个湖北人,深切地感受到了疫情发展的迅速,每天新增的病例和新感染的地区都在增加。加油,武汉,加油中国! 图片结果在另一篇博客:https://blog.csdn.net/qq_41081716/article/details/104087919 参考的博文: python最全画地图,可视化数据,pyecharts画图 全国各主要省市经纬度 基于python Geolines制作北京到全国各地的航线 pyecharts带你领略动态轨迹图的风骚 世界范围内有病例输入的国家 截止至1月25日,出现新型肺炎病例的国家有中国、韩国、美国、法国、泰国、越南、新加坡、马来西亚、日本、澳大利亚、尼泊尔。 from pyecharts import Map # 世界地图数据 value = [ 1330 , 2 , 2 , 3 , 5 , 2 , 1 , 3 , 3 , 1 , 1 ] attr = [ "China" , "Korea" , "United States" , "France" , "Thailand" , "Vietnam" , "Singapore" , "Malaysia" , "Japan" , "Australia" , "Nepal" ] map0 = Map ( "新型肺炎感染病例国家" , '各国疫情情况汇总(累计1353)' , width = 1200 ,

LocationManager is sending Last location all time

拟墨画扇 提交于 2020-01-25 10:01:06
问题 I have involved with location problems. I am getting my first time location and if i tried for next location, it is giving me Last location all time. I changed my location may times but all time, I am getting Last latitude and longitude. I think, GPS don't refresh. If i restarted to my phone and try again. it display to correct location and if i tried again, it is displaying me Last location. I am sharing my source code @Override protected void onResume() { super.onResume(); if(mMap!= null)

Converting coordinates from degree with unconventional format to decimal degree

我怕爱的太早我们不能终老 提交于 2020-01-24 22:13:08
问题 I am trying to convert my data so that it can be plotting on a map. For example the data looks like: # A tibble: 2 x 2 Latitud Longitud <chr> <chr> 1 10º 35' 28.98'' N 3º 41' 33.91'' O 2 10º 35' 12.63'' N 3º 45' 46.22'' O I am trying to mutate it using the following: df %>% mutate( Latitud = str_replace_all(Latitud, "''", ""), lat_edit = sp::char2dms(Latitud), "°") Which returns and error: Error in if (any(abs(object@deg) > 90)) return("abs(degree) > 90") : missing value where TRUE/FALSE