Я пытаюсь создать вогнутый многоугольник, получив клики пользователей на карте. Я могу создать выпуклые многоугольники просто отлично. Но когда я пытаюсь создать вогнутый полигон я должен нажать на полигоне сами дают мне следующую ошибку: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
является многоугольник?
Из того, что я могу сказать, и из того, что показало тестирование, нет никакой переменной, называемой 'map' в рамках этой функции. – ChrisStillwell
Переменная карты должна быть доступна, поскольку она не является локальной переменной (без нее слева). Это означало бы, что это глобальная переменная или, по крайней мере, в той же области, что и функция getUserClick. – rbrundritt
Хорошо, я понимаю, о чем вы говорите. Он не был настроен как глобальный, но устанавливал его как глобальный, а затем выполнял то, что вы предлагали. – ChrisStillwell