#得到司机的Geohash后返回前六位Geohash的图像from pygeohash import encode, decode
import plotly
import plotly.plotly as pyf
import plotly.graph_objs as go
import numpy as np
import pandas as pd
import math
from matplotlib.path import Path
import numpy as np
import plotly.offline as of
import plotly.graph_objs as go
import plotly.plotly as py
import numpy as np
import pandas as pd
import folium
import webbrowser
from folium.plugins import HeatMap
import datetime
import time
import pymysql.cursors
import decimal
import geohashimport geohash
def get_geohash(a): #解码a#生成Geohashb=[]b=geohash.decode(a) # precision=9可以加精度return b
# get_dict得到分块信息字典,键为各个中心点坐标,值为各个中心点形成的矩形区域的四个顶点。
def get_dict(central_points, lats_jia, lons_jia):point_dict = {}border_points = []lons = [central_points[0] +lons_jia, central_points[0] - lons_jia]lats = [central_points[1] + lats_jia, central_points[1] - lats_jia]for lon in lons:for lat in lats:border_points.append([lon, lat])point_dict[str(central_points)] = border_pointsreturn point_dict,border_points
# 画图
def geo_paint(central_points,border_points,dict):#画中心点lat1=[]lon1=[]lat1.append(central_points[0])  #转换为列表lon1.append(central_points[1])datas = [go.Scattermapbox(lat=lat1,lon=lon1,text='center',mode='markers',# hoverinfo='text', #如果hoverinfo包含'text', 并且'hovertext'未设置, 则这些文本元素将显示在悬停标签中https://zhuanlan.zhihu.com/p/87163211?utm_source=qqmarker=go.scattermapbox.Marker(size=5,color='red',  # 000045opacity=0.8))]# 遍历每一个中心点,并画出对应矩形范围(一个一个区域画)for key in dict.keys():borders = dict[key]lons = [] #为new_dict[key]例的经度lats = []for border in borders:  #border 为每个key后对应的四个坐标经纬度lons.append(border[1])lats.append(border[0])lons1 = list(set(lons))lats1 = list(set(lats))lats1.sort()lons1.sort()lons = [lons1[0], lons1[0], lons1[1], lons1[1], lons1[0]] #画成一个封闭的四方形 lons经度为102.95小数点后两位lats = [lats1[0], lats1[1], lats1[1], lats1[0], lats1[0]]# lons = pd.DataFrame(lons)# lats = pd.DataFrame(lats)datas.append(go.Scattermapbox(lat=lats,lon=lons,# text=geo,mode='markers+lines',# hoverinfo='text',marker=go.scattermapbox.Marker(size=7,color='red',opacity=0.8)))# 获取地图mapbox_access_token = '''pk.eyJ1IjoiemhhbmdwZW5neHUiLCJhIjoiY2s1ZGwxbXpzMHhjdTNlbnFteTdlcXk5eiJ9.vzYUBRLW8vw7L_H9ybiJYg'''layout = go.Layout(title="chengdu",autosize=True,hovermode='closest',showlegend=False,#暗黑地图mapbox=go.layout.Mapbox(accesstoken=mapbox_access_token,bearing=0,center=go.layout.mapbox.Center(lat=central_points[0],  # 成都市纬度lon=central_points[1]  # 广州市经度),pitch=0,zoom=10,style='light'),)fig = go.Figure(data=datas, layout=layout)of.plot(fig, filename='Chengdu_geo.html')  # 生成html文件并打开if __name__ == '__main__':a = 'wm3ypqc'central_points = list(get_geohash(a))  # 生成中心点并转为列表(30.623703002929688, 104.03160095214844)lats_jia1 = 0.00549 # geohash为6时候lons_jia = lats_jia1lats_jia = lats_jia1point_dict,border_points = get_dict(central_points, lats_jia, lons_jia)geo_paint(central_points,border_points,point_dict)

根据Geohash编码画中心点和边框相关推荐

  1. 地理空间索引:线段与多边形的GeoHash编码

    geohash简介文章参见 地理空间索引:GeoHash原理 优化线段的编码效率参见 地理空间索引:线段的GeoHash编码优化 在上一篇博客地理空间索引:GeoHash原理中,我们讨论了如何将一个经 ...

  2. 求Geohash编码周围的8个编码

    我们知道Geohash编码是由经度和纬度的二进制串组合变换而来的,所以求一个区域周围的8个Geohash编码,我们可以先退一步求出周围8个区域的二进制串,再按照base32表查出Geohash编码. ...

  3. 中心经纬度计算周边8宫格GeoHash编码

    获取Geohash当前区域周围8个区域编码 | ini's Blog (jianlei.github.io) 获取Geohash当前区域周围8个区域编码 2019-01-18 技术开发MAP GEOH ...

  4. PHPExcel 怎样在单元格里画出斜线边框

    两种方法可以实现,比如你要在单元格A1和B2两个单元格画斜线. 第一种方法: $objPHPExcel->getActiveSheet()->getStyle('A1')->getB ...

  5. Redis基础 -- 地理坐标类型 Redis GEO 和 Redis GEO的常用命令(含GEOHASH编码说明)

    文章目录 1. 地理坐标类型 Redis GEO 1.1 GEOADD:存储坐标 1.2 GEOPOS:获取指定位置的坐标 1.3 GEODIST:计算两个位置之间的直线距离 1.4 GEORADIU ...

  6. 怎么用Photoshop直接画一个矩形边框

    用Photoshop画矩形的时候,有时需要就画一个单一的边框,内部不需填充颜色,而且边框可以调节宽度和颜色.这时就可以用选择工具拉个矩形框,然后点主菜单,选编辑->描边,再在跳出的窗口选择相关的 ...

  7. css画三角形不用边框,CSS 实现三角形,非 Hack

    写过 HTML upvote arrow(向上箭头),speech bubble(对话气泡)或其他类似的尖角元素的人都知道,为了创建一个纯 CSS 实现的三角形,必须使用某些 Hack.最流行的两种方 ...

  8. python画线调整边框_使用matplotlib更改图形大小时,缩放图例框边框、虚线和虚线...

    我正在尝试使用matplotlib来准备一些要发布的图形.为了使字体大小与手稿的文本相匹配,我首先尝试以最终大小创建图形,以便在插入手稿时避免缩放图形.在 我遇到的问题是,由于图形非常小,我可以缩放字 ...

  9. 74、shape 画圆 加 边框

    1 <?xml version="1.0" encoding="utf-8"?> 2 <!--<shape xmlns:android= ...

最新文章

  1. wpf异形按钮,定制异型按钮在WPF
  2. php有个qrcode类,一个PHP的QRcode类与大家分享
  3. gRPC创建Java RPC服务
  4. Python 对象的身份迷思:从全体公民到万物皆数
  5. 怎么看tomcat连接的哪个mysql_如何验证tomcat和mysql连接成功呢
  6. 校园天翼客户端常见错误码
  7. 软考软件设计师下午真题-面向对象的程序设计与实现-装饰设计模式(2012年上半年试题六))Java代码讲解
  8. 正从服务器获取安装包消息 荣耀9,华为荣耀9 root教程 华为荣耀9获取root权限的方法...
  9. 遗传算法(GA)解决MTSP问题及Matlab代码
  10. win7电脑怎么伪装ip地址【系统天地】
  11. matlab cftool光滑曲线导出为什么就不光滑了_博学 MATLAB如何导出精美的论文插图...
  12. BZOJ 2002 HNOI2010 弹飞绵羊 分块
  13. php 503解决办法,php设置页面返回503状态-php设置503http状态的方法-吾爱编程网
  14. 计算机一级考试2018知识点,2018年全国计算机一级ms office考试内容
  15. 高德打造全民出行节 十一出游“心不堵”
  16. 区块链软件公司:区块链赚钱的领域有哪些
  17. pages文件夹 AddCartSuccess Center Detail Home Login Pay PaySuccess
  18. 转发和重定向简介及与之相关的(URL)参数(parameter)、属性(attribute)问题探讨
  19. python 常微分方程 画向量场_用scipy-odein在python中求解向量常微分方程
  20. 圆心科技再求上市:亏损金额飙升,研发费用率低于2%,如何突围?

热门文章

  1. 王者荣耀s14服务器维护时间,王者荣耀s14赛季结束时间详解一览
  2. java per.get_Java ResultSetMetaData getPercision()方法与示例
  3. 大牛证券分析近期指数波动在加大
  4. 广州经济技术开发区-500强企业名单
  5. 【亲测好玩】欧洲卡车模拟2 mac中文版(支持big sur)
  6. yepnope.js教程
  7. 基于IMD驱动ARP防火墙设计(windows平台)
  8. Maven的几个核心概念
  9. 金融壹账通上半年净亏损扩大,对平安集团依赖继续加大
  10. 关于12306的一些想法