一、首先你得申请开发者账号
二、添加应用,获取AK
设置成浏览器端,refer白名单如果不想设置成固定的网站可以调用,直接设置成星号*即可,不过会有风险,自己考虑
三、常用的浏览器端调用url格式"http://api.map.baidu.com/geocoder/v2/?ak=步骤二生成的AK&output=json&address=天津市"
四、浏览器调用步骤三设置好的api接口即可
获取到的 信息如下
成功
{"status":0,"result":{"location":{"lng":117.21081309155257,"lat":39.143929903310077},"precise":0,"confidence":12,"level":"城市"}}
失败
返回信息中出现app禁用的信息,参考步骤二,把应用类别设置成浏览器端,refer白名单设置成*五、json解析出lng和lat即可
转载
java版本的根据中文地址获取坐标的代码如下备注:json解析时,注意导入的JSONobject是Android还是java版本,这个地方容易出error
//请求百度地图坐标接口public static Map getLngAndLat(String address){Map map=new HashMap();String url = "http://api.map.baidu.com/geocoder/v2/?address="+address+"&output=json&ak=DE1B2vE0ZkeiPV49jyjDAc0PNNRBUa0E";String json = loadJSON(url);//JSONObject obj = JSONObject.fromObject(json);try{JSONObject obj = new JSONObject(json);if(obj.get("status").toString().equals("0")){double lng=obj.getJSONObject("result").getJSONObject("location").getDouble("lng");double lat=obj.getJSONObject("result").getJSONObject("location").getDouble("lat");map.put("lng", lng);map.put("lat", lat);//System.out.println("经度:"+lng+"---纬度:"+lat);}else{//System.out.println("未找到相匹配的经纬度!");}}catch(Exception e){e.printStackTrace();}return map;}public static String loadJSON (String url) {StringBuilder json = new StringBuilder();try {URL oracle = new URL(url);URLConnection yc = oracle.openConnection();BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));String inputLine = null;while ( (inputLine = in.readLine()) != null) {json.append(inputLine);}in.close();} catch (MalformedURLException e) {} catch (IOException e) {}return json.toString();}public static void getlat(String[] args){/*把代码中的ak值(红色字部分)更改为你自己的ak值,在百度地图API中注册一下就有。调用方式:*/Map map=MyGet_1.getLngAndLat("北京市");System.out.println("经度:"+map.get("lng")+"---纬度:"+map.get("lat"));}