geohash 模組安裝及使用(Anaconda.Python 2)
1 安裝場景
- 在 anaconda多核心環境中,實現 由 經緯度 得到 geohash 編碼 .
- 實現方式:
- 安裝 Geohash 模組
- 安裝方式
- 通過 命令列 安裝
- 在 Anaconda Prompt 視窗中,通過 pip 或 conda 命令安裝Geohash模組 .
- 通過 原始碼 安裝
- 下載tar包或者原始碼,通過 setup.py 檔案完整安裝 .
- 通過 命令列 安裝
- 主要版本:
- Geohash 1.0
- __init__.py:
from geohash import decode_exactly, decode, encode
- __init__.py:
- mzgeohash(Mapzen Geohash推薦!)
- __init__.py:
from geohash import encode, decode, adjacent, neighbors, neighborsfit
- __init__.py:
- Geohash 1.0
- 即,Geohash 模組中包含的的方法不同。前者較少,後者較多。
2 詳細描述
- 文章主要記錄在Anaconda Python 2 環境下,通過 geohash 完成編碼的過程。具體為以下 4 方面:
- 安裝 geohash、mzgeohash
- 解決並記錄安裝過程中遇到的問題
- mzgeohash 使用
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 參考文章
5 總結
- geohash 版本
- mzgeohash 實現了開發中常用的(fang)方(bian)法,其他版本實現方法較少。如果讀者發現更好的版本,歡迎留言 .
- 後續有機會進一步分析、總結實現原理 .
相關推薦
geohash 模組安裝及使用(Anaconda.Python 2)
1 安裝場景 在 anaconda多核心環境中,實現 由 經緯度 得到 geohash 編碼 . 實現方式: 安裝 Geohash 模組 安裝方式 通過 命令列 安裝 在 Anaconda Prompt 視窗中,通過 pip 或 conda 命令安裝G
atlassian-jira-software-7.5.2 (7.10.2)安裝配置及問題記錄
安裝過程網上資料很多,這裡不再搬磚,只記錄下遇到的問題: 1. 在配置資料庫頁面,測試連線時報錯,嘗試在命令列下登陸,報錯資訊如下: [***@localhost ~]$ mysql -ujira -pjirapasswd ERROR 1045 (28000): Access denied
## Python 3.6.3(anaconda內建)Anaconda安裝步驟以及TensorFlow安裝步驟
這是我已經下載好的32位和64位anaconda32,如果有需要可以用我分享的百度網盤地址進行下載哦~~~ 連結:https://pan.baidu.com/s/1WpsOVzGaxMisfWt2ofplDA 密碼:pm5q anaconda安裝步驟 雙擊下載
3.python安裝教程(Anaconda和Pycharm的安裝)
1.簡單來說就是我們需要安裝Anaconda和Pycharm。 2.為什麼安裝Anaconda和Pycharm以及其簡介。 Python的資料處理能力主要依賴於NumPy,SciPy,Matplotlib,Pandas這4個庫,其中NumPy提供了矩陣運算的功能,Sc
Python中requests庫模組和lxml模組安裝問題(windows下)
1.requests模組安裝: 第一次匯入requests模組,會報mportError: No module named requests的錯。這就是沒有成功匯入requests模組。 2.lxml模組安裝問題: 1.進入http://www.lfd
Python的C擴充套件模組的編寫(Anaconda+VS2013,python3.5和c++)
vs2013 調整生成配置,release和與python位數一致的平臺,這裡我選擇x64,因為我的python是64位 建立工程->32位專案->專案型別選DLL 配置工程屬性: ** 在.h檔案中,加入#include
Linux系統下安裝Python以及搭建科學計算(機器學習)環境(anaconda和spyder)
由於自己走完這幾步花了不少時間,所以總結了下分享。 系統:以Ubuntu為例 第一階段:安裝python linux系統都自帶python,我的是2.7版本,在終端輸入python就可以看到版本資訊,所以可以不用安裝python,直接進入第二階段即可。 1.其他版本下載地址
Mac Hadoop2.6(CDH5.9.2)偽分布式集群安裝
home address oca tno 操作系統 fault locate java contents 操作系統: MAC OS X 一、準備 1、 JDK 1.8 下載地址:http://www.oracle.com/technetwork/java/javase
181102 Windows下安裝kivy(用python寫APP)
瞭解到Instgram,知乎等APP是用python寫的。我也決定學習用python寫APP。這裡我們需要安裝kivy。 環境:win7,python3.6 安裝方式:DOS命令視窗 注意事項:目前不支援python3.4及以上版本。如需安裝3.5及以上版本,請通過安裝檔案手動安裝。 參考kivy網址
vue-cli 安裝及建立專案(vue 2.x)
安裝 npm install vue-cli -g /*g 全域性安裝*/ 建立專案 vue init webpack demo1 /* webpack 官方模板名稱, demo1 專案名稱*/ 安裝依賴(須先進入專案目錄) npm install&nb
Python 直譯器(3 vs 2)究竟該如何抉擇
Python的狀態(版本 3 和版本 2) 選擇 Python 直譯器時,總會出現一個令人窘迫的問題: “我應該選擇Python 2 還是 Python 3”? 答案比人們想象的要複雜的多。 大致的基本情況如下: 今天大多數生產應用程式都在使用 Pyth
Git入門(安裝及基礎命令列操作)
一、安裝 1、Mac 在Mac中安裝Git的方法不止一種。最簡單的要數通過Xcode命令列工具。對於Mavericks(10.9)或更高版本的作業系統,當你第一次嘗試在終端執行git命令時,系統會自動檢查是否已安裝Git;如果未安裝,則會提示你安裝它。如果希望獲得更高的版本,也可以通過二進位制安裝程式
在Ubuntu 18中安裝Pycharm2018(附破解過程)專業版及建立Pycharm快捷方式
一.到PyCharm網站下載最新版本2018 http://www.jetbrains.com/pycharm/download/#section=linux 二.右鍵提取出來,或者執行tar命令 進入解壓後的bin目錄中 cd /home/my/下載/pycharm
Windows下Python環境搭建圖解(3.6.2)
Windows下Python(pip)環境搭建(3.6)圖解 ----------------小白一隻,學習整理中。。。。轉載請標明,謝謝------------------------------------------- 1:下載最新的Python安裝:3.6.2
python重難點(個人學習2)
一, python字典操作方法及知識點 fromkeys(*args,**kwargs) :建立一個薪資點,以序列seq中的原色做字典的鍵,val為字典所有對應鍵值初始化。 get(self,k,d=none)若無對應值,可以設定預設返
Python celery和Redis入門安裝使用(排難帖)
shrink 獲取 問題 wine span cti bubuko cover hub 1、redis安裝 下載地址 https://github.com/MicrosoftArchive/redis/releases,選擇Redis-x64-3.2.100.msi5.8
Python:讀取xlsx和xls檔案(Excel操作2)
#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: 2讀取x
Python從入門到實踐(課後習題2)
5-2 更多的條件測試 :你並非只能建立10個測試。如果你想嘗試做更多的比較,可再編寫一些測試,並將它們加入到conditional_tests.py中。對於下面列出的各種測 試,至少編寫一個結果為True 和False 的測試。 檢查兩個字串相等和不等。 使用
liux下安裝fbprophet(anaconda,pystan,fbprophet)【liux CentOS 】
首先確定下自己什麼系統和版本: more /etc/redhat-release 【本人是liux CentOS release 6.7 (Final)】 一、安裝anaconda(方法很多介紹一個我自己用的) 下載安裝指令碼,終端執行:wget https://repo.anaco
10分鐘搭建Vue環境及安裝腳手架(Vue入門篇)
Vue理念(題外話) 1、Node安裝 2、基於node.js,安裝淘寶映象 國內直接使用 npm 的官方映象是非常慢的,這裡推薦使用淘寶 NPM 映象。 新建一個資料夾,開啟資料夾,在資料夾中按住鍵盤的 shift鍵 + 滑鼠