将地图视窗点击位置转换为地图坐标(Bing地图)
Convert map viewport click position to map coordinates (Bing maps)
所以我有一个canvas
覆盖在Bing JavaScript v7地图上,这个想法是,当用户点击画布时,它在地图后面的同一点创建一个图钉。
我如何修正数学使其工作?注意:我必须使用一个覆盖的画布,而不是直接在地图上捕获点击事件。
好的,如果您必须使用画布,您可以计算用户在画布上单击的像素坐标,然后通过相对于地图控件位置的tryPixelToLocation方法传递这些坐标。这是点击事件的更新版本:
$("canvas").click(function(e){
var relativeX = e.pageX - this.offsetLeft;
var relativeY = e.pageY - this.offsetTop;
var loc = map.tryPixelToLocation(new Microsoft.Maps.Point(relativeX, relativeY), Microsoft.Maps.PixelReference.control);
// push pin; location is top right corner in degs plus a portion of map degree dimension based on relative click pos
map.entities.push(
new Microsoft.Maps.Pushpin(loc, null)
);
// DEBUG; zoom out to show marker pos
map.setView({ zoom: 9 });
});
为什么要使用画布?为什么不像这样在地图中添加一个点击事件呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
<script type="text/javascript">
var map;
function GetMap()
{
map = new Microsoft.Maps.Map(document.getElementById("myMap"), {
credentials: "YOUR_BING_MAPS_KEY"
});
Microsoft.Maps.Events.addHandler(map, 'click', addPushpin);
}
function addPushpin(e){
var loc = map.tryPixelToLocation(new Microsoft.Maps.Point(e.getX(), e.getY()));
var pin = new Microsoft.Maps.Pushpin(loc);
map.entities.push(pin);
}
</script>
</head>
<body onload="GetMap();">
<div id='myMap' style='position:relative;width:800px;height:600px;'></div>
</body>
</html>
相关文章:
- 在谷歌地图上获取事件的x,y坐标
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 使用D3.js和GeoJson在地图上的某些坐标上设置一个小图像
- 通过“更改谷歌地图坐标”;点击”;
- 从用户那里获取谷歌地图坐标
- SVG 世界地图坐标
- 如何缩放 html5 画布以显示谷歌地图坐标
- 为什么不't锚只适用于Firefox中的地图坐标
- 使用谷歌地图坐标连接两个对象数组
- 如何舍入谷歌地图坐标在我的getElementById.innerHTML
- 将经纬度坐标转换为图像地图坐标
- 映射谷歌地图坐标从一个javascript变量
- 将地图视窗点击位置转换为地图坐标(Bing地图)
- 最好和最简单的方法传递地图坐标到谷歌地图
- 在数组中设置多个谷歌地图坐标对象
- 我该如何从贴图坐标切换到地图坐标
- 点击检索谷歌地图坐标
- Javascript谷歌地图坐标,parseFloat'坐标'+随机数错误
- 为用户隐藏Bing地图坐标
- 谷歌地图坐标不正确