Javascript 首先,在Bing地图上放置图钉效果很好,然后我再也不能放置图钉了,我的鼠标停止工作。但我看不出有什么不对?
我正在尝试制作一个程序,我可以用鼠标在bing地图上放置图钉。 但是当运行程序时,我只能放置第一个,然后我的鼠标停止工作。我找不到任何错误,因此我希望得到一些建议 好的,上面说我要补充更多细节。但问题似乎很容易理解:我做了一些应该合法的事情,这在微软自己的演示中得到了证明,但当我尝试它时,它仍然不起作用。这是一件如此简单、基本的事情,所以我觉得一定有一些基本的东西我就是不懂。 我正在一台全新的电脑上运行它,一台惠普。我计划今天晚些时候在另一台电脑上运行它。这似乎是我在地图上不理解的东西,但这实际上是从Bings主页上取的一些演示,它们似乎很有效。而且,它在Chrome、Firefox和edge上的工作方式似乎也是一样的 谢谢 波尔克Javascript 首先,在Bing地图上放置图钉效果很好,然后我再也不能放置图钉了,我的鼠标停止工作。但我看不出有什么不对?,javascript,maps,bing,pushpin,Javascript,Maps,Bing,Pushpin,我正在尝试制作一个程序,我可以用鼠标在bing地图上放置图钉。 但是当运行程序时,我只能放置第一个,然后我的鼠标停止工作。我找不到任何错误,因此我希望得到一些建议 好的,上面说我要补充更多细节。但问题似乎很容易理解:我做了一些应该合法的事情,这在微软自己的演示中得到了证明,但当我尝试它时,它仍然不起作用。这是一件如此简单、基本的事情,所以我觉得一定有一些基本的东西我就是不懂。 我正在一台全新的电脑上运行它,一台惠普。我计划今天晚些时候在另一台电脑上运行它。这似乎是我在地图上不理解的东西,但这实际
html,正文{
身高:100%;
宽度:100%;
边际:0px;
填充:0px;
溢出:隐藏;
字体系列:“Segoe UI”、Helvetica、Arial、无衬线字体;
位置:相对位置;
}
#用户菜单{
宽度:20%;
身高:40%;
顶部:50px;
左:50px;
位置:绝对位置;
背景色:青色;
颜色:黑色;
可见性:隐藏;
填充物:5px;
边框:1px纯蓝色;
边界半径:10px;
}
放置图钉
纬度、经度
var-gLoc;
功能用户菜单(l){
gLoc=l;
var o=document.getElementById('UserMenu').style;
如果(o.visibility==“visible”)
o、 可见性=“隐藏”
否则{
o、 可见性=“可见”;
var e=document.getElementById(“LatLong”);
e、 innerHTML=“纬度:”+l.Latitude+“经度:”+l.Latitude;
}
}//用户菜单()
函数CreateNewPushPin(){
var map=new Microsoft.Maps.map(document.getElementById('myMap'),{});
var pushpin=new Microsoft.Maps.pushpin(gLoc,null);
地图。实体。推(图钉);
//似乎我可以放置任意数量的图钉。工作正常,但当此功能结束时,鼠标仍然停止工作。。。
var pushpin=new Microsoft.Maps.pushpin(new Microsoft.Maps.Location(gLoc.latitude,gLoc.longitude-0.1),{color:'#0f0'});
地图。实体。推(图钉);
var pushpin=new Microsoft.Maps.pushpin(new Microsoft.Maps.Location(gLoc.latitude,gLoc.longitude+0.1),{color:'#0f0'});
地图。实体。推(图钉);
document.getElementById('UserMenu').style.visibility=“hidden”;
}//CreateNewPushPin()
函数句柄(id,e){
如果(id='mapRightclick')
用户菜单(如位置);
}
函数loadMapScenario(){
var map=new Microsoft.Maps.map(document.getElementById('myMap'),{});
Microsoft.Maps.Events.addHandler(映射,'rightclick',函数(e){handleArgs('mapRightclick',e);});
}
好的,多亏了微软的瑞奇·布伦德里特,我找到了解决方案。我不应该多次分配同一张地图。如果我分配一次,就没有问题了。
就这样
<!DOCTYPE html>
<html>
<style>
html, body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
overflow: hidden;
font-family:'Segoe UI', Helvetica, Arial, Sans-Serif;
position: relative;
}
#UserMenu {
width : 20%;
height : 40%;
top : 50px;
left : 50px;
position: absolute;
background-color: cyan;
color: black;
visibility: hidden;
padding: 5px;
border: 1px solid blue;
border-radius: 10px;
}
</style>
<body>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?key=&callback=loadMapScenario' async defer></script>
<div id='myMap' style='width: 100vw; height: 100vh;'></div>
<div id='UserMenu'>
<button id="CreateNewPushPin" class="menuknap" onclick="CreateNewPushPin()">Place pushpin</button>
<p id="LatLong" style="margin-left: 10px;margin-top: 0px;"> Latitude, Longitude </p>
</div>
<script type='text/javascript'>
var gLoc;
function UserMenu(l) {
gLoc = l;
var o = document.getElementById('UserMenu').style;
if (o.visibility == "visible")
o.visibility = "hidden"
else {
o.visibility = "visible";
var e = document.getElementById("LatLong");
e.innerHTML = "Latitude: " + l.latitude + ' Longitude: ' + l.longitude;
}
} // UserMenu()
function CreateNewPushPin() {
var map = new Microsoft.Maps.Map(document.getElementById('myMap'), {});
var pushpin = new Microsoft.Maps.Pushpin(gLoc, null);
map.entities.push(pushpin);
// Seems I can place as many pushpins as I'd like. Works fine, but the mouse still stops working when this function ends...
var pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(gLoc.latitude, gLoc.longitude - 0.1), { color: '#0f0'});
map.entities.push(pushpin);
var pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(gLoc.latitude, gLoc.longitude + 0.1), { color: '#0f0'});
map.entities.push(pushpin);
document.getElementById('UserMenu').style.visibility = "hidden";
} // CreateNewPushPin()
function handleArgs(id, e) {
if (id == 'mapRightclick')
UserMenu(e.location);
}
function loadMapScenario() {
var map = new Microsoft.Maps.Map(document.getElementById('myMap'), {});
Microsoft.Maps.Events.addHandler(map, 'rightclick', function (e) { handleArgs('mapRightclick', e); });
}
</script>
</body>
</html>