1

我正在执行下面的代码来获取用户的当前位置。它工作得很好,但我只得到“平面”信息 - 高度和经度 - 而高度为null。可以补救吗?如果可以,如何补救?

var geolocationProvider = new Microsoft.Maps
  .GeoLocationProvider(map).getCurrentPosition({
    successCallback: function(data) {
      var latitude = data.position.coords.latitude;
      var longitude = data.position.coords.longitude;
      var altitude = data.position.coords.altitude;
    } ...
});

请注意,我正在寻找基于 JavaSCript 调用的解决方案(目前避免使用 RESTing 和 WCFing)。出现问题的原因可能是
:我的代码有问题(错误或获取数据的语法)
b. 特定地点的问题(没有数据的地点)
c.Bing Maps 上缺乏高度数据(MS 根本没有数据)
d. 我的帐户权限不足(我的许可证没有数据)
e. 应用了错误的平台(没有 JS 控制方法的数据)
f. 其他?

当我F12看到这个的时候。

数据.位置.坐标

坐标{速度:null,航向:null,altitudeAccuracy:null,精度:34,高度:null…}精度:34
高度: nullaltitudeAccuracy
:null
航向:null
纬度:59.333358800000006
经度:18.0567974
速度:null
__proto__:坐标

4

3 回答 3

2

根据我们在聊天中的讨论,我不得不猜测他们目前没有高度数据,或者他们现在不愿意分享。

于 2014-01-01T17:51:27.960 回答
2

如果可用,将返回高度信息。支持此功能的位置 API 使用几种不同的方法来确定用户位置;GPS,WIFI三角测量,IP地址。只有 GPS 方法才能为用户提供真实的高度。Wifi 三角测量可以提供一个近似值,但由于错误通常不会返回。

如果您想获取用户所在位置的地面高程,则可以从 Bing 地图高程服务中检索:http: //msdn.microsoft.com/en-us/library/jj158959.aspx

于 2014-01-14T14:06:43.280 回答
1

var geo_options = { enableHighAccuracy: true, maximumAge : 30000, timeout : 27000 };

navigator.geolocation.watchPosition(showPosition, null, geo_options);

// 使用 Chrome 或 FF 时将填充海拔高度 (2019/01/31)

于 2019-01-31T23:16:18.993 回答