如何在 Java 中验证街道地址并对其进行地理编码

本文介绍了如何使用Cloudmersive提供的API来处理和验证位置信息,包括地址解析、地址有效性检查、规范化地址和地理编码,帮助企业确保位置数据的准确性,减少运营误差。
摘要由CSDN通过智能技术生成

使用定位服务时,请务必确保收集的信息对用户或客户准确无误。这将防止在运输、计费和依赖正确位置信息的操作的许多其他方面出现任何错误。对于使用位置服务的应用程序的企业来说,这一点尤为重要,因为任何不正确的数据都可能意味着商品的流离失所或服务中断。

以下 API 将允许您通过首先解析地址数据输入,然后验证和规范化信息来完全验证街道地址。最后两个 API 还允许您对地址进行地理编码和反向地理编码,以便为您的应用程序接收更准确的位置数据。

要使用这些 API 中的任何一个,您首先需要使用 Maven 或 Gradle 安装 SDK 库。要使用 Maven 进行安装,请在 pom.xml 中添加对存储库的 Jitpack 引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

然后,您可以添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.54</version>
</dependency>
</dependencies>

要使用 Gradle 进行安装,请在仓库末尾添加对根 build.gradle 的引用:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,您可以在 build.gradle 中添加依赖项:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v3.54'
}

第一个 API 将允许您将非结构化输入地址解析为国际标准化地址。当通过电子邮件或其他未格式化的信件接收信息时,这特别有用。通过使用此功能,您可以获取共享地址,并确保其格式正确,并且在存储或使用之前信息准确无误。

要运行 API,请如上所示安装 SDK 库,并将导入添加到文件顶部。然后,您可以调用该函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
AddressApi apiInstance = new AddressApi();
ParseAddressRequest input = new ParseAddressRequest(); // ParseAddressRequest | Input parse request
try {
    ParseAddressResponse result = apiInstance.addressParseString(input);
   System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AddressApi#addressParseString");
    e.printStackTrace();
}

这将返回一个响应,说明函数是否成功,以及建筑物、街道号、街道、城市、州或省、邮政编码和国家/地区名称以及 ISO 代码。若要确保此 API 正常工作,需要确保满足某些要求:

正确输入地址和大小写模式。
您已输入 API 密钥。这可以在 Cloudmersive 网站上免费检索,在我们的 API 库中提供每月 800 次调用。
第二个 API 将验证输入地址是否有效。这对于收集用户信息的组织很重要,因为不正确的地址信息会导致物品和服务放错位置。此函数的输入应包括街道地址、城市、州或省、邮政编码以及国家/地区名称和代码。像以前一样,安装 SDK 库并将导入添加到文件顶部。然后,调用该函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
AddressApi apiInstance = new AddressApi();
ValidateAddressRequest input = new ValidateAddressRequest(); // ValidateAddressRequest | Input parse request
try {
    ValidateAddressResponse result = apiInstance.addressValidateAddress(input);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AddressApi#addressValidateAddress");
    e.printStackTrace();
}

这将返回一个响应,说明地址是否有效,以及其纬度和经度。

如果您需要检索前两个函数之外的街道地址的更多数据,则可以使用下一个 API 对街道地址进行规范化,这将返回所有相关信息。您将使用与上一示例中描述的相同的输入信息:街道地址、城市、州或省、邮政编码以及国家/地区名称和代码。安装 SDK,将导入添加到文件顶部,调用函数如下图所示:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
AddressApi apiInstance = new AddressApi();
ValidateAddressRequest input = new ValidateAddressRequest(); // ValidateAddressRequest | Input parse request
try {
    NormalizeAddressResponse result = apiInstance.addressNormalizeAddress(input);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AddressApi#addressNormalizeAddress");
    e.printStackTrace();
}

除了地址验证之外,您还可以执行地理编码,这将获取地址的文本字符串输入并返回其位置(即纬度和经度)的地理信息。这将提供准确的位置数据,这对于定位器、送货和拼车平台等电话应用程序以及许多其他应用程序非常有用。如需运行 API,请安装 SDK 并调用函数,如下所示:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
AddressApi apiInstance = new AddressApi();
ValidateAddressRequest input = new ValidateAddressRequest(); // ValidateAddressRequest | Input parse request
try {
    ValidateAddressResponse result = apiInstance.addressGeocode(input);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AddressApi#addressGeocode");
    e.printStackTrace();
}

您还可以使用此最终 API 执行此操作的反向操作。反向地理编码将采用纬度和经度对,并返回该位置的街道地址。对于在地图上查找和突出显示位置的应用程序,这对于识别建筑物和其他地标以及为用户提供一种将其当前位置用作位置选项的方法非常有用。通过调用以下函数安装 SDK 并使用此 API:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
AddressApi apiInstance = new AddressApi();
ReverseGeocodeAddressRequest input = new ReverseGeocodeAddressRequest(); // ReverseGeocodeAddressRequest | Input reverse geocoding request
try {
    ReverseGeocodeAddressResponse result = apiInstance.addressReverseGeocodeAddress(input);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AddressApi#addressReverseGeocodeAddress");
    e.printStackTrace();
}

这将返回该位置的街道地址、城市、州或省、邮政编码以及国家/地区名称和代码。

有了这些,您可以确保拥有准确的位置信息,无论是针对您的用户还是您的服务。如果您对使用这些 API 有任何疑问或对其他 API 解决方案有任何疑问,您可以访问 Cloudmersive 网站,我们的团队很乐意为您提供任何帮助。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值