以 Primefaces gmap 中当前位置为中心

2024-03-17

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

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

我们可以用 Primefaces gmap 来做吗?

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


是的,这很有可能,但这又取决于客户端的网络浏览器是否supports http://caniuse.com/geolocation HTML5 navigator.geolocation https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation和/或您正在使用谷歌加载器API https://developers.google.com/loader/作为后备。

您可以通过以下方式获取对具体 GMap JavaScript 对象的引用widgetVarName.getMap() where widgetVarName is the <p:gmap widgetVar>。然后您可以使用GMap JavaScript API https://developers.google.com/maps/documentation/javascript/reference通常的方法,例如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 展示 http://www.primefaces.org/showcase/ui/gmapBasic.jsf我认为它代表了他们最喜欢的俱乐部的足球场:)你可以随意将其更改为其他任何东西,例如您自己公司的位置。

另请注意,出于安全原因,普通网络浏览器会要求最终用户确认共享位置。也可以看看谷歌浏览器文档 https://support.google.com/chrome/answer/142065?hl=en and Mozilla 火狐文档 http://www.mozilla.org/en-US/firefox/geolocation/就此主题而言。你cannot关闭这部分。最终用户必须明确接受该请求。如果最终用户不允许,它将停留在初始中心位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以 Primefaces gmap 中当前位置为中心 的相关文章

  • 如何检测谷歌地图是否加载成功

    我在我的网站中使用谷歌地图版本 3 我遇到了地图有时无法加载的问题 而是显示为灰色框 并且浏览器日志将充满错误 不幸的是 我现在无法获取日志 因为地图再次工作 根据一些研究 问题是因为我使用的实验版本 有没有办法查明地图是否已成功加载或崩溃
  • Cordova - 已弃用尝试访问非导航器对象上的属性“userAgent”

    我正在尝试让我的 Cordova iPhone 应用程序在 iOS 8 1 中运行 在 7 中工作正常 从 8 开始出现以下错误 Deprecated attempt to access property userAgent on a no
  • Google 地图在某些浏览器上不被识别为矢量地图

    我已经构建并部署了一个 next js 应用程序 该应用程序在 react google maps api 的帮助下显示地图 此外 我使用 Google 地图 数据驱动 API 来创建显示邮政编码边界的要素图层 我已将其部署到 Vercel
  • Android - Google 地图触摸和拖动标记

    如何在地图活动上移动标记 而无需长按并按住该标记直到它获得焦点 我只想触摸和拖动 但它需要大约 1 2 秒才能接收焦点并触发拖动事件 这是我的代码 mMap googleMap mMap setMapType GoogleMap MAP T
  • 我们可以直接在 JSF xhtml 文件中访问会话范围变量吗

    您好 我正在开发一个 JSF 项目 我想直接访问我的 xhtml UI 页面上的一些会话级变量 而不使用任何托管 bean 只是想知道这是否可能 如果可以 那么如何 Thanks 是的 有可能 如果光束不存在 则首先将其放入会话中 Face
  • Google 地图 api V3 - 从查询结果动态添加多个标记

    我正在尝试在页面上设置一个地图 并在其下方设置几个链接 单击这些链接时 将动态查询我的数据库并在地图上输出结果集 我花了很多时间在谷歌上搜索这个 但找不到我想要的东西 我已经使用 AJAX 返回纬度和经度坐标了 但是当尝试在地图上创建标记时
  • 在 iOS 和 Android 版 Google 地图上突出显示国家/地区

    我正在尝试在地图上突出显示国家 地区 对于iOS我发现很少有演示 Demo1 http sugartin info 2012 02 13 adding overlays on mkmapview using mkpolygon mkpoly
  • Google Maps JavaScript API v3 方向功能

    我使用 Google Maps js API v3 我可以根据路径点显示方向this http code google com intl hu apis maps documentation directions Waypoints 我想要
  • GoogleMaps iOS SDK 1.5 无法加载

    所以我开始研究使用 GoogleMaps iOS SDK 我按照说明进行操作 在控制台中启用适用于 iOS 的 Google Maps SDK 设置 API 密钥并添加捆绑 ID 我使用演示项目 Google Supplies 更新了常量
  • Google Geolocation API - 使用经度和纬度获取文本框中的地址?

    我注意到很多关于如何使用基于 IP 地址的 Google 地理定位查找您的位置的信息 但我想知道是否以及如何使用此服务来输入位置 经度和纬度 并获取当前地址 或至少是一个城市 州 我想用 C 来完成此操作 但我可以使用任何语言 有什么建议吗
  • Primefaces、JavaScript 和 JSF 不能很好地协同工作,或者我做错了什么

    这是非常简单的事情
  • ui:define with generated="false" 属性仍然呈现

  • jsf中的会话注销问题

    我正在开发一个 Web 应用程序 并使用框架 jsf hibernate 和 spring 应用程序中有不同类型的用户 根据此处登录的用户类型 我为不同的用户类型启用菜单中的链接 用户登录后 会向用户提供菜单栏中的注销链接 我已经编写了 l
  • 使用 Selenium 放置嵌入的谷歌地图标记

    我有一个 asp net 网站 作为向导的一部分 它使用嵌入式谷歌地图通过单击地图放置标记来选择位置 我如何使用 Selenium 实现自动化 我特别尝试过 ClickAt 双击 鼠标按下 鼠标按下 在所有情况下 传递地图 div id 作
  • JSF 的最佳实践是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用不同的颜色为 Google 热图着色

    我试图开发一个遵循 Google Map API 的热度 https developers google com maps documentation javascript examples layer heatmap https deve
  • 如何在 Android 应用程序中启用谷歌地图导航

    I have two points on google map first one is the source and second is the destination I have the route between these poi
  • 从支持 bean 更新 PrimeFaces 数据表

    我在 bean 中使用 Schedule Timer 当员工注册从指纹设备获取数据时 它会更新变量 当 bean 中的变量更新时 我需要从支持 bean 更新 jsf 中的组件 我尝试使用 primefaces poll 组件 但它每次都会
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作

随机推荐