根据经纬度坐标定位用户所在城市

package com.henu.controller;

import java.net.URL;

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

public class GetLocation {
    public static void main(String[] args) {
        // lat 39.97646
        // log 116.3039
        String add = getAdd("113.595688", "34.798947");
        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]);
        String admCode = j_2.getString("admCode");
        System.out.println(admCode);
    }

    public static String getAdd(String log, String lat) {
        // lat 小 log 大
        // 参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)
        String urlString = "http://gc.ditu.aliyun.com/regeocoding?l=" + lat
                + "," + log + "&type=010";
        String res = "";
        try {
            URL url = new URL(urlString);
            java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url
                    .openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            java.io.BufferedReader in = new java.io.BufferedReader(
                    new java.io.InputStreamReader(conn.getInputStream(),
                            "UTF-8"));
            String line;
            while ((line = in.readLine()) != null) {
                res += line + "\n";
            }
            in.close();
        } catch (Exception e) {
            System.out.println("error in wapaction,and e is " + e.getMessage());
        }
        System.out.println(res);
        return res;
    }

}

运行结果:

{"queryLocation":[34.798947,113.595688],"addrList":[{"type":"poi","status":1,"name":"阿登饭庄","id":"ANB017316EI9","admCode":"410102","admName":"河南省,郑州市,中原区,","addr":"","nearestPoint":[113.59577,34.79889],"distance":10.296}]}

省:河南省
市:郑州市
区:中原区
410102

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值