【问题标题】:Get Cordinates on mouse click on google map api v3 and angularJS在 google map api v3 和 angularJS 上单击鼠标获取坐标
【发布时间】:2015-06-04 11:39:58
【问题描述】:
$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 和 google map api v3 获取鼠标点击事件的经度和纬度时遇到了问题。这是我的控制器的示例。我在地图上添加了一个事件来获取坐标,但现在我得到的只是中心的坐标。我不知道如何获得鼠标单击事件的确切坐标。感谢您的帮助。

【问题讨论】:

    标签: angularjs google-maps google-maps-api-3


    【解决方案1】:

    你必须实现一个监听点击并获取位置:

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

    查看DEMO FIDDLE

    【讨论】:

    • 这可以使用标准 JS,但是我正在使用带有 AngularJS 的控制器并且它不能那样工作,事件在我的地图上但 latLng 没有定义,我想我无法获得这样的位置.
    • 如果您不能使用javascript,请从您的问题中删除标签...如果没有,请使用angularjs 定义地图并使用javascript 来实现监听器...
    • 非常感谢,我会尝试并结合kiro112给出的github解决方案。
    • 这应该是答案!谢谢@Jordi Castilla。
    【解决方案2】:

    Angular 和 google maps v3 中的点击事件返回三个对象:instance、eventName、handler。

    第三个有 latLong 和 lat(), lng() 函数。

    所以你可以通过 handler[0].latLng.lat() 获取纬度。

    还有一个有用的 pixel 对象,它具有单击点的位置属性 x,y。

    【讨论】:

    • 否决票的任何理由?我已经解决了这个解决方案提出的确切问题。
    • 这应该是真正的答案,
    【解决方案3】:

    如果你使用 Angular 为什么不使用它的地图指令。 ngMap

    【讨论】:

    • 谷歌地图有很多指令。他正在使用不同的指令。 ngMap 不是唯一的。
    • 他实际上没有使用任何指令。他只是将地图信息放在控制器 $scope 上。
    • 我正在使用Angular Google Maps,并且我的控制器中有完全相同的设置。指令在 HTML 中,逻辑在控制器中。 NgMap 使用连接到它们的指令的名称函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多