在用户点击的Google Map中捕获坐标

Bad*_*123 42 google-maps-api-3

当用户使用下面的事件监听器点击地图时,我正在使用此代码来捕获坐标:

google.maps.event.addListener(map, 'click', function(event) {
    placeMarker(event.latLng);
});
Run Code Online (Sandbox Code Playgroud)

但是,当用户单击Map中已标记的位置时,不会调用此函数.这意味着对于鼠标指针在Google Map上更改为手形图标的点,不会调用此函数.

需要有关捕获这些位置的帮助.

Ash*_*mar 48

你应该在标记上添加点击监听器,它会给你标记的位置.

//Add listener
google.maps.event.addListener(marker, "click", function (event) {
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();
    console.log( latitude + ', ' + longitude );
}); //end addListener
Run Code Online (Sandbox Code Playgroud)

编辑:你需要这样的东西

//Add listener
google.maps.event.addListener(marker, "click", function (event) {
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();
    console.log( latitude + ', ' + longitude );

    radius = new google.maps.Circle({map: map,
        radius: 100,
        center: event.latLng,
        fillColor: '#777',
        fillOpacity: 0.1,
        strokeColor: '#AA0000',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        draggable: true,    // Dragable
        editable: true      // Resizable
    });

    // Center of map
    map.panTo(new google.maps.LatLng(latitude,longitude));

}); //end addListener
Run Code Online (Sandbox Code Playgroud)


dav*_*rad 13

另一种解决方案是在地图上放置一个多边形,与地图矩形的大小相同,并收集此矩形单击.

function initialize() {
  var mapDiv = document.getElementById('map-canvas');
  var map = new google.maps.Map(mapDiv, {
    center: new google.maps.LatLng(37.4419, -122.1419),
    zoom: 13,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  google.maps.event.addListener(map, 'bounds_changed', function() {
      var lat1 = 37.41463623043073;
      var lat2 = 37.46915383933881;
      var lng1 = -122.1848153442383;
      var lng2 = -122.09898465576174;  

      var rectangle = new google.maps.Polygon({
         paths : [
           new google.maps.LatLng(lat1, lng1),
           new google.maps.LatLng(lat2, lng1),
           new google.maps.LatLng(lat2, lng2),
           new google.maps.LatLng(lat1, lng2)
         ],
        strokeOpacity: 0,
        fillOpacity : 0,
        map : map
      });
      google.maps.event.addListener(rectangle, 'click', function(args) {  
         console.log('latlng', args.latLng);
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

现在你也可以获得LatLng的感兴趣的地方(以及他们喜欢的地方).

演示 - > http://jsfiddle.net/qmhku4dh/