Bing 在多边形上映射 tryPixelToLocation
Bing Maps tryPixelToLocation on Polygon
我试图通过让用户点击地图来创建一个凹多边形。我可以很好地创建凸多边形。但是,当我尝试创建凹多边形时,我必须单击多边形本身,出现以下错误:
e.target.tryPixelToLocation is not a function
请允许我进一步详细说明。用户在地图上单击,然后在地图上放置一个图钉以显示他们刚刚单击的位置。他们又点击了两次,现在他们在地图上绘制了一个三角形。当他们试图在该三角形内部单击以绘制第四个点,创建一个凹多边形时,他们会收到上述错误。
我使用的代码如下
function GetMap(sender, args) {
map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {
credentials: "XXXXX",
enableSearchLogo: false,
enableClickableLogo: false,
disableBirdseye: true
});
map.setView({
zoom: 17,
center: new Microsoft.Maps.Location($('#startLatitude').val(), $('#startLongitude').val()),
mapTypeId: Microsoft.Maps.MapTypeId.aerial,
labelOverlay: Microsoft.Maps.LabelOverlay.visible
});
Microsoft.Maps.Events.addHandler(map, 'click', getUserClick);
}
function getUserClick(e) {
alert(e.targetType); // <--- When this is 'Polygon' we get the error
if (e.mouseMoved === false && e.isPrimary === true) {
var p = new Microsoft.Maps.Point(e.getX(), e.getY());
var t = e.target.tryPixelToLocation(p);
var l = new Microsoft.Maps.Location(t.latitude, t.longitude);
// Clear and draw polygon with new point //
}
}
当targetType
是多边形时,如何获取点击的latitude/longitude?
当点击事件发生在多边形 class 上时使用 map.tryPixelToLocation 因为多边形 class 没有那个功能。
我试图通过让用户点击地图来创建一个凹多边形。我可以很好地创建凸多边形。但是,当我尝试创建凹多边形时,我必须单击多边形本身,出现以下错误:
e.target.tryPixelToLocation is not a function
请允许我进一步详细说明。用户在地图上单击,然后在地图上放置一个图钉以显示他们刚刚单击的位置。他们又点击了两次,现在他们在地图上绘制了一个三角形。当他们试图在该三角形内部单击以绘制第四个点,创建一个凹多边形时,他们会收到上述错误。
我使用的代码如下
function GetMap(sender, args) {
map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {
credentials: "XXXXX",
enableSearchLogo: false,
enableClickableLogo: false,
disableBirdseye: true
});
map.setView({
zoom: 17,
center: new Microsoft.Maps.Location($('#startLatitude').val(), $('#startLongitude').val()),
mapTypeId: Microsoft.Maps.MapTypeId.aerial,
labelOverlay: Microsoft.Maps.LabelOverlay.visible
});
Microsoft.Maps.Events.addHandler(map, 'click', getUserClick);
}
function getUserClick(e) {
alert(e.targetType); // <--- When this is 'Polygon' we get the error
if (e.mouseMoved === false && e.isPrimary === true) {
var p = new Microsoft.Maps.Point(e.getX(), e.getY());
var t = e.target.tryPixelToLocation(p);
var l = new Microsoft.Maps.Location(t.latitude, t.longitude);
// Clear and draw polygon with new point //
}
}
当targetType
是多边形时,如何获取点击的latitude/longitude?
当点击事件发生在多边形 class 上时使用 map.tryPixelToLocation 因为多边形 class 没有那个功能。