本文目录一览:
- 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等