gpt4 book ai didi

google-maps - 以 Primefaces gmap 中的当前位置为中心

转载 作者:行者123 更新时间:2023-12-05 00:38:07 26 4
gpt4 key购买 nike

是否可以使用 Primefaces 的 gmap 将 google map 以客户当前位置为中心?

我使用 JSF、JPA 和 primefaces 开发公共(public)卫生信息系统。携带具有GPS功能的移动设备的外勤人员需要记录位置,以便将数据记录到数据库中以供分析。

我们可以用 Primefaces gmap 来做吗?

如果不可能,我可以使用哪些其他工具和技术来实现此功能?

最佳答案

是的,这很有可能,但这反过来也取决于客户端的网络浏览器是否 supports HTML5 navigator.geolocation 和/或您正在使用 Google Loader API作为后备。

您可以通过widgetVarName.getMap() 获取对具体GMap JavaScript 对象的引用。其中 widgetVarName<p:gmap widgetVar> .然后你可以使用 GMap JavaScript API通常的方法,例如 setCenter() .

这是一个启动示例,前提是您想通过 HTML5 navigator.geolocation 检查地理位置。并使用 Google Loader API 作为备用。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>

<p:gmap widgetVar="w_gmap" type="HYBRID" center="41.381542, 2.122893" zoom="15" style="width:600px;height:400px" />

<script type="text/javascript">
if (navigator.geolocation) {
checkGeolocationByHTML5();
} else {
checkGeolocationByLoaderAPI(); // HTML5 not supported! Fall back to Loader API.
}

function checkGeolocationByHTML5() {
navigator.geolocation.getCurrentPosition(function(position) {
setMapCenter(position.coords.latitude, position.coords.longitude);
}, function() {
checkGeolocationByLoaderAPI(); // Error! Fall back to Loader API.
});
}

function checkGeolocationByLoaderAPI() {
if (google.loader.ClientLocation) {
setMapCenter(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude);
} else {
// Unsupported! Show error/warning?
}
}

function setMapCenter(latitude, longitude) {
w_gmap.getMap().setCenter(new google.maps.LatLng(latitude, longitude));
}
</script>

注:41.381542, 2.122893的初始中心位置从PrimeFaces showcase复制粘贴我认为它代表了他们最喜欢的俱乐部的足球场 :) 您可以随意将其更改为其他任何内容,例如您自己公司的位置。

另请注意,出于安全原因,普通网络浏览器会要求最终用户确认共享位置。另见 Google Chrome documentationMozilla Firefox documentation就此主题而言。您不能关闭此部分。最终用户必须真正明确地接受请求。如果最终用户不允许,它将停留在初始中心位置。

关于google-maps - 以 Primefaces gmap 中的当前位置为中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19243347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com