我正在执行下面的代码来获取用户的当前位置。它很有用,但我只得到“平坦”信息 - 海拔高度和经度 - 而海拔 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)。问题可能会因为以下原因而出现:
一个。我的代码问题(错误或语法获取数据)
湾特定地点的问题(没有数据的地点)
C。 Bing地图上没有高度数据(MS根本没有数据)
d。我的帐户权利不足(我的许可证没有数据)
即错误的平台应用(没有JS控制方法的数据)
F。其他
当我 F12 时,我看到了这一点。
data.position.coords
坐标{speed:null,heading:null,altitudeAccuracy:null,precision:34,altitude:null ...} 准确度:34
海拔高度:null altitudeAccuracy:null
标题:null
纬度:59.333358800000006
经度:18.0567974
速度:null
__proto__:坐标
答案 0 :(得分:2)
根据我们在聊天中的讨论,我不得不猜测他们目前没有高度数据,或者他们现在不愿意分享。
答案 1 :(得分:2)
如果高度信息可用,将返回高度信息。为其提供支持的位置API使用几种不同的方法来确定用户位置; GPS,WIFI三角测量,IP地址。只有GPS方法才能为用户提供真正的高度。 Wifi三角测量可以提供近似值,但由于错误通常不会返回。
如果您希望获得用户所在位置的高程,则可以从Bing Maps Elevation服务中检索此项:http://msdn.microsoft.com/en-us/library/jj158959.aspx
答案 2 :(得分:1)
var geo_options = { enableHighAccuracy:是, 最大年龄:30000, 超时:27000 };
navigator.geolocation.watchPosition(showPosition,null,geo_options);
//使用Chrome或FF(2019/01/31)时将填充海拔高度