本文目錄一覽:
- 1、Geojson筆記二:geojson-python-util
- 2、python 合併兩個json文件
- 3、怎麼樣用Python實現地理編碼
- 4、如何生成geojson格式的tiles
- 5、有哪些 GIS+Python 的開發經驗值得分享
Geojson筆記二:geojson-python-util
隨着geojson變得越來越流行,需要給geojson一些具體的數據操作。我在寫這庫的工程中也是學習的過程,希望也能給你的GIS學習一點點幫助。
將腳本 geojson_utils.py 複製到你的文件夾中,然後輸入:
驗證兩條線是否相交並求出交點。 原理
判斷點是否在多邊形內部。原理大致如下:
判斷點是否在多個多邊形內
通過一個中心點和半徑獲得一個圓形的圖形
取出矩形的中心點
兩點的互聯網球面距離
(參考 ),注意這個是球型距離,非大地陀球距離
判斷點線面是否在某點半價內
求多邊形面積
多邊形中心點
adapted from
通過起點,距離和角度來計算終點
python 合併兩個json文件
先用json.load解析各自的文件內容,
然後用第一個接觸出來的的列表,extend方法第二個列表,然後兩個列表就合二為一了。
怎麼樣用Python實現地理編碼
工具原料:地理編碼工具geocoder用Python實現地理編碼方法如下:一、看一下它都支持哪些公司的地理編碼服務:二、安裝pipinstallgeocoder三、地理編碼importgeocoderg=geocoder.google(“1403WashingtonAve,NewOrleans,LA70130″)g=geocoder.arcgis(u”北京市海淀區上地十街10號”)g.latlng輸出為[29.9287839,-90.08421849999999]也可以查看完整的geojsong.geojson輸出為{‘bbox’:[-90.0855674802915,29.9274349197085,-90.0828695197085,29.9301328802915],’geometry’:{‘coordinates’:[-90.08421849999999,29.9287839],’type’:’Point’},’properties’:{‘accuracy’:u’ROOFTOP’,’address’:u’1403WashingtonAve,NewOrleans,LA70130,USA’,’bbox’:[-90.0855674802915,29.9274349197085,-90.0828695197085,29.9301328802915],’city’:u’NewOrleans’,’confidence’:9,’country’:u’US’,’county’:u’OrleansParish’,’encoding’:’utf-8′,’housenumber’:u’1403′,’lat’:29.9287839,’lng’:-90.08421849999999,’location’:’1403WashingtonAve,NewOrleans,LA70130′,’neighborhood’:u’GardenDistrict’,’ok’:True,’place’:u’ChIJGyFHWc2lIIYRYSoneaXAUiw’,’postal’:u’70130′,’provider’:’google’,’quality’:u’street_address’,’state’:u’LA’,’status’:’OK’,’status_code’:200,’street’:u’WashingtonAve’},’type’:’Feature’}直接用Google嘗試查詢中文地址時失敗g=geocoder.google(u”北京市海淀區上地十街10號”)g.ok輸出為False用百度應該沒問題,不過我沒有申請相應的key。切換到arcgis,能夠成功編碼g=geocoder.arcgis(u”北京市海淀區上地十街10號”)g.latlng輸出為[40.050934,116.30079]逆地理編碼g=geocoder.google([29.9287839,-90.08421849999999],method=’reverse’)printg.addressprintg.cityprintg.stateprintg.country輸出為1403WashingtonAve,NewOrleans,LA70115,USANewOrleansLAUS換成中國的地址g=geocoder.google([40.050934,116.30079],method=’reverse’)printg.addressprintg.cityprintg.stateprintg.country輸出為BaiDuDaSha,HaidianQu,BeijingShi,China,100193BeijingBeijingShiCN用arcgis的服務試試g=geocoder.arcgis([40.050934,116.30079],method=’reverse’)printg.addressprintg.cityprintg.stateprintg.country輸出為None北京市北京市CHNGoogle轉換成的是英文,但地址比較全。arcgis雖然是中文,但是詳細的地址居然輸出為了None,這有個X用。其他geocoder的功能不止於此,它還可以查IP(包括自己的)。g=geocoder.ip(‘199.7.157.0’)printg.latlngprintg.cityg=geocoder.ip(‘me’)printg.latlngprintg.city輸出為[43.6934,-79.4857]Toronto[51.05,13.75]Dresden查詢一個城市的空間包圍盒g=geocoder.arcgis(u”山東”)g.bbox輸出為{‘northeast’:[38.976997,121.976998],’southwest’:[33.022997,116.022998]}
如何生成geojson格式的tiles
轉載自 需下載的工具有:python:python-2.6
Python Setup tools :setuptools-0.6c11.win32-py2.6
GDAL:GDAL-1.9.2.win32-py2.6
TileStache:TileStache-1.42.1
1.首先安裝python2.6 並配置環境變量
2.安裝Setup tools (方面安裝其他軟件)和GDAL
3.使用Setup tools安裝TileStache, ModestMaps, PIL(TileStache 依賴於這兩項)
easy_install tilestache
easy_install PIL
easy_install ModestMaps
4.在下載的TileStache中的文件夾中配置cfg文件
{
“cache”:
{
“name”: “Disk”,
“path”: “/tmp/stache”,
“umask”: “0000”
},
“layers”:
{
“postgis”:
{
“provider”: {“name”: “vector”, “driver”: “PostgreSQL”,
“parameters”: {“dbname”: “postgis”, “user”: “postgres”,”password”:”postgres”,
“table”: “mainroad”}}
}
}
}
}
5.然後用tilestache-seed進行切片
6.結果
後面會推出矢量切片在OL中的應用。OpenLayers中加載矢量切片,可有效解決大數據量的問題
有哪些 GIS+Python 的開發經驗值得分享
GISer入門指南電子書第一季 分享版.pptx免費下載
鏈接:
提取碼: wttn
ArcGIS入門級教程,詳細介紹了ArcGIS產品族及成員產品 1、GIS 的概念和需求 2、什麼是ArcGIS 3、Geodatabase中的GIS數據概念 4、桌面GIS產品:ArcView, ArcEditor和ArcInfo等
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/253680.html