我有一个Trimble GNSS接收器,具有蓝牙功能,可以使用Trimble GNSS Status应用程序连接到ProXT。该应用程序输出基本单元的位置,如果我在开发人员选项中选择该应用程序作为模拟位置提供者,它在所有本地应用程序中都很有效,但如果我尝试使用使用html5地理位置API的web应用程序,它将失败。我的GIS数据采集应用程序是基于web的,我需要这个工作!
发布于 2016-12-03 03:36:12
我遇到了同样的问题,并能够从Trimble获得一些帮助:
我假设你在Android上工作,因为我们也在Android上看到了这种行为。不幸的是,你已经注意到了Google Chrome的一个奇怪的行为特征。您会发现,如果使用Firefox浏览器(或其他几种浏览器)并访问相同的maps.google.com,该位置将正确显示。
令人费解的是,Location API的Chrome实现并不能处理所有情况下的模拟位置。我们正在对此进行调查,但到目前为止还没有正式的解决方案(除了非Chrome浏览器的变通方法)。
发布于 2017-06-22 20:53:04
使用带有R2的Trimble "GNSS status“应用程序,在火狐和safari正常工作时,遇到了ipad+chrome和各种android+chrome组合的相同问题。
对于一个简单的测试:
<DOCTYPE html>
<html>
<head>
<style>
body {
background: white;
font-family: Arial, Helvetica, sans-serif;
font-size: 1em;
color: #000;
}
@media all and (max-width: 1000px) {
body { font-size: 200%;}
}
</style>
<script>
function init() {
var compass = document.getElementById('compass');
var lat = document.getElementById('lat');
var lon = document.getElementById('lon');
var acc = document.getElementById('acc');
var alt = document.getElementById('alt');
var altAcc = document.getElementById('altAcc');
var err = document.getElementById('err');
var heading = document.getElementById('heading');
var speed = document.getElementById('speed');
var timestamp = document.getElementById('timestamp');
if(window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(event) {
var alpha;
if(event.webkitCompassHeading) {
alpha = event.webkitCompassHeading;
}
else {
alpha = event.alpha;
}
compass.innerHTML = alpha;
}, false);
}
if(navigator.geolocation) {
var opts = {
enableHighAccuracy: true,
timeout: 6000,
maximumAge: 5000
};
navigator.geolocation.watchPosition(
updateLocation,
handleLocationError,
opts
);
}
}
function updateLocation(position) {
lat.innerHTML = position.coords.latitude;
lon.innerHTML = position.coords.longitude;
acc.innerHTML = position.coords.accuracy;
alt.innerHTML = position.coords.altitude;
altAcc.innerHTML = position.coords.altitudeAccuracy;
heading.innerHTML = position.coords.heading;
speed.innerHTML = position.coords.speed;
var t = new Date(position.timestamp).toString();
timestamp.innerHTML = t;
addMsg(t);
}
function handleLocationError(e){
var msg = e.code+': ';
switch (e.code) {
case error.PERMISSION_DENIED:
msg += 'Permission was denied';
break;
case error.POSITION_UNAVAILABLE:
msg +='Position is currently unavailable.';
break;
case error.PERMISSION_DENIED_TIMEOUT:
msg += 'User took to long to grant/deny permission.';
break;
case error.UNKNOWN_ERROR:
msg += 'An unknown error occurred.';
break;
}
addMsg(msg);
}
function addMsg(msg){
err.appendChild(document.createTextNode('message: '+ msg));
err.appendChild(document.createElement("br"));
}
</script>
</head>
<body onload="init()" >
<p>compass: <span id="compass"></span> deg</p>
<hr>
<p>lat: <span id="lat"></span> deg</p>
<p>lon: <span id="lon"></span> deg</p>
<p>acc: <span id="acc"></span> m</p>
<p>alt: <span id="alt"></span> m +msl</p>
<p>alt. acc: <span id="altAcc"></span> m</p>
<p>heading: <span id="heading"></span> deg</p>
<p>speed: <span id="speed"></span> m/s</p>
<p>timestamp: <span id="timestamp"></span></p>
<hr>
<p>messages:</p>
<div id="err"></div>
</body>
</html>https://stackoverflow.com/questions/39214630
复制相似问题