java根据经纬度获取该经纬度的省市区,暂不可用!

 目前此方法暂不可用!之前此方法可用,现在不可用了,阿里云服务停了,请大家先去参考下其他案例,不好意思!

 目前此方法暂不可用!之前此方法可用,现在不可用了,阿里云服务停了,请大家先去参考下其他案例,不好意思!

 目前此方法暂不可用!之前此方法可用,现在不可用了,阿里云服务停了,请大家先去参考下其他案例,不好意思!

import java.net.URL;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class GetLocation {  
    public static void main(String[] args) {  
        // lat 31.2990170   纬度    
        //log 121.3466440    经度
        String add = getAdd("121.3466440", "31.2990170");  
        JSONObject jsonObject = JSONObject.fromObject(add);  
        JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString("addrList"));  
        JSONObject j_2 = JSONObject.fromObject(jsonArray.get(0));  
        String allAdd = j_2.getString("admName");  
        String arr[] = allAdd.split(",");  
        System.out.println("省:"+arr[0]+"\n市:"+arr[1]+"\n区:"+arr[2]);  
    }  
      
    public static 
### Java 实现根据经纬度获取省市区 Code 为了实现基于经纬度获取省市区代码的功能,可以利用百度地图 API 的逆地理编码服务。该功能通过 HTTP 请求发送给定的经纬度坐标,并接收返回的结果解析出所需的行政区划代码。 #### 使用百度地图API进行逆地理编码 ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class LocationToCode { private static final String AK = "您的AK"; // 替换成自己的百度开发者密钥 public static void main(String[] args) { try { double latitude = 31.225696563611; // 经纬度示例数据 double longitude = 121.49884033194; StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append("http://api.map.baidu.com/reverse_geocoding/v3/") .append("?ak=").append(AK) .append("&output=json") .append("&coordtype=wgs84ll") .append("&location=").append(latitude).append(",").append(longitude); URL url = new URL(urlBuilder.toString()); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder result = new StringBuilder(); while ((line = reader.readLine()) != null){ result.append(line); } System.out.println(result); // 输出JSON格式的结果 // 解析 JSON 数据以提取所需字段 parseJsonForAdcode(result.toString()); } catch(Exception e) { e.printStackTrace(); } } /** * 解析从百度地图API获得的数据来得到省市区对应的adcode. */ private static void parseJsonForAdcode(String jsonString) { org.json.JSONObject jsonObject = new org.json.JSONObject(jsonString); if(jsonObject.has("result")) { org.json.JSONObject resultObject = jsonObject.getJSONObject("result"); if(resultObject.has("addressComponent")) { org.json.JSONObject addressComponent = resultObject.getJSONObject("addressComponent"); int provinceCode = Integer.parseInt(addressComponent.getString("province_code")); int cityCode = Integer.parseInt(addressComponent.getString("city_code")); int districtCode = Integer.parseInt(addressComponent.getString("district_code")); System.out.printf("省份代码:%d\n城市代码:%d\n区县代码:%d%n", provinceCode, cityCode, districtCode); } } } } ``` 此程序首先构建了一个URL字符串用于发起HTTP GET请求至百度地图API服务器[^2]。接着读取响应流中的内容并将其打印出来以便调试查看完整的JSON回复。最后定义了解析函数`parseJsonForAdcode()`专门用来处理这些JSON数据从而抽取出具体的行政区域编号信息。 需要注意的是,在实际应用中应当妥善保管API Key(即上述代码中的`AK`),并且考虑异常情况下的错误处理逻辑以及性能优化等问题。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值