Java 批量获取地址间距离工具(支持中转站)

该工具是基于高德地图API和Java语言开发的,可以快速获取多个地址间的距离信息,并且支持中转站计算。以下是使用该工具的详细步骤。

Java 批量获取地址间距离工具(支持中转站)攻略

该工具是基于高德地图API和Java语言开发的,可以快速获取多个地址间的距离信息,并且支持中转站计算。以下是使用该工具的详细步骤。

1. 获取高德地图API Key

首先需要到高德地图开发者平台注册一个开发者账号,并创建应用获取API Key。在创建应用时,需要注意选择正确的服务类型,本工具使用的是“WEB服务”,并开通“地图API-距离测量API”和“地图API-批量请求接口”两个服务。

2. 下载并配置工具

该工具的源码托管在GitHub上,可以通过以下链接下载:https://github.com/leowang721/batch-distance。下载完成后,将代码导入至Java开发环境(推荐使用IDEA),并将获取到的API Key配置在代码中。

private static final String AMAP_KEY = "your_amap_key"; // 将your_amap_key替换为你的API Key

3. 配置输入文件

在工具代码中,需要将输入文件的路径配置正确。输入文件是一个CSV格式的地址列表,每行一条记录,包含如下信息:

地址名称,所在城市,所属区县,所在省份,详细地址

其中,前四个字段用于进行地图API的地理编码,获取该地址的经纬度。详细地址字段可选,如果有该信息则可以增加地理编码的准确度。例如:

北京大学,北京市,海淀区,北京市,海淀区颐和园路5号北京大学

4. 执行工具

将工具代码执行即可生成输出文件,其中包含输入的地址间的距离信息。如果需要计算中转站,则需要在执行时传入中转站地址列表并进行相应的设置。例如:

List<List<Address>> allBatchAddresses = new ArrayList<>();
allBatchAddresses.add(batchAddresses1);
allBatchAddresses.add(batchAddresses2); // batchAddresses1和batchAddresses2是包含地址信息的List对象
double maxMiles = 30; // 最大里程为30公里
int maxCount = 4; // 最大站点数为4个
Map<String, Map<String, List<Address>>> results = BatchDistance.getDistanceBetweenBatches(addrsMap, allBatchAddresses, maxMiles, maxCount, AMAP_KEY);

示例1:计算两个城市之间的距离

输入文件如下:

北京市东城区故宫,北京市,东城区,北京市,北京市东城区景山前街4号故宫博物院
上海市黄浦区外滩,上海市,黄浦区,上海市,上海市黄浦区外滩

执行代码后,输出结果如下:

北京市东城区故宫 <==> 上海市黄浦区外滩: 1201.15 km

示例2:计算三个城市之间的距离(包含中转站计算)

输入文件如下:

北京市东城区故宫,北京市,东城区,北京市,北京市东城区景山前街4号故宫博物院
上海市黄浦区外滩,上海市,黄浦区,上海市,上海市黄浦区外滩
杭州市西湖区,杭州市,西湖区,浙江省,浙江省杭州市西湖区留下大道555号

中转站城市列表如下:

杭州滨江区

执行代码后,输出结果如下:

北京市东城区故宫 <==> 杭州滨江区 <==> 上海市黄浦区外滩: 2137.41 km
北京市东城区故宫 <==> 杭州市西湖区 <==> 上海市黄浦区外滩: 2397.03 km
上海市黄浦区外滩 <==> 杭州市西湖区 <==> 北京市东城区故宫: 2411.99 km

至此,Java 批量获取地址间距离工具(支持中转站)的攻略已经介绍完毕。

本文标题为:Java 批量获取地址间距离工具(支持中转站)

基础教程推荐