zoukankan      html  css  js  c++  java
  • 调用高德地图,通过获取的区域名称得到行政区域详情

    一、pom文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.java.gaode.GaoDeDemo</groupId>
    <artifactId>GaoDeDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
    <dependency>
    <groupId>com.google.collections</groupId>
    <artifactId>google-collections</artifactId>
    <version>1.0</version>
    </dependency>
    <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>20.0</version>
    </dependency>
    <dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
    </dependency>
    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.8.1</version>
    </dependency>
    <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.9</version>
    </dependency>
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.31</version>
    </dependency>
    <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.19.1</version>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.28</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.1.10.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.10.RELEASE</version>
    </dependency>
    </dependencies>
    </project>
    二、HttpClientUtil工具类
    package com.java.gaode;
    /**
    * @ClassName: HttpClientUtil
    * @Description:
    * @Version: v1.0.0
    * @Author: Fu Hao
    * @Date: 2019/10/22 0022 下午 9:32
    * Modification History:
    * Date Author Version Description
    * -------------------------------------------------------------
    * 2019/10/22 0022 Fu Hao v1.0.0 创建
    */
    import com.alibaba.fastjson.JSONObject;
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.WebResource;
    import com.sun.jersey.core.util.MultivaluedMapImpl;
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Controller;
    import org.springframework.util.StringUtils;

    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.MultivaluedMap;
    import java.io.IOException;
    import java.net.URI;
    import java.util.*;

    /**
    * @author
    * @Description 请求工具类(HttpClient
    * @date 2018/11/16 10:09
    */
    @Controller
    public class HttpClientUtil {

    private static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);

    /**
    * @Description 发送get请求(带参数)
    * @author HeLiu
    * @date 2018/11/16 11:02
    */
    public static String doGet(String url, Map<String, Object> params) {
    if (!StringUtils.hasText(url)) {
    return "";
    }
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
    try {
    if (params != null && !params.isEmpty()) {
    List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
    for (String key : params.keySet()) {
    pairs.add(new BasicNameValuePair(key, params.get(key).toString()));
    }
    url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, "UTF-8"));
    }
    HttpGet httpGet = new HttpGet(url);
    CloseableHttpResponse response = closeableHttpClient.execute(httpGet);
    HttpEntity entity = response.getEntity();
    // 判断响应实体是否为空
    if (entity != null) {
    return EntityUtils.toString(entity, "UTF-8");
    } else {
    return null;
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    // 关闭流并释放资源
    closeableHttpClient.close();
    } catch (IOException e) {
    logger.error(e.toString());
    }
    }
    return null;
    }

    /**
    * @Description 发送post请求(带参数)
    * @author HeLiu
    * @date 2018/11/16 11:02
    */
    public static Map doPost(String url, Map<String, Object> param) {
    try {
    Client client = Client.create();
    URI u = new URI(url);
    WebResource resource = client.resource(u);
    MultivaluedMap<String, String> params = new MultivaluedMapImpl();

    Iterator i$ = param.entrySet().iterator();
    while (i$.hasNext()) {
    Map.Entry<String, List<String>> e = (Map.Entry) i$.next();
    params.add(e.getKey(), String.valueOf(e.getValue()));
    }

    logger.info("查询参数:" + params.toString());
    String result = resource.type(MediaType.APPLICATION_FORM_URLENCODED).post(String.class, params);

    logger.info("url = :{},返回结果:{}", url, result);
    JSONObject jasonObject = JSONObject.parseObject(result);
    return (Map) jasonObject;

    } catch (Exception e) {
    logger.error("..........", e);
    }
    return null;
    }

    }

    三、测试
    package com.java.gaode;

    import com.alibaba.fastjson.JSONObject;

    import java.util.HashMap;
    import java.util.Map;

    /**
    * gaode包里的两个方法是根据传来的值查询下一级行政区域的目录详情
    * @ClassName: GaoTest
    * @Description:
    * @Version: v1.0.0
    * @Author: Fu Hao
    * @Date: 2019/10/22 0022 下午 9:30
    * Modification History:
    * Date Author Version Description
    * -------------------------------------------------------------
    * 2019/10/22 0022 Fu Hao v1.0.0 创建
    */
    public class GaoTest {
    public static void main(String[] args) {
    String keyName = "中国";//这里是key名称
    String keyCode = "高德官网申请";//这个是秘钥
    String admAddress = "https://restapi.amap.com/v3/config/district";
    Map<String, Object> params = new HashMap<>();

    params.put("key", keyCode);
    params.put("keywords", keyName);
    params.put("subdistrict", 1);
    params.put("extensions", "base");
    String result = HttpClientUtil.doGet(admAddress, params);
    System.out.println(JSONObject.parse(result));
    }
    }


  • 相关阅读:
    颠覆想象的php解析获取跨域HTML标签
    Win7承载网络配置——让你的手机无线上网吧
    Joomla!备忘手记
    jQuery+PHP+MySQL简单无限级联实现
    js 功能函数集
    PHP POST数据至远程服务器获取信息
    js生成迅雷地址
    强大的jQuery选择器之选定连续多行
    札记 PHP/JS/jQuery/MySQL/CSS/正则/Apache
    php数组一对一替换
  • 原文地址:https://www.cnblogs.com/xiaoshenke/p/11726217.html
Copyright © 2011-2022 走看看