java根据经纬度获取该经纬度的地址(高德)

本文介绍如何使用Java集成高德地图API,通过经纬度坐标查询具体的地理位置信息,包括街道、城市等详细地址。
摘要由CSDN通过智能技术生成
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.URL;
public class AddressUntils {
    private final static Logger logger = LoggerFactory.getLogger(AddressUntils.class);
    public static void main(String[] args) {
        // lat 31.2990170   纬度
        //log 121.3466440    经度
        String add = AddressUntils.getAdd("121.3466440", "31.2990170");
        logger.info(add);

    }

    /**
     *根据经纬度获取省市区
     * @param log
     * @param lat
     * @return
     */
    public static String getAdd(String log, String lat ){
        //lat 小  log  大
        //参数解释: 纬度,经度 采用高德API可参考高德文档https://lbs.amap.com/
        String key = "4f979382885e4f573ba0fb1298eb7f13";
        String urlString = "https://restapi.amap.com/v3/geocode/regeo?location="+lat+","+log+"
Java中,你可以利用高德地图API来通过经纬度获取地址信息。首先,你需要在官网(https://lbs.amap.com/api)注册并获取高德地图的Key。然后,可以使用`AMapGeocoder`类进行逆地理编码操作。 以下是一个简单的示例: ```java import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.services.geocoding.GeocodeSearch; import com.amap.api.services.geocoding.GeocodeSearchResponse; import com.amap.api.services.geocoding.RegeocodeQuery; public class GeocodingExample { private static final String YOUR_AMAP_KEY = "your_amap_key_here"; public static void main(String[] args) { // 初始化定位客户端 AMapLocationClient locationClient = new AMapLocationClient(context); AMapLocationClientOption option = new AMapLocationClientOption(); // 设置定位超时时间 option.setLocateTimeout(1000 * 60); // 单位:毫秒,60秒 // 开启高精度定位 option.setIsNeedAddress(true); option.setNeedLocationDescribe(true); locationClient.setLocationOption(option); RegeocodeQuery query = new RegeocodeQuery(); // 创建逆地理编码查询对象 query.setAddress("经度,纬度"); // 给定经纬度 query.setCitycode("城市码"); // 如果需要指定城市,默认值为当前城市 GeocodeSearch geocodeSearch = new GeocodeSearch(context, YOUR_AMAP_KEY); geocodeSearch.setOnGetRegeocodeResultListener(new GeocodeSearch.OnGetRegeocodeResultListener() { @Override public void onGetRegeocodeResult(GeocodeSearchResponse response) { if (response != null && response.regeocode != null) { AMapGeoPoint point = response.regeocode.result.getGeometry().getPoint(); String address = response.regeocode.addressComponent.getStreetName(); System.out.println("地理位置:" + point + ", 地址:" + address); } else { System.out.println("未找到结果"); } } @Override public void onGetError(int errorType) { System.out.println("获取地点失败,错误码:" + errorType); } }); // 发起逆地理编码请求 geocodeSearch.search(query); } } ``` 在这个例子中,你需要替换`YOUR_AMAP_KEY`为你实际的API Key,并根据需求调整经纬度、城市码等参数。运行此代码后,它会返回给定经纬度对应的详细地址
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值