geohash 模块安装及使用(Anaconda.Python 2)
2018-01-28 00:10
1511 查看
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
相关文章推荐
- Python数据分析基础模块:Anaconda的安装以及简单使用
- 使用setuptools自动安装python模块 [转]
- 【转】使用setuptools简化Python模块的安装
- 使用setuptools自动安装python模块
- python cx_Oracle模块的安装和使用(linux环境)
- 使用setuptools自动安装python模块(setuptools)
- 如何使用和制作 Python 安装模块(setup.py)
- 【python】python paramiko模块安装和使用
- python模块 ,paramiko的安装和使用
- Windows下安装Python SSH模块及其使用
- 使用setuptools在linux上安装python模块
- 使用setuptools自动安装python模块
- windows下安装requests模块 到python,eclipse可以使用
- python cx_Oracle模块的安装和使用(linux环境)
- 使用setuptools自动安装python模块
- 使用Cygwin和 mingw 安装 python paramiko模块
- 升级Python2.7导致使用pip等命令安装模块失败
- 安装,使用Python easy_install 模块
- python cx_Oracle模块的安装和使用
- Red Hat/Fedora Linux 上使用 yum 安装 python pip 模块