geolocation 相关问题

地理定位是对象的真实世界地理位置的识别,例如手机或连接到互联网的计算机终端。有关W3C Geolocation API的问题,请使用[w3c-geolocation]。

显示地理位置跳出div

div 已损坏, 写在其外部。 我怀疑这是响应时间问题,但我无法修复它。 如果我将 jQuery 按钮效果和 div 一起删除,我就能够... div 已损坏,<p> 写在其外部。 我怀疑这是响应时间问题,但我无法修复它。 如果我将 jQuery 按钮效果和 div 一起删除,我就可以很好地显示位置。 我更喜欢将脚本放在标题中,但欢迎任何解决方案。 $(document).ready(function() { var banner = $("#banner-message"); var button = $("button"); // handle click and add class button.on("click", () => { banner.toggleClass("alt"); }); }); // Beregn afstand mellem 2 punkter function distance(lon1, lat1, lon2, lat2) { var R = 6371; // Radius of the earth in km var dLat = (lat2 - lat1).toRad(); // Javascript functions in radians var dLon = (lon2 - lon1).toRad(); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * Math.sin(dLon / 2) * Math.sin(dLon / 2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); var d = R * c; // Distance in km return d; } /** Converts numeric degrees to radians */ if (typeof(Number.prototype.toRad) === "undefined") { Number.prototype.toRad = function() { return this * Math.PI / 180; } } window.navigator.geolocation.getCurrentPosition(function(pos) { console.log(pos); console.log( distance(pos.coords.longitude, pos.coords.latitude, 9.318893232332728, 56.53058705206541) ); }); // Check if the browser supports geolocation if ("geolocation" in navigator) { // Get the user's current position navigator.geolocation.getCurrentPosition( function(position) { let latitude = position.coords.latitude; let longitude = position.coords.longitude; let accuracy = position.coords.accuracy; document.body.innerHTML += "<div id=\"banner-message\">"; document.body.innerHTML += "<p>Geolocation test</p>"; document.body.innerHTML += "<p>Latitude: " + latitude + "</p>"; document.body.innerHTML += "<p>Longitude: " + longitude + "</p>"; document.body.innerHTML += "<p>Accuracy indenfor: " + accuracy + " meter</p>"; const Afstand = distance(longitude, latitude, 9.418893232332728, 56.93058705206541); document.body.innerHTML += "<p>Afstand: " + Math.round(Afstand * 1000) + " meter</p>"; document.body.innerHTML += "<button>Change coloring</button>"; document.body.innerHTML += "</div>"; //SLEEP er her fordi der ikke er en WAIT funktion i Javascript ! function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } //Check om accuracy er under 200 meter - ellers refresh siden efter 7 sekunder. /* if (Math.round(Afstand*1000) > 200) { sleep(7000).then(() => { location.reload(); }); } */ }, function(error) { console.error("Error getting location: " + error.message); } ); } else { alert("Geolocation is not supported by your browser"); } body { background: #FFE0AF; padding: 20px; font-family: Helvetica; } #banner-message { background: #F7F7F0; border-radius: 4px; padding: 20px; font-size: 25px; text-align: center; transition: all 0.2s; margin: 0 auto; width: 300px; } button { background: #BAF1BE; border: none; border-radius: 5px; padding: 8px 14px; font-size: 15px; color: #fff; } #banner-message.alt { background: #0084ff; color: #fff; margin-top: 40px; width: 200px; } #banner-message.alt button { background: #FFBFBF; color: #000; } 工作示例 让我们从真正的 MRE 开始,而不是整个代码 function f(){ document.body.innerHTML = '<div>'; document.body.innerHTML += '<span>Hello</span>'; document.body.innerHTML += '</div>'; } div { background-color: lightgreen; } body { background-color: red; } <body> <button onclick='f()'>GO</button> CSS部分是看span是否在div中:如果是,背景应该是绿色的。如果 hello 是红色背景,那么它不在 div 中。 确实不是。 为了理解为什么会这样,让我们考虑一个更简单的f function f(){ document.body.innerHTML='<div>Unclosed'; } 您所看到的:绿色背景上的unclosed。如果你检查 dom,你会看到一个关闭的 <div>Unclosed</div>。 因为一旦您将 <div> 添加到 innerHTML,它所做的就是创建一个 <div></div>。有一个隐含的结束。 然后当您添加 <span>Hello</span> 时,它会将其添加到 div 之后。 然后添加单个</div>没有效果。 innerHTML 中不能包含部分 HTML。引擎将为您完成。 另一种看待它的方式 function f(){ let div=document.getElementById('outer'); let pre=document.getElementById('code'); pre.textContent = '----\nInit\n' + div.innerHTML+'\n\n'; div.innerHTML = '<div>'; pre.textContent += '----\nAfter div\n'+div.innerHTML+'\n\n'; div.innerHTML += '<b>Hello</b>'; pre.textContent += '----\nAfter hello\n'+div.innerHTML+'\n\n'; div.innerHTML += '</div>'; pre.textContent += '----\nAfter /div\n'+div.innerHTML+'\n\n'; } #outer { background-color: red; } #outer div { background-color: lightgreen; } pre { background-color: yellow; } <button onclick='f()'>GO</button> <div id=outer></div> <pre id=code></pre> 这次,我添加了一个(黄色)pre,显示 div#outer 内容代码(我更改了 innerHTML 的 div#outer 而不是 body,以便能够保留我的 pre。 你可以看到,正如我所说,只要添加 <div>,代码就变成 <div></div>。因此 <b>Hello</b> 位于该 div 之外(但当然位于 #outer div 内,代表您的情况下的 body),并且位于红色背景 解决方案 嗯,恕我直言,最好的解决方案是使用 dom 操作代码而不是构建 html。但如果您需要/想要像这样处理 HTML,则不应该逐步执行。 您必须一次性更改innerHTML。 如果需要,可以使用另一个变量来累积你想要的内容,然后将其放入innerHTML function f(){ let s='<div>'; s+='<span>Hello</span>'; s+='</div>'; document.body.innerHTML = s; } 例如,纠正我最后的代码 function f(){ let div=document.getElementById('outer'); let pre=document.getElementById('code'); pre.textContent = '----\nInit\n' + div.innerHTML+'\n\n'; let s = '<div>'; pre.textContent += '----\nAfter div\n'+div.innerHTML+'\n\n'; s += '<b>Hello</b>'; pre.textContent += '----\nAfter hello\n'+div.innerHTML+'\n\n'; s += '</div>'; pre.textContent += '----\nAfter /div\n'+div.innerHTML+'\n\n'; div.innerHTML = s; pre.textContent += '----\nAfter innerHTML←s\n'+div.innerHTML+'\n\n'; } #outer { background-color: red; } #outer div { background-color: lightgreen; } pre { background-color: yellow; } <button onclick='f()'>GO</button> <div id=outer></div> <pre id=code></pre> 这次,Hello处于绿色背景,因为它位于div内部。在我们自己添加 Hello 和显式 </div> 之前,没有发生该 div 的隐式关闭。

回答 1 投票 0

PHP 和 WordPress 中基于位置的 (GeoIP) 重定向

我是 WordPress 开发新手。 我正在尝试在我的 WordPress 网站中创建基于位置的重定向。这个想法是根据......将用户从通用页面发送到与他相关的特定页面......

回答 1 投票 0

传单地图:使用 navigator.geolocation.watchPosition 更新标记?

我正在尝试使用传单地图来显示用户在地图上的当前位置。类似于实时 GPS 跟踪。 这是我当前的代码: var watchID; var geoLoc; 有趣...

回答 2 投票 0

Flutter:如何获得高精度定位?

未来 mylocation() 异步{ 位置position =等待Geolocator().getCurrentPosition(desiredAccuracy:LocationAccuracy.bestForNavigation); 返回位置; } 我想要得到我的

回答 3 投票 0

如何在 React 中实现警报消息,以在尚未授予或拒绝地理定位权限时通知用户?

我想在用户尚未选择允许或拒绝时显示一条警报消息。我已经为此目的实施了状态管理,但该消息没有显示。我正在使用导航...

回答 1 投票 0

错误:“I/进程 (26960):正在发送信号。PID:26960 SIG:9 与设备的连接丢失。”在 android studio 上使用 flutter 时

输入这段代码后,每次我尝试运行该程序时,我都会得到这个 “I/Process (26960):发送信号。PID:26960 SIG:9 与设备的连接丢失。 下面是代码块...

回答 4 投票 0

从由纬度和经度定义的边界框中的数组中提取数据

我有'rh_irr',它是一个大小为744*171*162的数组,其中171是纬度,162是经度,744是时间维度。我还有数组 lat 和 lon ,大小均为 171*162 并包含

回答 1 投票 0

无需网络连接即可定位

我正在编写一个现场服务 HTML5 应用程序,该应用程序在装有 GPS 芯片的 Windows 笔记本电脑上的 Google Chrome Web 浏览器上运行。我正在使用 html5 地理定位 api 来获取用户的

回答 3 投票 0

CLMonitor从CLLocationManager升级的正确方法

我正在尝试将地理定位功能从 CLLocationManager 升级到 CLMonitor。主要问题是我应该如何将 MonitoredRegions 从 CLLocationManager 移动到 CLMonitor。自从ios17功能...

回答 1 投票 0

以 CSV 格式创建 Geojson 多边形字符串 u200f

我正在尝试在 Qgis 项目的新几何属性表字段中接收以 geojson 格式输出的图层。 我使用 Chatgpt 尝试在 Qgis 中找到一个工具或方法来添加 co...

回答 1 投票 0

使用地理坐标,给定任意点,如何找到线串上最近的现有点?

我正在使用 shapely 和 django-gis。我得到了一个具有完整坐标的线串和一个四舍五入到 6 个坐标的点。 我需要的是找到距离我最近的现有点的索引

回答 1 投票 0

flutter 说我的代码在 place.placeLocation!.longitude;

这是一个 Flutterflow 插件,可按客户位置返回列表 我想知道那个总是出错的部分出了什么问题,我听说 placePosition 不再存在了 李...

回答 1 投票 0

添加flutter_background_geolocation包导致构建失败

添加flutter_background_geolocation包导致构建失败 我正在尝试将 flutter_background_geolocation 合并到我的工作 flutter 项目中。 但当我跑步时 扑扑酒吧添加

回答 1 投票 0

如何在 Android 中获取位置管理器的最后已知位置?

我正在使用简单的位置管理器对象来获取设备的lastKnownLocation() 但是得到 null 对象作为回报任何人都可以告诉我为什么吗? 代码 : 公共位置 getLocation() { 位置法力...

回答 10 投票 0

如何使用Python(Flask)在Elasticsearch中获取最近的地理点

我正在遵循 Elasticsearch 使用 Python 和 Flask 的官方教程。我实现了全文匹配搜索,但我想扩展该功能以查找最近的位置。我发现

回答 1 投票 0

找到两个地理数据点之间的交点

我有两对纬度/经度(以十进制表示)及其半径(以米表示)。我想要实现的是找到这两点之间的交点是否存在(c...

回答 1 投票 0

为什么 Chrome iOS 在授予地理位置时发送提示

我想在我的网站的某些部分允许地理定位,为此,我更喜欢在提示他们浏览器地理定位权限请求之前在客户端页面上请求许可。 所以我...

回答 1 投票 0

是否有从托马斯兄弟地图页面和网格转换为纬度/经度的公式?

我正在开发一个包含托马斯兄弟地图页面和网格编号的项目。有没有办法以编程方式从此地图页面转换为纬度和经度? 一个例子是 f...

回答 6 投票 0

Vaadin 24 站地理定位地图库

美好的一天, 我使用 Vaadin 24、Spring Boot 3.2.4 和 maplibre 进行开发。 在此输入链接描述 摘自我的 pom. 在virit中 <

回答 1 投票 0

在 Android 上无需互联网即可在后台获取更新的纬度经度

我想构建位置跟踪Android应用程序,可以在后台每分钟保存用户的坐标,我们的应用程序在具有离线谷歌地图的设备上运行良好,但在我们没有的设备上

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.