在 Gmap 中,我们可以通过传递自定义纬度和经度来标记所需位置。
有什么方法可以为用户的当前位置添加标记到地图上吗?
有没有办法获取用户的纬度和经度?
以前有人做过吗?
请分享你的想法?
您需要计算用户的 IP 地址,然后将其提供给某些 IP 地理位置工具/API,以便获取纬度/经度的地理位置。最后将此信息用于您的 Google 地图。
JSF 能为您做的就是向您提供用户的 IP 地址,如下所示:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String ip = request.getRemoteAddr();
// ...
如果您还想考虑代理,请检查X-Forwarded-For
header:
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,这是您必须自己回答的问题。只需输入关键字“IP地理定位” 到 Google 即可开始。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)