1 安装场景

  • 在 anaconda多内核环境中,实现 由 经纬度 得到 geohash 编码 .
  • 实现方式:
    • 安装 Geohash 模块
  • 安装方式
    • 通过 命令行 安装

      • 在 Anaconda Prompt 窗口中,通过 pip 或 conda 命令安装Geohash模块 .
    • 通过 源代码 安装
      • 下载tar包或者源代码,通过 setup.py 文件完整安装 .
      • 安装方式详见:
        • 用setup.py安装第三方 Python 包
  • 主要版本:
    • Geohash 1.0

      • __init__.py:

        • from geohash import decode_exactly, decode, encode
    • mzgeohash(Mapzen Geohash推荐!)
      • __init__.py:

        • from geohash import encode, decode, adjacent, neighbors, neighborsfit
  • 即,Geohash 模块中包含的的方法不同。前者较少,后者较多。

2 详细描述

  • 文章主要记录在Anaconda Python 2 环境下,通过 geohash 完成编码的过程。具体为以下 4 方面:

    • 安装 geohash、mzgeohash
    • 解决并记录安装过程中遇到的问题
    • mzgeohash 使用
    • 通过 unittest 执行测试用例

3 具体代码(已安装mzgeohash)

  • 1 mzgeohash 使用说明
# ### mzgeohash
# - 调用方式
# - 实现原理# ### list all member methods# In[23]:dir(mzgeohash)# #### 经纬度 转换为 geohash# In[2]:mzgeohash.encode([139.76608408614993, 35.681382017210126])# #### geohash 转换为 经纬度# In[33]:mzgeohash.decode('xn76urwe1g9y')# #### 已知 geohash ,计算某一方向的临近geohash
# - 参数 1
#     - 已知 geohash 串
# - 参数 2
#     - 方向# In[35]:mzgeohash.adjacent('xn76urwe1g9y','n') # # #### 已知 geohash ,临近geohash
# - 九宫格,即周围 8 个geohash# In[34]:mzgeohash.neighbors('xn76urwe1g9y')# #### 已知 某位置点经纬度和周围经纬度点集,计算同属 geohash# In[37]:test_centroid = [-122.18472385000001, 37.7881345]
test_points = [
(-122.2992715, 37.9030588),
(-122.396742, 37.792976),
(-122.4474142, 37.72198087),
(-121.9764, 37.557355),
(-122.029095, 37.973737),
(-122.224274, 37.774963),
(-122.271604, 37.803664),
(-122.126871, 37.697185),
(-122.087967, 37.670399),
(-122.123801, 37.893394),
(-122.269029, 37.80787),
(-122.265609, 37.797484),
(-122.267227, 37.828415),
(-122.067423, 37.905628),
(-122.267227, 37.828415),
(-122.38666, 37.599787),
(-122.075567, 37.690754),
(-122.401407, 37.789256),
(-122.283451, 37.87404),
(-122.269029, 37.80787),
(-122.1837911, 37.87836087),
(-122.419694, 37.765062),
(-122.2945822, 37.80467476),
(-122.21244024, 37.71297174),
(-121.945154, 38.018914),
(-122.466233, 37.684638),
(-122.056013, 37.928403),
(-122.406857, 37.784991),
(-122.418466, 37.752254),
(-122.26978, 37.853024),
(-122.251793, 37.844601),
(-121.928099, 37.699759),
(-122.416038, 37.637753),
(-122.1613112, 37.72261921),
(-122.0575506, 37.63479954),
(-122.392612, 37.616035),
(-122.413756, 37.779528),
(-122.353165, 37.936887),
(-122.197273, 37.754006),
(-122.017867, 37.591208),
(-122.024597, 38.003275),
(-122.4690807, 37.70612055),
(-122.268045, 37.869867),
(-122.444116, 37.664174),
(-121.900367, 37.701695),
(-122.317269, 37.925655),
(-122.434092, 37.732921)
]# expect = '9q9'
mzgeohash.neighborsfit(test_centroid, test_points)
  • mzgeohash 运行Demo

  • 2 利用 unittest 建立 mzgeohash 测试用例并执行
# ### 使用unittest进行 mzgeohash 模块测试
# - 通过 testsuit 执行测试用例
# - TestCase:所有测试用例的基本类,给定测试方法的名称,返回测试用例实例;
# - TestSuit:组织测试用例的实例,支持测试用例的添加和删除,最终将传递给 testRunner进行测试执行;
# - TextTestRunner:进行测试用例执行的实例,其中Text的意思是以文本形式显示测试结果。
#     - 测试结果保存在 TextTestResult 实例中,包括运行多少测试用例,成功多少,失败多少等信息;# In[6]:import unittest
from mzgeohash.test_geohash import Test_encode_decode
from mzgeohash.test_geohash import Test_adjacent
from mzgeohash.test_geohash import Test_neighbors
from mzgeohash.test_geohash import Test_neighborsfit# In[35]:suite=unittest.TestSuite()
suite.addTest(Test_encode_decode('test_decode'))
suite.addTest(Test_encode_decode('test_encode'))
suite.addTest(Test_encode_decode('test_roundtrip'))
suite.addTest(Test_neighbors('test_neighbors'))
suite.addTest(Test_adjacent('test_adjacent'))
suite.addTest(Test_neighborsfit('test_neighborsfit'))runner=unittest.TextTestRunner()
runner.run(suite);
  • unittest 建立测试用例并执行Demo

4 参考文章

  • mzgeohash(Mapzen Geohash) README.md, 推荐
  • python利用unittest进行测试用例执行的几种方式, 推荐
  • ImportError: No module named ‘geohash’
  • 解压tar文件:Not found in archive
  • mzgeohash 基础应用By Python

5 总结

  • geohash 版本
  • mzgeohash 实现了开发中常用的(fang)方(bian)法,其他版本实现方法较少。如果读者发现更好的版本,欢迎留言 .
  • 后续有机会进一步分析、总结实现原理 .
  • ipynb 脚本下载
  • mzgeohash github link

geohash 模块安装及使用(Anaconda.Python 2)相关推荐

  1. Anaconda——安装与添加 Anaconda Python 免费仓库

    Anaconda 简介 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算.数据分析的 Python 包. Anac ...

  2. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  3. python3第三方模块安装路径_查看python及其第三方库的版本和安装位置

    1 查看python版本 python -V 注意:大V 或者 python --version 注意:两个'-' 查看python安装位置 python -c "import sys; p ...

  4. Python: 学习系列之七:模块、PIPY及Anaconda

    系列 Python: 学习系列之一:Python能做什么 Python: 学习系列之二:基础介绍(int/float/string/range/list/tuple/dict/set) Python: ...

  5. python安装numpy模块-python的numpy模块安装不成功简单解决方法总结

    为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...

  6. python numpy安装步骤-python的numpy模块安装不成功简单解决方法总结

    为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...

  7. Python 模块安装失败

    Python 安装模块常用的有三种方式 pip install XXX(模块名) 传统安装方式,不做解释 使用文件安装 当使用第一种方式不能够安装成功模块的时候,可以使用这个方式 访问 https:/ ...

  8. Anaconda python windows环境安装及完全排坑教程

    (本文篇幅较长,浏览器下搜索关键信息请直接使用ctrl+F关键词查找) 点击以下内容空降 Anaconda是什么? 1.0篇 anaconda初体验 1.Anaconda3的安装 pycharm部分( ...

  9. Python 模块安装详细

    注:原创博文,转载请注明出处:http://blog.csdn.net/m0_37887016 引言: Python存在各种各样的模块供用户使用,比如运算所需的numpy模块.scipy模块.爬虫用到 ...

最新文章

  1. 推荐几款vs2005的插件
  2. C++ Stack 与String
  3. java 鼠标拖动矩形_java – 用鼠标拖动创建矩形,而不是绘制
  4. MySQL笔记-Linux平台中MySQL的启动和关闭
  5. Windows Vista for Developers——第二部分:深入分析任务对话框
  6. org.apache.tomcat.jni.LibraryNotFoundError tcnative-1.dll 异常
  7. 从当前文件夹以及子文件夹中,批量移动指定名字的文件
  8. redis-pool go
  9. 《TCP/IP路由技术(第二卷)》一1.5 检测与排除EGP故障
  10. Spring Cloud Gateway替代zuul作为API网关(一)
  11. mybatis 之 parameterType=list
  12. 三菱FX3U,三轴搬运PLC程序,控制三个台达B2伺服,信捷触摸屏的程序,有电气CAD图纸
  13. matlab反拉氏变换,matlab拉普拉斯变换.doc
  14. 在条码打印软件中如何绘制圆形
  15. 微信公众平台 使用JS-SDK实现拍照上传功能
  16. 3dmax计算机组装动画,3dmax怎么做动画,教你3dsmax动画制作流程和基本套路
  17. 【微信小程序】用户授权及getUserProfile接口使用
  18. 那些曾让我一脸懵逼的python代码
  19. Autoware:ndt_mapping节点
  20. [转]GotW#63 狂乱的代码

热门文章

  1. NGFF、M.2、NVME、SATA、PCIE、USB的层次和区别:协议?接口?
  2. 05 【动静分离和URLRewrite】
  3. 单引号,双引号,转义
  4. 软件测试怎么学?如何系统学习软件测试?
  5. 外观模式 Facade
  6. 老macbook升级新版本(Big sur、Monterey)
  7. C++中空类占一字节原因详解
  8. ueditor编辑器右键粘贴、复制不能用的解决办法
  9. 我让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板,大家感受一下
  10. 如何编写Junit测试代码