命令行工具查找最近的存储。

storelocator的Python项目详细描述


#storelocator

一个命令行工具,用于从存储的csv中查找距离给定地址或邮政编码最近的存储。

请确保您的计算机上安装了类似virtual env的软件。

env/bin/activate
````







```````
pip install-r requirements.txt
``````
````````



//``````````````````>


p~/bin<是的路径=$path":$home/bin"
```

="utf-8-sig"
默认分隔符=','
距离精度=2

存储字段={
"名称":"存储名称",
"位置":"存储位置",
"县":"县",
"地址":"地址",
"城市":"城市",
"状态":"状态",
'邮政编码':'邮政编码',
'纬度':'纬度',
'经度':'经度',
'距离':'距离'
}
````

>设置完毕后,可以使用storelocator按地址或邮政编码查找最近的商店。或者,您也可以选择距离(mi或km)的单位,以及希望结果输出为(文本或json)的格式。


````
find store
find store将从
store-locations.csv中查找最近的存储(如vrow所飞),打印匹配的存储地址,以及到该存储的距离。


用法:
查找存储--地址="<;地址>;""
查找存储--地址="<;地址>;""[--单位=(mi km)"[--输出=文本json]
查找存储--zip=<;zip>;
查找存储--zip=<;zip>;[--units=(mi km)][--output=text json]


选项:
--zip=<;zip>;查找离此邮政编码最近的商店。如果有多个最佳匹配项,请返回第一个。
--地址查找距此地址最近的存储区。如果有多个最佳匹配,则返回第一个。
--units=(mi km)以英里或公里为单位显示单位[默认值:mi]
--output=(text json)以可读文本输出,或在JSON(例如机器可读)[默认:文本]
BR/>示例
FUNDIONSITY地址="1770联合ST,旧金山,CA 94123"
查找商店——zip=94115——单元=km
````

````
要使用比所提供的数据集更大的数据集,并且模块化地包括在命令提示符之外使用。

当然,这种方法也可以改进。


包含存储位置数据的csv的解析通过storesparser对象处理。storesparser读取csv并创建存储列表(dict)。同时,通过对storesparser对象的kdtree实现,对所有存储的纬度和纵向坐标进行空间索引。

ure,查询最近的存储被优化为nlog(n)时间复杂度,减少了查找最近存储所需的距离计算次数。构建此树会增加存储树的空间成本和最初填充树所需的时间。


要从这种方法中获益,必须确保不必在每次执行新搜索时都重新填充kdtree。为了实现这一点,storesparser有一个save方法,该方法在填充kdtree后将当前实例保存到一个.pkl文件中。然后,storesparser有一个名为get_storesparser的静态方法,该方法返回已保存的storesparser实例,或者如果不存在.pkl文件,在填充其kdtree后返回一个新实例。

z)可用于计算欧氏距离。


查找最近的存储首先查询树以接收最接近的可能结果,然后从结果列表中,传统的蛮力和迭代比较法是用来寻找最接近的距离的。

距离计算是基于haversine公式。



\authors

*austin brown

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

推荐PyPI第三方库


热门话题
java Requestcontextholder在spring 4中具有并发访问权限。IBMWebSphere上的x Web应用程序?   java如何下载、设置和使用Eclipse?   java如何组合这些mysql语句   java JDBC无法连接到openshift上的mysql数据库   如果存在允许正确处理的重载,java对于方便的方法来说是否可行?   使用hibernate序列的java Spring MVC不存在   具有路径的java Selenium ChromeDriver负载扩展问题   读一本书。java中的java文件   退出队列时,Java队列程序结果为空   Java lambda返回带有重复代码问题的列表   java使用意图从其他活动传递数据并在listview中显示   java如何在java中创建JSON输出   java Android:在不破坏或暂停活动的情况下关闭显示   支持Android电视和手机的java多apk   关于Java应用程序测试和调试的一组问题   如何在JavaSE中使用jdbcRealmShiro进行授权   在java中是否有一个无异常检查的URL解析实用程序?   当页面上有多个相同类型的元素时,java会选择一个特定的元素   递归需要帮助发现java代码中的缺陷