Java SDK
This topic describes how to call the Java SDK and provides examples.
Get the SDK
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-address-purification -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-address-purification</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>Configure environment variables
The Alibaba Cloud software development kit (SDK) reads the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables to create a default access credential. When you call an API, the program uses this credential to automatically authenticate your request.
An AccessKey for an Alibaba Cloud account has permissions to access all APIs. To prevent your AccessKey from being compromised, use a Resource Access Management (RAM) user for API calls and daily O&M.
Configuration methods
Configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
Configuration method for Linux and macOS
Run the following commands:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Replace
<access_key_id>with your AccessKey ID and<access_key_secret>with your AccessKey secret.Windows system configuration method
Create the
ALIBABA_CLOUD_ACCESS_KEY_IDandALIBABA_CLOUD_ACCESS_KEY_SECRETenvironment variables. Set their values to your AccessKey ID and AccessKey secret.Restart your Windows system.
Address extraction
Request example
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ExtractAddressRequest;
import com.aliyuncs.address_purification.model.v20191118.ExtractAddressResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address extraction service call
*/
public class TestExtractAddress {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
ExtractAddressRequest request = new ExtractAddressRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
ExtractAddressResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}Response example
{
"location_extract":[
{
"start":0,
"end":11,
"type":"LOC",
"word":"No. 969, Wenyi West Road, Hangzhou City"
}
],
"status":"OK",
"time_used":{
"rt":{
"location_extract":0.006271839141845703
},
"start":1668996923.173309
}
}Name extraction
Request example
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ExtractNameRequest;
import com.aliyuncs.address_purification.model.v20191118.ExtractNameResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Name extraction service test
*/
public class TestExtractName {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
ExtractNameRequest request = new ExtractNameRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("Zhang San is at No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
ExtractNameResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Response example
{
"person_extract":[
{
"start":0,
"end":2,
"type":"PER",
"word":"Zhang San"
}
],
"status":"OK",
"time_used":{
"rt":{
"person_extract":0.006590843200683594
},
"start":1668998070.0616143
}
}Phone number extraction
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ExtractPhoneRequest;
import com.aliyuncs.address_purification.model.v20191118.ExtractPhoneResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Phone number extraction service test
*/
public class TestExtractPhone {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
ExtractPhoneRequest request = new ExtractPhoneRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("181****1111 No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
ExtractPhoneResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"phone_extract":[
{
"start":0,
"end":11,
"type":"TEL",
"word":"181****1111"
}
],
"status":"OK",
"time_used":{
"rt":{
"phone_extract":0.0076787471771240234
},
"start":1668998324.7981062
}
}Administrative division parsing
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetAddressDivisionCodeRequest;
import com.aliyuncs.address_purification.model.v20191118.GetAddressDivisionCodeResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Administrative division parsing service test
*/
public class TestGetAddressDivisionCode {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetAddressDivisionCodeRequest request = new GetAddressDivisionCodeRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetAddressDivisionCodeResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"division_info":{
"divcode":"330110005000",
"division_name":"Zhejiang Province;Hangzhou City;Yuhang District;Wuchang Subdistrict"
},
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.018784761428833008,
"division_info":0.005293130874633789,
"segment":0.0003788471221923828,
"address_correct":0.003320932388305664,
"complete":0.00012564659118652344,
"address_search":0.19436097145080566,
"structure":0.00008368492126464844
},
"start":1668998510.5782871
}
}Postal code recognition
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetZipcodeRequest;
import com.aliyuncs.address_purification.model.v20191118.GetZipcodeResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Postal code recognition service test
*/
public class TestGetZipcode {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetZipcodeRequest request = new GetZipcodeRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("18111111111 No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetZipcodeResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"zipcode":"311100",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.018795490264892578,
"zipcode":0.004938602447509766,
"segment":0.0003688335418701172,
"address_correct":0.003262042999267578,
"complete":0.00015592575073242188,
"address_search":0.19379043579101562,
"structure":0.00008320808410644531
},
"start":1668998734.559096
}
}Address completion
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.CompleteAddressRequest;
import com.aliyuncs.address_purification.model.v20191118.CompleteAddressResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address completion service test
*/
public class TestCompleteAddress {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
CompleteAddressRequest request = new CompleteAddressRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
CompleteAddressResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Sample response
{
"complete":"prov=Zhejiang Province\tcity=Hangzhou City\tdistrict=Yuhang District\ttown=Wuchang Subdistrict\troad=Wenyi West Road\troads=Wenyi West Road\troadno=No. 969\tdetail=road:Wenyi West Road, roadno:No. 969",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.01125478744506836,
"segment":0.0003504753112792969,
"address_correct":0.0029888153076171875,
"complete":0.00012612342834472656,
"address_search":0.12113261222839355,
"structure":0.00007939338684082031
},
"start":1668998918.8117056
}
}Address correction
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.CorrectAddressRequest;
import com.aliyuncs.address_purification.model.v20191118.CorrectAddressResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address correction service test
*/
public class TestCorrectAddress {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
CorrectAddressRequest request = new CorrectAddressRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
CorrectAddressResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"address_correct":[
"Hangzhou City=city\tWenyi West Road=road\tNo. 969=roadno"
],
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.009434223175048828,
"segment":0.00030493736267089844,
"address_correct":0.0020487308502197266
},
"start":1668999096.2482975
}
}Address structuring
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.StructureAddressRequest;
import com.aliyuncs.address_purification.model.v20191118.StructureAddressResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address structuring service test
*/
public class TestStructureAddress {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
StructureAddressRequest request = new StructureAddressRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("18111111111 No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
StructureAddressResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Sample response
{
"structure":"prov=Zhejiang Province\tcity=Hangzhou City\tdistrict=Yuhang District\troad=Wenyi West Road\troads=Wenyi West Road\troadno=No. 969\tdetail=redundant:1, redundant:8, redundant:1, redundant:1, redundant:1, redundant:1, redundant:1, redundant:1, redundant:1, redundant:1, redundant:1, road:Wenyi West Road, roadno:No. 969",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.016843318939208984,
"structure":0.00007843971252441406
},
"start":1668999415.143025
}
}Multi-address similarity comparison
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetAddressSimilarityRequest;
import com.aliyuncs.address_purification.model.v20191118.GetAddressSimilarityResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
*
* @author shuaicheng
* Multi-address similarity comparison service test
*/
public class TestGetAddressSimilarity {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetAddressSimilarityRequest request = new GetAddressSimilarityRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("Alibaba Xixi Campus, Hangzhou City;Building 1, No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetAddressSimilarityResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"sim_level":{
"level":"none",
"address_a":"Alibaba Xixi Campus, Hangzhou City",
"address_b":"Building 1, No. 969, Wenyi West Road, Hangzhou City",
"is_same":false,
"same_info":"prov=Zhejiang Province city=Hangzhou City district=Yuhang District town=Wuchang Subdistrict road=North Side Road poi=Alibaba Xixi Campus"
},
"status":"OK",
"time_used":{
"rt":{
"sim_level":0.3559575080871582
},
"start":1668999813.793649
}
}Logistics waybill information extraction
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ExtractExpressRequest;
import com.aliyuncs.address_purification.model.v20191118.ExtractExpressResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Logistics waybill information extraction service test
*/
public class TestExtractExpress {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
ExtractExpressRequest request = new ExtractExpressRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("Zhang San is at No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
ExtractExpressResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Sample response
{
"express_extract":{
"house_info":"",
"poi_info":"No. 969, Wenyi West Road",
"town":"Wuchang Subdistrict",
"city":"Hangzhou City",
"district":"Yuhang District",
"tel":"",
"addr_info":"No. 969, Wenyi West Road",
"per":"Zhang San",
"prov":"Zhejiang Province"
},
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.014468908309936523,
"segment":0.0004544258117675781,
"address_correct":0.003080606460571289,
"complete":0.00012683868408203125,
"express_extract":0.00001430511474609375,
"address_search":0.12194633483886719,
"structure":0.00008344650268554688
},
"start":1669000064.1784253
}
}Address type recognition
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ClassifyPOIRequest;
import com.aliyuncs.address_purification.model.v20191118.ClassifyPOIResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address type recognition service test
*/
public class TestClassifyPOI {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
ClassifyPOIRequest request = new ClassifyPOIRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
ClassifyPOIResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"poi_category":"Business and residential#Industrial park#Industrial park",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.00995016098022461,
"segment":0.0003726482391357422,
"poi_category":0.08538699150085449,
"address_correct":0.002130270004272461,
"complete":0.000118255615234375,
"poi_predict":0.009357452392578125,
"address_search":0.10561966896057129,
"structure":0.00007843971252441406
},
"start":1669000261.1281157
}
}POI prediction
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.PredictPOIRequest;
import com.aliyuncs.address_purification.model.v20191118.PredictPOIResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* POI prediction service test
*/
public class TestPredictPOI {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
PredictPOIRequest request = new PredictPOIRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("18111111111 No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
PredictPOIResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"poi_predict":"Alibaba Xixi Campus;Alibaba Xixi Qinchengli;Xixi YUE City",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.019006729125976562,
"segment":0.0003688335418701172,
"address_correct":0.0032453536987304688,
"complete":0.0001442432403564453,
"poi_predict":0.009587526321411133,
"address_search":0.14672160148620605,
"structure":0.00008487701416015625
},
"start":1669000421.0329113
}
}Coordinate system transformation
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.TransferCoordRequest;
import com.aliyuncs.address_purification.model.v20191118.TransferCoordResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Coordinate system transformation service test
*/
public class TestTransferCoord {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
TransferCoordRequest request = new TransferCoordRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("120.026268,30.279164");
request.setSrcCoord("gcj02");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
TransferCoordResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"coord_transfer":{
"BD09":"120.032768,30.285238",
"CGCS2000":"120.021519,30.281543",
"WGS84":"120.021519,30.281543",
"GCJ02":"120.026268,30.279164"
},
"status":"OK",
"time_used":{
"rt":{
"coord_transfer":0.0018019676208496094
},
"start":1669000765.048758
}
}General geocoding (POI level)
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetAddressGeocodeRequest;
import com.aliyuncs.address_purification.model.v20191118.GetAddressGeocodeResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* General geocoding (POI level) service test
*/
public class TestGetAddressGeocode {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetAddressGeocodeRequest request = new GetAddressGeocodeRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("Alibaba Xixi Campus, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetAddressGeocodeResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"offline_geocode":{
"wgs84":"120.02099798073618,30.281364166381348",
"level":"roadno",
"gcj02":"120.025746,30.278984"
},
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.025951385498046875,
"div_search":0.00095367431640625,
"segment":0.0003399848937988281,
"geocode":0.0001289844512939453,
"address_correct":0.0031554698944091797,
"address_search":0.14507341384887695,
"structure":0.00008082389831542969
},
"start":1669000942.9456813
}
}Address anomaly detection
Example request
package com.alibaba.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* New - Address anomaly detection service test
*/
public class TestAddressAssessment {
public static void main(String[] args) {
DefaultProfile defaultProfile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(defaultProfile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("AddressAssessment");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
//Set the request parameters.
request.putBodyParameter("Text", "Alibaba Xixi Campus");
request.putBodyParameter("DefaultCity", "Hangzhou City");
request.putQueryParameter("AcceptLanguage", "zh-CN");
try {
CommonResponse response = client.getCommonResponse(request);
String data = response.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject data1 = jsonObject.getJSONObject("Data");
System.out.println(data1);
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}Sample response
{
"address_assessment":{
"error_code":"0102050204000000",
"error_content":[
"Information is missing but does not affect comprehension",
"Partial district/county-level administrative division is missing (cannot be completed)",
"Road name is missing",
"Administrative village is missing"
]
},
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.012493610382080078,
"address_assessment":0.16082525253295898,
"structure":0.00007700920104980469
},
"start":1680762367.9748535
}
}Address search
Example request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetAddressSearchRequest;
import com.aliyuncs.address_purification.model.v20191118.GetAddressSearchResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address search service test
*/
public class TestGetAddressSearch {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetAddressSearchRequest request = new GetAddressSearchRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("18111111111 No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetAddressSearchResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Example response
{
"address_search":[
{
"address":"No. 969, Wenyi West Road",
"name":"Alibaba Xixi Campus Area A",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A"
},
{
"address":"1st Floor, Alibaba Xixi Qinchengli, No. 969, Wenyi West Road",
"name":"FlyZoo Hotel",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 FlyZoo Hotel"
},
{
"address":"No. 969, Wenyi West Road, Alibaba Xixi Campus Area A",
"name":"Alibaba Xixi Campus Area A (Gate A5)",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A (Gate A5)"
},
{
"address":"No. 969, Wenyi West Road, Alibaba Xixi Campus Area A",
"name":"Alibaba Xixi Campus Area A (Gate A3)",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A (Gate A3)"
},
{
"address":"No. 969, Wenyi West Road, Alibaba Xixi Campus Area A",
"name":"Alibaba Xixi Campus Area A (Gate A6)",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A (Gate A6)"
}
],
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.01730632781982422,
"segment":0.00045418739318847656,
"address_correct":0.0021839141845703125,
"address_search":0.13813257217407227,
"structure":0.00008058547973632812
},
"start":1669001326.1229222
}
}Address autocompletion
Sample request
package com.alibaba.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.GetInputSearchRequest;
import com.aliyuncs.address_purification.model.v20191118.GetInputSearchResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author shuaicheng
* Address autocompletion service test
*/
public class TestGetInputSearch {
public static void main(String[] args) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
GetInputSearchRequest request = new GetInputSearchRequest();
request.setAppKey("<your-app-key>");
request.setServiceCode("addrp");
request.setText("Alibaba Xixi Campus, Hangzhou City;Building 1, No. 969, Wenyi West Road, Hangzhou City");
request.setDefaultProvince("Zhejiang Province");
request.setDefaultCity("Hangzhou City");
request.setDefaultDistrict("Yuhang District");
GetInputSearchResponse response = client.getAcsResponse(request);
System.out.println(response.getData());
}
}
Sample response
{
"input_search":[
"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A",
"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Building A5 Alibaba Xixi Campus Area A (Area A Visitor Center)",
"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A (Gate A5)",
"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A (Gate A3)",
"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road Alibaba Xixi Campus (Bus Stop)"
],
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.02606368064880371,
"input_search":0.23061370849609375,
"structure":0.00008249282836914062
},
"start":1669001660.1672509
}
}Street address standardization
Example request
package com.alibaba.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* Street address standardization service test
*/
public class TestStreetStd {
public static void main(String[] args) {
DefaultProfile defaultProfile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(defaultProfile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("StreetStd");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
//Set the request parameters.
request.putBodyParameter("Text", "No. 969, Wenyi West Road, Hangzhou City");
request.putBodyParameter("DefaultCity", "Hangzhou City");
request.putQueryParameter("AcceptLanguage", "zh-CN");
try {
CommonResponse response = client.getCommonResponse(request);
String data = response.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject data1 = jsonObject.getJSONObject("Data");
System.out.println(data1);
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Example response
{
"street_std":"prov=Zhejiang Province\tcity=Hangzhou City\tdistrict=Yuhang District\ttown=Wuchang Subdistrict\troad=Wenyi West Road\troadno=No. 969",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.010355472564697266,
"street_std":0.0001628398895263672,
"segment":0.0003783702850341797,
"address_correct":0.0030519962310791016,
"address_search":0.12972450256347656,
"structure":0.000080108642578125
},
"start":1675067580.6475735
}
}Voice address recognition
Sample request
package com.alibaba.demo;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* Voice address recognition service test
*/
public class TestInputAsrAddress {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("InputAsrAddress");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
request.putQueryParameter("AcceptLanguage", "zh-CN");
request.setHttpContentType(FormatType.FORM);
try {
request.putBodyParameter("Text", "Have not been to Wuhan, have not been in contact with anyone returning from Wuhan, currently at home in Yuanding Village, Longzhen, Pingchang Town, have not gone out, in good health");
long t1 = System.currentTimeMillis();
CommonResponse response = client.getCommonResponse(request);
long t2 = System.currentTimeMillis();
System.out.println(response.getData());
}
catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
System.out.println(e.getErrCode());
System.out.println(e.getErrMsg());
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
Sample response
{
"RequestId": "F72EC1D4-CE9E-119B-B58A-66E59B2C40CC",
"Data": "{\"asr_address_input\":{\"house_info\":\"\",\"struct\":\"prov=Hubei Province\\tcity=Wuhan City\\tcommunity=Yuanding Village\\tpoi=at home, have not gone out\",\"poi_info\":\"Yuanding Village, at home, have not gone out\",\"town\":\"\",\"city\":\"Wuhan City\",\"district\":\"\",\"addr_info\":\"Yuanding Village, at home, have not gone out\",\"prov\":\"Hubei Province\"},\"status\":\"OK\",\"time_used\":{\"rt\":{\"asr_address_input\":0.1976015567779541},\"start\":1676018776.1014452}}"
}Multi-source address unification
Example request
package com.alibaba.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* Multi-source address unification service test
*/
public class TestOneIdAddress {
public static void main(String[] args) {
DefaultProfile defaultProfile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(defaultProfile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("OneIdAddress");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
//Set the request parameters.
request.putBodyParameter("Text", "Yienbei, Unit 1, No. 37, Hithink Royal-land Sci-tech Park (Wenyi West Road)");
request.putBodyParameter("DefaultCity", "Hangzhou City");
request.putQueryParameter("AcceptLanguage", "zh-CN");
try {
CommonResponse response = client.getCommonResponse(request);
String data = response.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject data1 = jsonObject.getJSONObject("Data");
System.out.println(data1);
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Sample response
{
"online_address_unify":"a578b39633726c377ea18de669b3efe7",
"status":"OK",
"time_used":{
"rt":{
"basic_chunking":0.06006503105163574,
"online_address_unify":0.3345825672149658,
"segment":0.00047278404235839844,
"address_correct":0.003100156784057617,
"address_search":0.12077140808105469,
"structure":0.00008606910705566406
},
"start":1675070211.2347264
}
}Conversational address inference
Example request
package com.alibaba.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* Conversational address inference service test
*/
public class TestAddressInference {
public static void main(String[] args) {
DefaultProfile defaultProfile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(defaultProfile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("AddressInference");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
//Set the request parameters.
request.putBodyParameter("Text", "I was hit by a car at the entrance of Alibaba, the one in Binjiang District");
request.putBodyParameter("DefaultCity", "Hangzhou City");
request.putQueryParameter("AcceptLanguage", "zh-CN");
try {
CommonResponse response = client.getCommonResponse(request);
String data = response.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject data1 = jsonObject.getJSONObject("Data");
System.out.println(data1);
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Example response
{
"address_inference":[
{
"address":"No. 699, Wangshang Road",
"divcode":"330108",
"name":"Alibaba Binjiang Campus",
"id":"B0FFG083SL",
"lxly":"30.1896,120.190371",
"std_addr":"Zhejiang Province Hangzhou City Binjiang District Changhe Subdistrict Wangshang Road No. 699 Alibaba Binjiang Campus"
},
{
"address":"No. 969, Wenyi West Road",
"divcode":"330110",
"name":"Alibaba Xixi Campus Area A",
"id":"B023B1D4BX",
"lxly":"30.278984,120.025746",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Wenyi West Road No. 969 Alibaba Xixi Campus Area A"
},
{
"address":"Xiwang Road",
"divcode":"330110",
"name":"Alibaba Xixi Campus Area B",
"id":"B0FFGUEOJ9",
"lxly":"30.275962,120.027276",
"std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict Xiwang Road Alibaba Xixi Campus Area B"
}
],
"status":"OK",
"time_used":{
"rt":{
"dialog_extract":0.0078012943267822266,
"address_inference":3.235727548599243
},
"start":1675070387.20365
}
}High-precision geocoding (building level)
Example request
package com.alibaba.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.address_purification.model.v20191118.ExtractPhoneRequest;
import com.aliyuncs.address_purification.model.v20191118.ExtractPhoneResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
/**
* @author shuaicheng
* High-precision geocoding (building level) service test
*/
public class TestHpGeocode {
public static void main(String[] args) throws ClientException {
DefaultProfile defaultProfile = DefaultProfile.getProfile(
"cn-hangzhou",
// Do not hard-code your AccessKey ID and AccessKey secret in your project code. Leaking your AccessKey pair threatens the security of all resources in your account.
// This example shows how to store the AccessKey ID and AccessKey secret in environment variables. Before you run this code, configure the environment variables.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(defaultProfile);
// Create an API request and set the parameters.
CommonRequest request = new CommonRequest();
request.setSysDomain("address-purification.cn-hangzhou.aliyuncs.com");
request.setSysVersion("2019-11-18");
request.setSysProduct("address-purification");
request.setSysLocationProduct("addrp");
//Set the service to be requested.
request.setSysAction("HpGeocode");
//Set the request method.
request.setSysMethod(MethodType.POST);
request.setHttpContentType(FormatType.FORM);
//Request header
request.putHeadParameter("x-acs-signature-method", "HMAC-SHA1");
request.putHeadParameter("x-acs-signature-nonce", UUID.randomUUID().toString());
//Set the project token.
request.putBodyParameter("AppKey", "<your-app-key>");
//Set the request parameters.
request.putBodyParameter("Text", "Alibaba Xixi Campus Area A, Hangzhou City");
request.putBodyParameter("DefaultCity", "Hangzhou City");
request.putQueryParameter("AcceptLanguage", "zh-CN");
try {
CommonResponse response = client.getCommonResponse(request);
String data = response.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject data1 = jsonObject.getJSONObject("Data");
System.out.println(data1);
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Sample response
{
"hpgeocode":{
"level":"subpoi",
"gcj02":"120.025746,30.278984"
},
"status":"OK",
"time_used":{
"rt":{
"hpgeocode":0.4139995574951172
},
"start":1675070463.4350975
}
}