记一次Scala调用公接口入参经纬度来获得中文位置信息

  1. pom文件加入依赖
 <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
  1. 上代码
package BigData

import java.util
import com.alibaba.fastjson.JSON
import org.apache.http.NameValuePair
import org.apache.http.client.config.RequestConfig
import org.apache.http.client.methods.HttpGet
import org.apache.http.client.utils.URIBuilder
import org.apache.http.conn.ConnectTimeoutException
import org.apache.http.impl.client.HttpClients
import org.apache.http.message.BasicNameValuePair
import org.apache.http.util.EntityUtils

object GetLocationByLatLng {

  private val HOSTARR = "http://restapi.amap.com/v3/geocode/regeo"
  private val HOST = "https://restapi.amap.com/v3/distance"
  // private static final String HOST = "http://122.114.79.163:7770/v3/distance";
  private val KEY = "761e73b6188fb868feee5b558dcbcd7a"


  def main(args: Array[String]): Unit = {

    /**
     * @param :通过请求发送经纬度
     * @return: 具体位置信息
     */

   println(getLocationAddr("106.87361370672,27.59869455045"))

  }


  def getLocationAddr(location: String): String = {
    val list = new util.LinkedList[NameValuePair]
    list.add(new BasicNameValuePair("key", KEY))
    list.add(new BasicNameValuePair("output", "JSON"))
    list.add(new BasicNameValuePair("location", location))
    var responseEntity = ""
    var addr = ""
    try {
      val httpGet = new HttpGet(new URIBuilder(HOSTARR).setParameters(list).build)
      httpGet.setConfig(RequestConfig.custom.setConnectTimeout(2000).build)
      val response = HttpClients.createDefault.execute(httpGet)
      responseEntity = EntityUtils.toString(response.getEntity, "UTF-8")
      val jsonObject = JSON.parseObject(responseEntity)
      addr = jsonObject.getJSONObject("regeocode").getJSONObject("addressComponent").getJSONObject("building").getString("name")
      if (addr == "[]") {
        addr = jsonObject.getJSONObject("regeocode").getString("formatted_address")
      }
    } catch {
      case e: Exception =>
        if (e.isInstanceOf[ConnectTimeoutException]) System.out.println("-------请求超时-------")
        else e.printStackTrace()
    }
    addr
  }

}

本文参考文章地址 :https://www.cnblogs.com/baihaojie/p/10218934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值