Working with angular-google-maps for the first time. I am confused how to draw a polygon and grab all the zip codes in this region. And I have no idea how to do this. Below is my code
<div ng-app="myapp" ng-controller="mapsController"> <div class="locations"> <ul> <li ng-repeat="l in locations" ng-click="ShowLocation(l.LocationID)"><a href="#">{{l.Title}}</a></li> </ul> </div> <div class="maps"> <ui-gmap-google-map style="box-shadow:2px 2px 2px 2px lightgrey" center="map.center" zoom="map.zoom"> <ui-gmap-marker ng-repeat="marker in markers" coords="marker.coords" options="marker.options" events="marker.events" idkey="marker.id"> <ui-gmap-window options="windowOptions" show="windowOptions.show"> <ui-gmap-drawing-manager options="drawingManagerOptions" control="drawingManagerControl"></ui-gmap-drawing-manager> </ui-gmap-window> </ui-gmap-marker> </ui-gmap-google-map> </div> </div>
In my script.js I wrote the following code
var app = angular.module('myapp', ['uiGmapgoogle-maps']); //dependency we should add to angular application app.controller('mapsController', function ($scope, uiGmapGoogleMapApi) { //this is default coordinates for the map when it loads for first time $scope.map = { center: { latitude: 41.850033, longitude: -87.6500523 }, zoom: 4, polygons: [], isDrawingModeEnabled: true, bounds: {} }; $scope.markers = []; $scope.locations = []; $scope.windowOptions = { show: true }; $scope.options = { scrollwheel: false }; uiGmapGoogleMapApi.then(function (maps) { $scope.drawingManagerOptions = { drawingMode: google.maps.drawing.OverlayType.MARKER, drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.POLYLINE, google.maps.drawing.OverlayType.RECTANGLE ] }, circleOptions: { fillColor: '#ffff00', fillOpacity: 1, strokeWeight: 5, clickable: false, editable: true, zIndex: 1 } }; $scope.markersAndCircleFlag = true; $scope.drawingManagerControl = {}; $scope.$watch('markersAndCircleFlag', function () { if (!$scope.drawingManagerControl.getDrawingManager) { return; } var controlOptions = angular.copy($scope.drawingManagerOptions); if (!$scope.markersAndCircleFlag) { controlOptions.drawingControlOptions.drawingModes.shift(); controlOptions.drawingControlOptions.drawingModes.shift(); } $scope.drawingManagerControl.getDrawingManager().setOptions(controlOptions); }); }) }).config(function (uiGmapGoogleMapApiProvider) { uiGmapGoogleMapApiProvider.configure({ libraries: 'drawing,geometry,visualization' }); }); //var latlng = new google.maps.LatLng(37.09024, -95.712891); //latitude: 41.850033, longitude: -87.6500523
It only shows a google map that scales and doesn't even draw anything. Please help. One thing I noticed is! $ Scope.drawingManagerControl.getDrawingManager turns true if the condition returns.
angularjs asp.net-mvc-5 angular-google-maps
Sana
source share