2011-12-21 1 views
10

Я использую й новейшую версию API (v7), и хотел бы добавить булавку на щелчок мыши ...Как получить широты/долготы от мыши с Bing Maps AJAX Control v7

var mapSettings = { 
    'credentials': 'myCredentials', 
    'mapTypeId': Microsoft.Maps.MapTypeId.road, 
    'enableSearchLogo': false, 
    'showMapTypeSelector': false, 
    'showScalebar': false 
}; 

var $map = $('#map'); 
var map = new Microsoft.Maps.Map($map.get(0), mapSettings); 
Microsoft.Maps.Events.addHandler(map, 'click', function (e) { 
    var latitude = ? 
    var longitude = ? 
    var location = new Microsoft.Maps.Location(latitude, longitude); 
    var pushpin = new Microsoft.Maps.Pushpin(location, { 
     'draggable': true 
    }); 
    map.entites.push(pushpin); 
}); 

Как вы видите, я застреваю в обработчике кликов: Как мне получить широту & долгота щелчка?

+0

для тех, кто задается вопросом, в Bing Maps v8, местоположение висит сразу после параметра обратного вызова (e). 'e.location n {широта: 39.29711299974974, longitude: -111.57935390625, heightitude: 0, heightitudeReference: -1}' – RyBolt

ответ

17

Хорошо, пригвоздил его. Вот фрагмент кода, который вы заинтересованы в:

if (e.targetType == "map") { 
    var point = new Microsoft.Maps.Point(e.getX(), e.getY()); 
    var loc = e.target.tryPixelToLocation(point); 
    var location = new Microsoft.Maps.Location(loc.latitude, loc.longitude); 
    ...... 
} 

e.target.getLocation() работает только тогда, когда целью является канцелярской, инфобокс и т.д. нажмите на реальной карте отличается.

+0

nope ... sry 'Uncaught TypeError: Невозможно вызвать метод getLocation 'неопределенного' –

+0

Я обновил ответ на используйте 'e.target' вместо' e.entity'. Посмотрите, работает ли это. Я не могу проверить это прямо сейчас. – talereader

+0

nope ... sry ... 'Uncaught TypeError: Object # не имеет метода getLocation'' –