添加fit =" true" a.lat不是函数。关于ui-gmap-markers

时间:2015-09-02 15:14:02

标签: angularjs google-maps google-maps-api-3

由于某种原因我得到了这个错误,不知道为什么,请帮忙!

这是堆栈跟踪:

TypeError: a.lat is not a function
at oh.extend (main.js:34)
at Object.angular.module.service.fit (angular-google-maps.js:968)
at MarkerManager.angular.module.factory.MarkerManager.fit (angular-google-maps.js:2237)
at MarkerManager.bind as fit
at angular-google-maps.js:5015
at processQueue (angular.js:14634)
at angular.js:14650
at Scope.$get.Scope.$eval (angular.js:15878)
at Scope.$get.Scope.$digest (angular.js:15689)
at angular.js:15917Hi this is my map, for some reason i get this error, not sure why, please help!

这是我的HTML:

<div>
    <div ng-show="mapLoader" class="content-loader">
        <div class="sniper"></div>
    </div>

    <span ng-click="cancel()" class="fa fa-times close-modal"></span>

    <ui-gmap-google-map ng-if="render"
                        bounds="mapOption.bounds"
                        center="mapOption.center"
                        zoom="mapOption.zoom"
                        control="myGoogleMap">

        <ui-gmap-markers
                models="mapOption.points"
                coords="'coords'"
                fit="true"
                click="onClick">
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('incident')">
                <div>
                    <span><b>Type:</b> {{mapOption.selected.type}} </span><br>
                    <span><b>Phone:</b> {{mapOption.selected.phone}} </span><br>
                    <span><b>Priority:</b> {{mapOption.selected.priority}} </span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('attendance')">
                <div>
                    <span><b>Employee:</b> {{mapOption.selected.employee}} </span><br>
                    <span><b>Employee Name:</b> {{mapOption.selected.employee_name}} </span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('form_submissions')">
                <div>
                    <span><b>Form Name:</b> {{mapOption.selected.form_name}} </span><br>
                    <span><b>Phone:</b> {{mapOption.selected.phone}} </span><br>
                    <span><b>Score:</b> {{mapOption.selected.score}} </span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('locations')">
                <div>
                    <span><b>Phone:</b> {{mapOption.selected.phone}} </span><br>
                    <span><b>Status:</b> {{getStatusDesc(mapOption.selected.status)}}</span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('panic_report')">
                <div>
                    <span><b>Phone:</b> {{mapOption.selected.phone}} </span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
            <ui-gmap-window coords="mapOption.selected.coords" show="windowOptions.show" closeClick="closeClick()"
                            ng-if="isReportInfo('scans')">
                <div>
                    <span><b>Site:</b> {{mapOption.selected.site}} </span><br>
                    <span><b>Checkpoint:</b> {{mapOption.selected.cp}} </span><br>
                    <span><b>Date:</b> {{mapOption.selected.timestamp | date:'H:mm, MM/dd/yyyy'}}</span>
                </div>
            </ui-gmap-window>
        </ui-gmap-markers>
    </ui-gmap-google-map>
</div>

这是我的控制者:

 uiGmapGoogleMapApi.then(function (maps) {
            //google.maps.event.clearListeners(maps, 'bounds_changed');
            $scope.mapLoader = true;
            getMapData();
        });

 function getMapData() {
            $scope.mapOption = {
                center: {latitude: 0, longitude: 0},
                zoom: 8,
                points: [],
                bounds: {},
                selected: {},
                reportName: reportName
            };

   var markers = angular.fromJson(data.data);
            markers.results.forEach(function (marker) {
                marker.coords = {
                    latitude: marker.coords[0],
                    longitude: marker.coords[1]
                };
                marker.id = 'key' + CommonService.generateRandomId();
                marker.show = true;
                marker.onClick = function () {
                    $scope.windowOptions.show = !$scope.windowOptions.show;
                    $scope.mapOption.selected = marker;
                };
            });
            $scope.mapOption.markers = markers.results;
            $scope.render = true;
            $timeout(function() {
                $scope.mapLoader = false;
            }, 2000);

1 个答案:

答案 0 :(得分:1)

我在angular-google-maps版本 2.1.6 中遇到了同样的问题。返回版本 angular-google-maps 2.1.5解决此问题