1

I used the google gears location API, in order to locate cell-id and wifi mac addresses (get latitude/longitude). But not using a browser, using java code. I used this URI: http://www.google.com/loc/json

Now, this API is no more available!! --> https://developers.google.com/gears/

I unterstand that the replacement is HTML5, but my application dosen't run on a browser... Do you know how I can use the HTML5 API without browser (simply HTTP request), or an alternative?

Here is my old code, for information:

...
        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;
        }
    }
user1845467
  • 55
  • 2
  • 6

2 Answers2

2

Google now offers a paid Geolocation API https://developers.google.com/maps/documentation/business/geolocation/

Maurice Svay
  • 351
  • 3
  • 6
-1

you can call [minigps]: http://www.minigps.net/map.html "click to query" could use google json api, only change the ip to: http://www.minigps.net/minigps/map/google/location

fllow is the http bytes: 2. So is this, but now follows a code block:

   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
terry
  • 1
  • 2
  • could simple write: [http://www.minigps.net/l.do?c=454&n=6&a=8010&e=6652663](http://www.minigps.net/l.do?c=454&n=6&a=8010&e=6652663) c=mcc n=mnc a=lac e=cellid – terry May 10 '13 at 14:47