2017-05-26 9 views
-1

Ich benutze ngmap und immer wenn ich KML Polygon-Datei importiere, wird das Polygon auf der Karte ertrinken. Ich habe ein Problem beim Zoomen auf das Polygon. Gibt es eine Möglichkeit, das Polygonzentrum (Breitengrad und Längengrad) zu berechnen? Wenn nicht, ist es sowieso nötig, das Polygon zu vergrößern, nachdem es auf der ngmap gezeichnet wurde.Wie berechnet man das Zentrum des ngmap Polygons?

Danke

Antwort

0

Jedes Mal, wenn KML-Ebene und das preserve-viewport Attribut kml-layer Richtlinie hinzugefügt wird, auf true, wird die Karte automatisch auf Layer Ansichtsfenstern basierend zentrierte bekommen (es bedeutet auch nicht notwendig ist, das Zentrum explizit angeben)

um KML Schicht Zentrum zu bestimmen:

1) id Attribut kml-layer Richtlinie gesetzt KML Schicht

zu referenzieren
<kml-layer preserve-viewport="true" id="myLayer" url="http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml"></kml-layer> 

2), sobald die Schicht gemacht ist, die Instanz von KML Schicht erhalten und dann in der Mitte über google.maps.KmlLayer.getDefaultViewport Funktion:

NgMap.getMap().then(function(map) { 
     var layer = map.kmlLayers["myLayer"] 
     var center = layer.getDefaultViewport().getCenter();  
}); 

Beispiel

angular.module('mapApp', ['ngMap']) 
 
    .controller('mapCtrl', function($scope, NgMap) { 
 

 
     NgMap.getMap().then(function(map) { 
 
      $scope.map = map; 
 
      var layer = map.kmlLayers["myLayer"] 
 
      var center = layer.getDefaultViewport().getCenter(); 
 
      console.log(center.toString()); // 
 
      map.fitBounds(layer.getDefaultViewport()); 
 
     }); 
 
     
 
    });
<script src="https://code.angularjs.org/1.4.8/angular.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<script src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.js"></script> 
 

 

 
<div ng-app="mapApp" ng-controller="mapCtrl"> 
 
    <ng-map center="21.876,-27.624" zoom="5" map-type-id="HYBRID" style="display:block; width: 100%; height:100%;"> 
 
    <kml-layer preserve-viewport="true" id="myLayer" url="http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml"></kml-layer> 
 
    </ng-map> 
 
</div>

Verwandte Themen