2015-03-31 157 views
2
$scope.map = { 
    center: { 
     latitude: 36, 
     longitude: -80 
    }, 
    zoom: 3, 
    showOverlay: true, 
    events: { 
     "click": function() 
     { console.log(" latitude: " + $scope.map.center.latitude + "longitude: " + $scope.map.center.longitude); } 
    }, 
    options: { 
     streetViewControl: false, 
     panControl: false, 
     maxZoom: 20, 
     minZoom: 1, 

    } 
} 

所以我有一個問題,以獲得我的鼠標點擊事件的經度和緯度使用angularJS和谷歌地圖api v3。這是我的控制器的一個例子。我已經在地圖上添加了一個事件,以便獲得坐騎,但是現在我得到的僅僅是中心的坐騎。我不知道如何得到我的鼠標點擊事件的確切座標。謝謝你的幫助。獲取座標上的鼠標點擊谷歌地圖api v3和angularJS

回答

10

您必須實現先得點擊獲取位置的聽衆:

google.maps.event.addListener(map, 'click', function(event) { 
    alert(event.latLng); // in event.latLng you have the coordinates of click 
}); 

入住這DEMO FIDDLE

+0

這是使用標準的JS工作,但我使用AngularJS的控制器,它不像那樣工作,事件在我的地圖上,但latLng沒有定義,我認爲我不能獲得這樣的位置。 – Ayyoub 2015-03-31 09:10:34

+0

如果你不能使用'javascript'從你的問題中刪除標籤...如果沒有,用'angularjs'定義地圖並使用'javascript'來實現監聽器... – 2015-03-31 09:13:50

+0

非常感謝,我會嘗試併合並它使用kiro112提供的github解決方案。 – Ayyoub 2015-03-31 09:24:49

1

click事件在角和谷歌地圖V3返回三個對象:例如,eventName的,處理程序。

第三個有latLong with lat(),lng()函數。

所以你可以通過handler [0] .latLng.lat()獲得緯度。

還有一個有用的像素具有點擊點位置屬性x,y的對象。

+0

投票的任何理由? 我已經解決了使用此解決方案時遇到的確切問題。 – 2016-07-03 15:17:26

+0

這應該是真正的答案, – mjwrazor 2017-04-13 14:07:52

0

如果你使用的角爲什麼不會使用它的指令地圖。 ngMap

+0

谷歌地圖有很多指令。他正在使用不同的指令。 ngMap不是唯一的。 – mjwrazor 2017-04-13 14:04:32

+0

他實際上沒有使用任何指令..他只是將地圖信息放在控制器$ scope上。 – Fida 2017-04-13 14:10:48

+0

我正在使用[Angular Google Maps](https://angular-ui.github.io/angular-google-maps/#!/api/google-map),並且我的控制器中的設置完全相同。指令在HTML中,邏輯在控制器中。 NgMap使用連接到他們的指令的名字函數。 – mjwrazor 2017-04-13 14:16:55

相關問題