用于构建等时线的小型python模块

pychrone的Python项目详细描述


https://api.travis-ci.org/headshaker/pychrone.svg?branch=masterhttps://img.shields.io/pypi/v/pychrone.svghttps://img.shields.io/pypi/pyversions/pychrone.svg

python 3模块,用于从点生成等时线

历史记录

0.0.2-添加了几种类型的等时线生成:步行、驾驶或骑自行车。

0.0.1-初始版本,仅支持行走等时线。

如何安装

您可以使用pip

安装pychrone
pip install -U pychrone

或通过来源:

python setup.py install

如果安装了多个python版本,则可能会相应地使用pip3python3命令。

功能

该模块从定义纬度的设定点和定义时间的长震级生成isochrone

步行路线和坐标的所有详细信息都来自OpenStreetMap,因此您需要一个Internet连接才能使用此模块。

此外,模块还将尝试用α-shape algorithm优化等时线形状,使其更自然和干净。

模块的主函数接受以下参数:

create_等时线(longtitude,latitude,speed=4.5,output=“geojson”,route=“walk”

  • 经度-创建等时线的点的经度;
  • 纬度-创建等时线的点纬度;
  • speed-行人速度(单位:km/h),默认值为4.5;
  • output-输出格式,默认为“geojson”,wich生成有效的GeoJSON多边形。另一个选项是“shape”,它生成Shapely对象;
  • route-用于生成等时线的路由类型。默认值是“walk”,这意味着将为行人生成等时线。其他可能的选择是“开车”(汽车)和“自行车”(自行车)。

用法:

在这个小例子中,pychrone将以geojson格式从坐标点(37.847591,55.920284)返回5分钟步行等时线,假设步行速度为4.5公里/小时:

IN:

frompychroneimportCreate_isochroneCreate_isochrone(37.847591,55.920284,5)

OUT:

{"coordinates":[[[37.8460729,55.9174363],[37.8464059,55.9175894],[37.847672,55.9178994],[37.8485452,55.9179112],[37.8489915,55.9179172],[37.8490785,55.9179534],[37.8502528,55.918252],[37.8508537,55.9190215],[37.8521326,55.9193121],[37.8523401,55.9195966],[37.8523826,55.9196535],[37.8526471,55.920433],[37.8527015,55.9206193],[37.852584,55.9210867],[37.8512857,55.9218685],[37.8500913,55.9216824],[37.8481064,55.9218883],[37.8480311,55.9218827],[37.8464856,55.9216235],[37.8458339,55.9220129],[37.8452347,55.9223078],[37.8451153,55.9223076],[37.843753,55.9214498],[37.8434385,55.9211565],[37.8432352,55.9210091],[37.843344,55.9201537],[37.8436392,55.9200188],[37.8442215,55.9195563],[37.8445491,55.9189478],[37.8453806,55.9179848],[37.8458505,55.9173872],[37.8460729,55.9174363]]],"type":"Polygon"}

在这里,我们将以geojson格式从同一点建立一个5分钟的自行车等时线,假设自行车速度为15公里/小时:

IN:

frompychroneimportCreate_isochroneCreate_isochrone(37.847591,55.920284,5,speed=15,route='bike')

OUT:

{"coordinates":[[[37.8567192,55.9159054],[37.8566902,55.917482],[37.8574327,55.9183582],[37.8596827,55.9179265],[37.8606264,55.9174921],[37.8607145,55.9174898],[37.8616878,55.9182527],[37.8623098,55.9184031],[37.8623315,55.9186923],[37.8623347,55.9187348],[37.8617334,55.9187584],[37.8601876,55.9216012],[37.8601928,55.9216375],[37.8625041,55.9234816],[37.8606823,55.9239551],[37.8602133,55.9240344],[37.859944,55.9240621],[37.8596538,55.9240835],[37.858323,55.9265212],[37.858095,55.9258876],[37.8579296,55.9254856],[37.8577715,55.9252287],[37.857535,55.9249517],[37.8571648,55.9246052],[37.8570523,55.9244923],[37.8567998,55.9242646],[37.8564721,55.9239992],[37.8551838,55.9236002],[37.8550675,55.9236167],[37.854535,55.9236923],[37.8539227,55.9237794],[37.8537368,55.9238044],[37.8517414,55.9236685],[37.8506852,55.9233489],[37.8503534,55.9223657],[37.8481771,55.9215311],[37.8461656,55.9213583],[37.8453504,55.9211411],[37.8434385,55.9211565],[37.8424404,55.922531],[37.8414824,55.9219328],[37.839682,55.9204985],[37.8381736,55.919545],[37.8379558,55.9195288],[37.8378175,55.9195185],[37.8368864,55.9194489],[37.8355386,55.9177032],[37.8349836,55.9175541],[37.8351224,55.9173399],[37.8353122,55.91707],[37.8354487,55.9168568],[37.8357087,55.9170776],[37.8382045,55.9171129],[37.8392138,55.9171165],[37.8404943,55.9171611],[37.8418891,55.9172097],[37.8435035,55.915587],[37.8435064,55.9154623],[37.841976,55.9137454],[37.8421039,55.9136196],[37.842337,55.9138113],[37.8445747,55.9138635],[37.8453206,55.9139934],[37.8453969,55.9139946],[37.8456471,55.9139985],[37.8458805,55.9140022],[37.8461503,55.9140065],[37.8466495,55.9139142],[37.8470988,55.9138738],[37.8472903,55.9138372],[37.8485149,55.9145846],[37.8494446,55.9152114],[37.8494888,55.9152412],[37.850287,55.9162542],[37.8526657,55.9159628],[37.8546403,55.9159654],[37.8549614,55.9159579],[37.8565237,55.9159109],[37.8566544,55.915907],[37.8567192,55.9159054]]],"type":"Polygon"}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在OSGI中使用cxf生成的客户端时出现Java类装入器问题和JaxB异常   java为什么要在javamail中迭代多部分电子邮件中的部分?   并发编程问题   JFileChooser&&System中未调用java windowClosing。退出功能不正常?   SQL查询的java语法分析   java如何使用AspectJ声明字段上的警告   什么是java向量。元素()C#等价物   java解析Android应用程序中tornado web服务中的CSV文件   java我试过c2dm,我需要服务器端   java调整JPanel大小以适应新的JLabel图标   Java与Python脚本的通信   java使用Saxon通过XSLT生成URL   java net::ERR_complete_CHUNKED_编码200(OK)来自struts应用程序中的tomcat   java如何为我的窗格设置不同的位置?   java使用Cypher Neo4j获取给定类型的所有节点(从SQL世界中的tablename中选择*)   nio使用Java解析文件值   java使用WSDL生成REST客户端会是错误的方向吗?   java如何在我的应用程序中构建类映射?   java按钮。setEnabled在第一个循环中不起作用   xPath适用于最后一页,但不适用于第一页