2011-12-21 23 views
10

Tôi đang sử dụng phiên bản mới nhất của API (v7) và muốn thêm đinh ghim khi nhấp chuột ...Cách lấy lat/lon của một cú click chuột với Bản đồ Bing 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); 
}); 

Như bạn thấy, tôi bị kẹt trong trình xử lý nhấp chuột: Làm cách nào để nhận được vĩ độ & kinh độ của nhấp chuột?

+0

cho những người tự hỏi, trong Bản đồ Bing v8, vị trí đang treo ngay bên ngoài tham số gọi lại (e). 'e.location n {latitude: 39.29711299974974, kinh độ: -111.57935390625, độ cao: 0, altitudeReference: -1}' – RyBolt

Trả lời

17

Ok, đã đóng đinh nó. Dưới đây là các bit mã mà bạn đang quan tâm:

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() chỉ hoạt động khi mục tiêu là một chiếc đinh ghim, hộp thông tin, vv nhấp chuột trên bản đồ thực tế là khác nhau.

+0

nope ... sry 'Uncaught TypeError: Không thể gọi phương thức 'getLocation' của undefined' –

+0

Tôi đã cập nhật câu trả lời cho sử dụng 'e.target' thay vì' e.entity'. Xem có hiệu quả không. Tôi không thể kiểm tra điều này ngay bây giờ. – talereader

+0

nope ... sry ... 'Uncaught TypeError: Object # không có phương pháp 'getLocation'' –

Các vấn đề liên quan