2021-08-17 H5简单获取地理位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-08-17 H5简单获取地理位置相关的知识,希望对你有一定的参考价值。

参考技术A window对象下的navigator对象有一个geolocation属性对象,此对象原型链上有一个getCurrentPosition()方法,此方法可唤起地理位置授权弹窗(获取地理位置是需要用户授权的)。

1、需要先判断用户浏览器是否支持该功能,目前大多数浏览器支持:

2、getCurrentPosition()方法有2个回调参数,第一个是用户同意授权且成功获取到位置的回调,第二个是授权失败或未成功获取到位置的回调:

location参数字段说明:

err参数字段说明:

注:也能看到err对象原型链上有PERMISSION_DENIED、POSITION_UNAVAILABLE、TIMEOUT三个属性,它们的值分别对应上述3种情况。

3、拿到自己想要的地理位置后,可以通过获取到的经纬度查看具体的定位信息,参考 https://www.cnblogs.com/cangqinglang/p/10833677.html

4、另外,getCurrentPosition()方法还有第3个参数json,是一些可选属性,有兴趣的可以去看看。

获取调用程序的原始位置[重复]

【中文标题】获取调用程序的原始位置[重复]【英文标题】:Get the original location where the program is called [duplicate] 【发布时间】:2016-05-16 12:46:46 【问题描述】:

有没有办法知道程序最初在 C 中生成的目录?我希望我的程序知道它在计算机中的位置。我已经尝试在direct.h 中使用_getcwd()。我还使用unistd.h 尝试了getcwd()。但这就是问题所在。如果我在我的程序目录中添加了一个 PATH,函数 _getcwd()getcwd() path 将返回我调用程序的路径。因此,如果我在 dekstop 中运行程序,它将返回桌面的路径。我已经尝试过使用this 方法,但它不能解决问题。它返回调用路径的值。我想知道使用什么函数来知道程序的路径,而不是程序被调用的路径。 我应该使用什么功能?

【问题讨论】:

之前已经尝试过这些方法。它返回的是调用它的路径,而不是被调用程序的原始路径。 【参考方案1】:

当前的工作目录没有任何用处。除了巧合之外,可执行映像在文件系统中的位置与当前工作目录之间没有任何联系。

您可以通过调用_get_wpgmptr(Visual Studio 附带的 Microsoft 特定的 CRT 扩展)或 GetModuleFileName(为 hModule 传递 NULL来检索可执行文件的完全限定路径>),然后通过调用PathRemoveFileSpec(或PathCchRemoveFileSpec,Windows 8 及更高版本)提取路径。

【讨论】:

我使用的是 Windows 7。_get_wpgmptr() 出现了什么库?已经包含 stdlib.hwindows.h 但编译器显示:undefined reference to ' _get_wpgmptr' @BryanJames:_get_wpgmptr() 是 Visual Studio 的 CRT 实现的一部分,因此您需要 #include <stdlib.h> 使用 Visual Studio(或 Microsoft 编译器)。如果您使用不同的编译器,则可以改用 Windows API 调用 GetModuleFileName

以上是关于2021-08-17 H5简单获取地理位置的主要内容,如果未能解决你的问题,请参考以下文章

获取定位,苹果IOS10以上不支持h5的geolocation获取不到地理位置信息解决办法

获取定位,苹果IOS10以上不支持h5的geolocation获取不到地理位置信息解决办法

H5 获取地理位置

H5 使用地理位置定位

H5 使用地理位置定位

移动端H5获取地理位置的探索