如何从后端获取java Web应用程序中的用户位置?

时间:2017-11-27 11:21:03

标签: java geolocation

问题

如何从后端获取java Web应用程序中的用户位置?

解决方案

我尝试使用Geolocation api从其余的api获取latitute和latitute,但是当我在服务器上部署它时测试用例失败,因为它正在获取lat和服务器位置。

我很困惑如何将其他参数添加到网址以使其完美运行。

以下是我的代码 -

    public static JSONObject getLatLon() {
    JSONObject Jobject = null;
    String json = createJson();
    LOG.info("Json is " + json);
    okhttp3.RequestBody body = okhttp3.RequestBody.create(JSON, json);
    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url("https://www.googleapis.com/geolocation/v1/geolocate?key=XXX")
            .post(body)
            .build();
    try {
        Response response = client.newCall(request).execute();
        LOG.info("response is " + response);
        String resStr = response.body().string();
        LOG.info("response String is " + resStr);
        Jobject = new JSONObject(resStr);
        LOG.info("Json Object is " + Jobject);
    } catch (JSONException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return Jobject;
}

public static String createJson() {
    ObjectMapper mapper = new ObjectMapper();
    String json = null;
    try {
        return mapper.writeValueAsString(json);
    } catch (JsonProcessingException e) {
    }
    return null;
}
  

任何人都可以指导我如何获取刻意和刻意,以便可以获取endUser位置?

1 个答案:

答案 0 :(得分:1)

我可以知道您想要访问哪些坐标?如果您想访问最终用户/访问者IP地址,Google地理位置API将无法正常运行。

HTML5地理位置是客户端功能,需要客户批准才能接收其坐标。

您可以尝试的最佳选择是使用访问者IP地址并使用地理位置数据库对其进行估算。您可以从带有坐标的免费IP2Location LITE DB5开始。