1

cell-id と wifi MAC アドレスを見つけるために、Google Gears Location API を使用しました (緯度/経度を取得します)。ただし、ブラウザを使用せず、Java コードを使用します。この URI を使用しました: http://www.google.com/loc/json

現在、この API は利用できません!! --> https://developers.google.com/gears/

代替が HTML5 であることは理解していますが、私のアプリケーションはブラウザーで実行されません... ブラウザー (単純な HTTP 要求) または代替手段なしで HTML5 API を使用する方法を知っていますか?

参考までに、私の古いコードは次のとおりです。

...
        JSONObject root = new JSONObject();

        root.put("version", "1.1.0");   

        root.put("host", "maps.google.com");

        JSONArray cell_towers = new JSONArray();
        JSONObject cell_tower = new JSONObject();
        cell_tower.put("cell_id", 10104);
        cell_tower.put("location_area_code", 101);
        cell_tower.put("mobile_country_code", 228);
        cell_tower.put("mobile_network_code", 1);
        cell_tower.put("request_address", true);
        cell_tower.put("address_language", "en_GB");
        cell_tower.put("age", new Integer(0));
        cell_towers.put(cell_tower);
        root.put("cell_towers", cell_towers);

        String result = postHttp("http://www.google.com/loc/json", root);
    }

...

    private static String postHttp(String urlToUse, JSONObject data) throws Exception {

        StringBuilder respBuilder = new StringBuilder();
        if (urlToUse.length() == 0) {
            return null;
        }
        URL url;
        try {
            url = new URL(urlToUse);
        } catch (MalformedURLException ex) {
            return null;
        }
        URLConnection urlCon;
        try {
            urlCon = url.openConnection();

            urlCon.setDoOutput(true);
            OutputStream wr = urlCon.getOutputStream();
            if (data != null) {
                String dd = data.toString();
                wr.write(dd.getBytes());
            }
            wr.flush();
            int len = urlCon.getContentLength();
            if (len != 0) {

                BufferedReader reader = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF-8"));

                String line="";
                while ((line = reader.readLine()) != null) {
                    respBuilder.append(line + "\n");
                }
                return respBuilder.toString().trim();
            } else {
                return null;
            }
        } catch (IOException ex) {
            return null;
        }
    }
4

2 に答える 2

2

Googleは現在、有料のGeolocationAPIを提供していますhttps://developers.google.com/maps/documentation/business/geolocation/

于 2012-12-29T18:05:23.380 に答える
-1

[minigps] を呼び出すことができます: http://www.minigps.net/map.html「クリックしてクエリ」は、Google json API を使用できます。 /google/場所

flow は http バイトです: 2. これもそうですが、コード ブロックが続きます:

   URL:http://www.minigps.net/minigps/map/google/location
   Request Method:POST
   Status Code:200 OK
   Request Headersview source
   Accept:application/json, text/javascript, */*; q=0.01
   Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
   Accept-Encoding:gzip,deflate,sdch
   Accept-Language:zh-CN,zh;q=0.8
   Connection:keep-alive
   Content-Length:191
   Content-Type:application/json; charset=UTF-8
   Cookie:bdshare_firstime=1356366713546; JSESSIONID=68243935CD3355089CF07A3A22AAB372
   Host:www.minigps.net
   Origin:http://www.minigps.net
   Referer:http://www.minigps.net/map.html
   User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko)            Chrome/22.0.1229.94 Safari/537.4
   X-Requested-With:XMLHttpRequest
   Request Payload
   {"version":"1.1.0","host":"maps.google.com","cell_towers":  [{"cell_id":"3721","location_area_code":"9779","mobile_country_code":"460","mobile_network_c       ode":"0","age":0,"signal_strength":-65}]}
    Response Headersview source
   Content-Type:application/json
   Date:Sat, 12 Jan 2013 06:03:15 GMT
   Server:Apache-Coyote/1.1
   Transfer-Encoding:chunked
于 2013-03-26T01:20:24.800 に答える