http://code.google.com/intl/zh-CN/apis/gears/geolocation_network_protocol.html
代码中是用GSM查询格式,如果是CDMA查询和GSM查询格式是一样的,只是需要修改4个地方:
1.radio_type 改为 “cdma”
2.cell_id 用 BID值替换
3.location_area_code用NID值替换
4.mobile_network_code用SID值替换
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; /** * Java利用CellID LAC调用Google接口获取经纬度例子 */ public class GoogleJson { public static void main(String args[]) { GoogleJson test = new GoogleJson(); URL url = null; HttpURLConnection conn = null; try { url = new URL("http://www.google.com/loc/json"); conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); String json = test.getJson(); System.out.println(json); conn.getOutputStream().write(json.getBytes()); conn.getOutputStream().flush(); conn.getOutputStream().close(); int code = conn.getResponseCode(); System.out.println("code " + code); BufferedReader in = new BufferedReader(new InputStreamReader( conn.getInputStream())); String inputLine; inputLine = in.readLine(); System.out.println(inputLine); in.close(); // 解析结果 // JSONObject result = new JSONObject(inputLine); // JSONObject location = result.getJSONObject("location"); // JSONObject address = location.getJSONObject("address"); // System.out.println("city = " + address.getString("city")); // System.out.println("region = " + address.getString("region")); } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) conn.disconnect(); } } /** * Google的官方例子 */ private String getJson() { String json = "{ " + "\"version\": \"1.1.0\", " + "\"host\": \"maps.google.com\", " // + // "\"access_token\": \"2:k7j3G6LaL6u_lafw:4iXOeOpTh1glSXe\", " + "\"home_mobile_country_code\": 460, " + "\"home_mobile_network_code\": 00, " + "\"radio_type\": \"gsm\", " + "\"carrier\": \"Vodafone\", " + "\"request_address\": true, " + "\"address_language\": \"zh_CN\", " // + "\"location\": { " // + "\"latitude\": 51.0, " + "\"longitude\": -0.1 " + "}, " + "\"cell_towers\": [ " + "{ " + "\"cell_id\": 4912, " + "\"location_area_code\": 20516, " + "\"mobile_country_code\": 460, " + "\"mobile_network_code\": 00, " + "\"age\": 0, " + "\"signal_strength\": -60, " + "\"timing_advance\": 5555 " + "}" // +", " + "{ " + "\"cell_id\": 88, " // + "\"location_area_code\": 415, " // + "\"mobile_country_code\": 310, " // + "\"mobile_network_code\": 580, " + "\"age\": 0, " // + "\"signal_strength\": -70, " + "\"timing_advance\": 7777 " // + "}" + "]" // +", " + "\"wifi_towers\": [ " + "{ " // + "\"mac_address\": \"00:18:39:f4:29:01\", " // + "\"signal_strength\": 8, " + "\"age\": 0 " + " }" // // ", " + "{ " // // + " \"mac_address\": \"01-23-45-67-89-ac\", " // // + " \"signal_strength\": 4, " + " \"age\": 0 " + "}" // + "] " + "}"; return json; } }