在Gmap中,我们可以通过传递自定义的纬度和经度来标记所需的位置。
有什么方法可以添加标记以映射到用户的当前位置。
有没有一种方法可以获取用户的纬度和经度?
有人做过吗?
请分享您的想法?

最佳答案

您需要确定用户的IP地址,然后将其提供给某些IP地理位置工具/ API,以获取经度/纬度的地理位置。最后,将此信息用于您的Google Map。

JSF可以为您做的就是为您提供用户的IP地址,如下所示:

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String ip = request.getRemoteAddr();
// ...


如果还要考虑代理,请检查X-Forwarded-For标头:

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String ip = request.getRemoteAddr();
String forwardedFor = request.getHeader("X-Forwarded-For");

if (forwardedFor != null) {
    ip = forwardedFor.split("\\s*,\\s*", 2)[0];
}

// ...


您又必须使用哪个IP地理位置工具/ API,这是您必须自己回答的问题。只需向Google输入关键字“ ip geo location”即可开始使用。

08-25 05:41