Jsf 如何标记用户';Primefaces Gmap上的当前位置是什么?
在Gmap中,我们可以通过自定义纬度和经度来标记所需的位置。 有没有办法为用户的当前位置在地图上添加标记。? 有没有办法获取用户的纬度和经度? 以前有人做过吗?Jsf 如何标记用户';Primefaces Gmap上的当前位置是什么?,jsf,primefaces,Jsf,Primefaces,在Gmap中,我们可以通过自定义纬度和经度来标记所需的位置。 有没有办法为用户的当前位置在地图上添加标记。? 有没有办法获取用户的纬度和经度? 以前有人做过吗? 请分享您的想法?您需要计算用户的IP地址,然后将其提供给某个IP地理位置工具/API,以便获得纬度/经度的地理位置。最后,将此信息用于您的谷歌地图 JSF所能为您做的就是为您提供用户的IP地址,如下所示: ExternalContext externalContext = FacesContext.getCurrentInstance(
请分享您的想法?您需要计算用户的IP地址,然后将其提供给某个IP地理位置工具/API,以便获得纬度/经度的地理位置。最后,将此信息用于您的谷歌地图 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即可开始。除了BalusC的答案外,还引用了(Primefaces在幕后使用此API): 较新的浏览器开始支持。 该标准是HTML5的一部分,很可能成为事实 未来的标准。希望执行的所有应用程序 地理定位应该支持这一标准 一些浏览器使用IP地址来检测用户的位置;然而, 因为用户的IP地址只能粗略估计用户的IP地址 位置,我们不建议使用此方法进行地理定位。这个 W3C方法是最简单和最受充分支持的方法,因此它应该是 优先于其他方法 以下是给定链接的一个简短示例:
var initialLocation;
var browserSupportFlag = new Boolean();
// Try W3C Geolocation (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
}
通常,当网站试图访问位置信息时,会提示用户并请求其许可
你可以先试试这个,如果失败了,继续用巴卢斯的答案。我知道这个方法。如果用户拒绝提供他的位置信息怎么办?我的意思是,有些用户只是取消了提示,而不看它,认为它是一些更新信息或什么的。完整的源代码显示在给定的链接中。他们首先尝试获取位置,如果失败,他们将选择“西伯利亚”;-)。然后,您应该尝试使用BalusC建议的IP地址查找位置。@MattHandy Hey man我像BalusC建议的那样通过IP实现了地理定位,但我遇到了一个问题,即大多数设备都有专用或保留IP,因此大多数IP定位服务在收到此类IP时会失败,您知道解决方案吗,或者知道一个使用这种ip的服务吗?我感谢任何帮助:)谢谢BalusC,你能推荐任何稳定的IP地理位置吗?因为那里有很多,我很难决定使用哪一个。请提供任何建议。@BalusC私有和保留ip存在问题,许多工具无法使用该类型的ip进行地理定位,是否有解决方法?@KishorPrakash您是否参与了我上面提到的问题?