2011-12-21 27 views
10

estoy usando ª versión más reciente de la API (v7), y me gustaría añadir un pasador en clic del ratón ...Cómo llegar latitud/longitud de un clic del ratón con Bing Mapas 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); 
}); 

Como ve, estoy atrapado en el controlador de clics: ¿Cómo obtengo la latitud & longitud del clic?

+0

para aquellos que se preguntan, en Bing Maps v8, la ubicación se cuelga justo fuera del parámetro de devolución de llamada (e). 'e.location n {latitud: 39.29711299974974, longitud: -111.57935390625, altitud: 0, altitudReferencia: -1}' – RyBolt

Respuesta

17

Ok, lo tengo clavado. Aquí está la parte del código que le interesa:

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() sólo funciona cuando el objetivo es una chincheta, caja de información, etc. El clic en el mapa real es diferente.

+0

nope ... sry 'Uncaught TypeError: no se puede llamar al método 'getLocation' de undefined' –

+0

He actualizado la respuesta a use 'e.target' en lugar de' e.entity'. Ve si eso funciona. No puedo probar esto ahora mismo. – talereader

+0

nope ... sry ... 'TypeError no detectada: Objeto # no tiene el método 'getLocation'' –

Cuestiones relacionadas