加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何使用mvc5中的angular-google-maps绘制多边形

发布时间:2020-12-17 07:27:16 所属栏目:安全 来源:网络整理
导读:第一次使用angular-google-maps.我很困惑如何绘制多边形并抓取该区域中的所有邮政编码.我不知道该怎么做.以下是我的代码 div ng-app="myapp" ng-controller="mapsController" !--It displays the markers links-- div class="locations" ul li ng-repeat="l
第一次使用angular-google-maps.我很困惑如何绘制多边形并抓取该区域中的所有邮政编码.我不知道该怎么做.以下是我的代码
<div ng-app="myapp" ng-controller="mapsController">
    <!--It displays the markers links-->
    <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">
        <!-- Add directive code (gmap directive) for show map and markers-->
        <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>

在我的script.js中,我编写了以下代码

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

这只显示了一个缩放的谷歌地图,甚至没有绘制任何内容.请帮忙.我注意到的一件事是!$scope.drawingManagerControl.getDrawingManager在if条件中变为true并返回.

我认为你应该退后一步,寻找你真正想要实现的目标.
如果你想学习角度,谷歌地图,或两者兼而有之,我认为你不是在正确的道路上.
首先,您使用的库不再由其创建者维护.即使他们建议使用备用选项:

Project not longer maintained

对于他们展示的两个选项,我将推荐第二个:angular-google-maps

该库将与Angular2一起使用.如果您正在寻求学习新技术,您应该致力于技术提升. Angularjs虽然是一个非常好用的库,但它是Angular2的前身,随着时间的推移,它将不那么受欢迎.

话说回来;我注意到你没有在地图中声明任何标记或位置.因此,没有数据设置在地图中显示.这就是为什么你只看到一张空地图.

$scope.markers = [];
$scope.locations = [];

我建议您在尝试之前尝试理解您尝试实现的代码的逻辑,并使其在天空中工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读