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

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如何为ConcurrentHashMap使用并设置适当的并发级别?   java泛型方法,运行时错误,   java在页面上显示加载的图像   java Paypal定期直接支付问题   java如何延迟重新绘制组件   JavaSpringBoot+Hibernate如何维护@Transient字段   java在其方法中获取关于类的信息   在java中将别名添加到枚举   java如何解决向google报告成绩时“需要重新连接客户端”的问题   清晰的java图像背景   java未找到适合JDateChooser的构造函数(字符串、字符串、字符)   java LRU缓存实现。某些测试用例的代码失败   if语句Java嵌套的if/Else条件   java JSoup“wrap”并非每次都按预期工作   Java Spring引导循环依赖于一个环境   ssl证书无法通过Java和IntelliJ连接到SOAP服务   带整数验证的Java扫描器   java在Flex中呈现具有动态列的datagrid   java Android:通过用户选择的选项将文件上载到服务器   子类中的java抛出错误、异常和运行时异常