2015-03-31 114 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

相关问题