您的位置:首页 > 编程语言 > Java开发

Java通过百度地图API获取地址经纬度

2017-10-16 11:07 477 查看


Java通过百度地图API获取地址经纬度

package com.aidongsports.test;

import net.sf.json.JSONObject;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.util.HashMap;

import java.util.Map;

/**

* Created by HONGLINCHEN on 2017/5/16.

*/

public class LngAndLatUtil {

public static Map<String,Double> getLngAndLat(String address){

Map<String,Double> map=new HashMap<String, Double>();

String url = "http://api.map.baidu.com/geocoder/v2/?address="+address+"&output=json&ak=自己申请";

String json = loadJSON(url);

JSONObject obj = JSONObject.fromObject(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);

}else{

System.out.println("未找到相匹配的经纬度!");

}

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 main(String[] args){

Map<String,Double> map=LngAndLatUtil.getLngAndLat("上海市黄浦区迎勋北路8弄唐城公寓");

System.out.println("经度:"+map.get("lng")+"纬度:"+map.get("lat"));

}

}

在浏览器请求如图:



获取经纬度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: