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>