求助:Bing Maps热力图无法显示正确位置的问题
问题原因及解决方案
你的代码核心错误在于误用了tryPixelToLocation方法——这个方法是用来把地图控件上的像素坐标转换成地理位置的,你却直接把经纬度数值当成像素坐标传进去,这必然会得到完全偏离目标的位置(阿拉斯加区域)。
正确的做法是直接通过Microsoft.Maps.Location构造函数创建地理位置对象,无需像素坐标转换。修正后的代码如下:
Microsoft.Maps.loadModule('Microsoft.Maps.HeatMap', function () { var locations = []; // 直接创建Location对象,参数顺序为:纬度(latitude)、经度(longitude) locations.push(new Microsoft.Maps.Location(28.150900, -81.468440)); var heatMap = new Microsoft.Maps.HeatMapLayer(locations); map.layers.insert(heatMap); });
补充说明:目标地址410 Marlberry Leaf Ave, Kissimmee, FL 34758对应的经纬度确实是28.1509, -81.4684,只要直接用这个值创建Location对象,热力图就会正确显示在佛罗里达州基西米市的对应位置。
内容的提问来源于stack exchange,提问作者jhon
相关产品推荐
相关产品推荐

