Преобразование Bing 6.1 в 7.0 - PullRequest
       7

Преобразование Bing 6.1 в 7.0

0 голосов
/ 10 декабря 2011

Я получил этот код, который работает на 100% правильно, используя Bing Maps Api V6.1 Но я не хочу использовать его с использованием новейшей версии API (7.0). Мне действительно нужна помощь для его преобразования.Так что, если у кого-то есть какие-либо советы о том, где я собираюсь начать, или, возможно, у вас есть ссылка с учебником.Спасибо.

<!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" />
<style type="text/css" media="screen">
ul, li {margin:0;padding:0;}

ul.pmenu
{
    display: none;
    position:absolute;
    margin: 0;
    padding: 1px;
    list-style: none;
    width: 150px; /* Width of Menu Items */
    border: 1px solid #ccc;
    background: #235087;
    z-index:10;
}

ul.pmenu li { position: relative; }

ul.pmenu li a
{
    display: block;
    text-decoration: none;
    color: White;
    padding: 2px 5px 2px 20px;
}

ul.pmenu li a:hover
{
    background:#335EA8;
    color:white;
}
</style>
<script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
<script type="text/javascript">
var map = null;
function GetMap() {
    map = new VEMap('myMap');
    map.LoadMap();
    map.AttachEvent("onclick", ShowPopupMenu);
}
function ShowPopupMenu(e) {
if (!e.rightMouseButton) {
    RemovePopupMenu();
    return;
}

var menu = document.getElementById('popupmenu');

menu.style.display = 'block'; //Showing the menu
menu.style.left = e.clientX + "px"; //Positioning the menu
menu.style.top = e.clientY + "px";
}

function RemovePopupMenu() {
document.getElementById("popupmenu").style.display = 'none';
} 
</script>
</head>
<body onload="GetMap();">
<div id="menu">
    <ul id="popupmenu" class="pmenu">
        <li><a href="#" onclick='RemovePopupMenu(); alert("First");'>First</a></li>
        <li><a href="#" onclick='RemovePopupMenu(); alert("Second");'>Second</a></li>
        <li><a href="#" onclick='RemovePopupMenu();'>Exit</a></li>
    </ul>
</div>
 <div id='myMap' style="position:relative; width:1000px; height:800px;"></div>
 </body>
 </html>

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Можете попробовать посмотреть: http://msdn.microsoft.com/en-us/library/gg427624.aspx

Я сделал небольшую скрипку: http://jsfiddle.net/IrvinDominin/nPPqV/1/

Но теперь у меня ошибка с учетными данными, потому что у меня нет учетной записи dev на MS.

EDIT:

новая рабочая версия http://jsfiddle.net/IrvinDominin/nPPqV/4/

EDIT:

окончательная полностью рабочая версия: http://jsfiddle.net/IrvinDominin/nPPqV/5/

0 голосов
/ 10 декабря 2011

Полагаю, это будет примерно так:

var map = null;
function GetMap() {
    map = new Microsoft.Maps.Map(document.getElementById("myMap"), {credentials:"Bing Maps Key"});
    Microsoft.Maps.Events.addHandler(map, 'click', ShowPopupMenu);
    Microsoft.Maps.Events.addHandler(map, 'rightclick', RemovePopupMenu);
}

Редактировать:

В вашем ShowPopupMenu, вероятно, придется использовать свойства pageX и pageYthis.

function ShowPopupMenu(e) {

var menu = document.getElementById('popupmenu');

menu.style.display = 'block'; //Showing the menu
menu.style.left = e.pageX + "px"; //Positioning the menu
menu.style.top = e.pageY + "px";
}

Ссылки на документацию:

...