0

Ich versuche, die vier Ecken der Google Map zu bekommen, nach denen eine API fragt.Bekomme map eckige Koordinaten mit google maps - javascript api

swLat swLng neLat neLng

Ich habe den folgenden Code, aber diese sind wiederkehrende Objekte und im nicht sicher, ob dies ist, was der auch für die Nachfrage. Würden diese sich paaren (sobald sie Korrekt zurückkommen) NE ->? Dank

var map = new google.maps.Map(document.getElementById("map"), mapOptions); 


     google.maps.event.addListenerOnce(map, 'bounds_changed', function() { 
      var rectangle = new google.maps.Rectangle({ 
       bounds: map.getBounds() 
      }) 
      var bounds = rectangle.getBounds(); 
      var NE = bounds.getNorthEast(); 
       var NEmark = new google.maps.Marker({ 
      map: map, 
      position: NE, 
      title: "NE" 
      }); 
      var SW = bounds.getSouthWest(); 
      var SWmark = new google.maps.Marker({ 
      map: map, 
      position: SW, 
      title: "SW" 
      }); 
      // North West 
      var NW = new google.maps.LatLng(NE.lat(), SW.lng()); 
      var NWmark = new google.maps.Marker({ 
      map: map, 
      position: NW, 
      title: "NW" 
      }); 
      // South East 
      var SE = new google.maps.LatLng(SW.lat(), NE.lng()); 
      var SEmark = new google.maps.Marker({ 
      map: map, 
      position: SE, 
      title: "SE" 
      }); 

      $scope.NE = NE 
      $scope.NW = NW 
      $scope.SW = SW 
      $scope.SE = SE 


      var polygon = new google.maps.Polygon({ 
      map: map, 
      paths: [ 
       [NE, NW, SW, SE] 
      ] 
      }); 
      map.setZoom(map.getZoom() - 1); 
     }); 
     console.log("SE" + $scope.SE) //all undefined 
     console.log("NW" + $scope.NW) 
     console.log("SW" + $scope.SW) 
     console.log("NE" + $scope.NE) 

Antwort

0

Versuchen Sie folgendes:

google.maps.event.addListenerOnce(map, 'bounds_changed', function() { 
     var swLat = map.getBounds().getSouthWest().lat(); 
     var swLng = map.getBounds().getSouthWest().lng(); 
     var neLat = map.getBounds().getNorthEast().lat(); 
     var neLng = map.getBounds().getNorthEast().lng();  
     console.log('swLat: ' + swLat); 
     console.log('swLng: ' + swLng); 
     console.log('neLat: ' + neLat); 
     console.log('neLng: ' + neLng); 
    }); 

hoffe, das hilft!