2012-12-31 69 views

Trả lời

5

Bạn nên sử dụng API giảm sau đó để nhận vị trí bằng cách sử dụng ip.

Ip2Location API

+0

Đáng buồn thay, sau những năm này, không có gì trên liên kết này hoạt động – SREE

2

Có một số dịch vụ web, trong đó cung cấp cho bạn vĩ độ và kinh độ giá trị từ địa chỉ IP.

một ví dụ là api.ipinfodb.com

cho ex, bạn có thể vĩ độ và kinh độ bằng cách gửi yêu cầu như

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key> 
       &ip=74.125.45.100&format=json 

này sẽ trả về dữ liệu ở định dạng json và bạn có thể nhận được câu trả lời trong XML bằng cách thiết lập định dạng = xml. (Bạn cần phải đăng ký để có được khóa API của bạn).

hoặc bạn có thể tải xuống cơ sở dữ liệu từ liên kết thisthis.

bạn có thể tải xuống bộ dữ liệu nhưng u phải liên tục cập nhật bộ dữ liệu.

+0

tôi đã thử lấy khóa API cho trang web này nhưng không thành công. Nó tiếp tục yêu cầu vị trí của tôi ngay cả khi tôi đã cung cấp nó. Bạn có sẵn sàng chia sẻ khóa của mình không? –

1

tôi sử dụng this để có được ip, quốc gia và thành phố của thiết bị

để kiểm tra bạn có thể sử dụng RESTCLIENT, addon firefox để làm các yêu cầu HTTP.

chỉ cần sao chép https://addons.mozilla.org/en-us/firefox/addon/restclient/ URL này và thử nghiệm trong RESTCLIENT hay chỉ là quá khứ trong thanh địa chỉ trình duyệt

Hope this helps!

+0

Tìm tốt. Rất đơn giản khi sử dụng liên kết đó: http://api.hostip.info/get_json.php –

3

Thanh toán Google Maps Geolocation API

mẫu POST:

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY 

mẫu phản ứng:

{ 
    "location": { 
    "lat": 51.0, 
    "lng": -0.1 
    }, 
    "accuracy": 1200.4 
} 

Giới hạn:

Người sử dụng API tiêu chuẩn:

2,500 truy vấn miễn phí mỗi ngày 10 truy vấn mỗi giây, mỗi người dùng Enable pay-as-you-go thanh toán để mở khóa hạn ngạch cao hơn:

$ 0.50 USD/1000 thêm truy vấn , lên tới 100.000 mỗi ngày.

MORE

0

Bạn có thể sử dụng freegeoip.net.

Đây là dịch vụ mã nguồn mở miễn phí. Bạn có thể sử dụng dịch vụ trực tiếp hoặc chạy dịch vụ trên máy chủ cá nhân của mình. Nó cũng có thể được triển khai đến Heroku khá dễ dàng.

Để có được vị trí IP chỉ cần sử dụng OkHttp để gửi một http/https yêu cầu:

String url = "https://freegeoip.net/json/" 
Request mRequest = new Request.Builder() 
     .url(url) 
     .build(); 
Context mContext // A UI context 
new OkHttpClient().newCall(mRequest).enqueue(new Callback() { 
    Handler mainHandler = new Handler(mContext.getApplicationContext().getMainLooper()); 

    @Override 
    public void onResponse(Call call, Response response) { 
     String responseBody = null; 
     try { 
      responseBody = response.body().string(); 
     } catch (final IOException e) { 
      mainHandler.post(new Runnable() { 
       @Override 
       public void run() { 
        // handle error 
       } 
      }); 
     } 

     final String finalResponseBody = responseBody; 
     mainHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       // handle response body 
       try { 
        JSONObject locationObject = new JSONObject(finalResponseBody); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onFailure(Call call, final IOException e) { 
     mainHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       mNetworkListener.onNetworkError(e.getMessage()); 
      } 
     }); 
    } 
}); 

Và câu trả lời sẽ trông giống như một cái gì đó như thế này:

{ 
    "ip": "192.30.253.113", 
    "country_code": "US", 
    "country_name": "United States", 
    "region_code": "CA", 
    "region_name": "California", 
    "city": "San Francisco", 
    "zip_code": "94107", 
    "time_zone": "America/Los_Angeles", 
    "latitude": 37.7697, 
    "longitude": -122.3933, 
    "metro_code": 807 
} 
Các vấn đề liên quan