AngularJS:显示空白页面的路线

时间:2016-10-10 07:00:55

标签: angularjs angular-google-maps

我有一个显示空白页面的路线/视图。我很确定它在几天前就像我现在的方式一样工作,这让我觉得我的Google Maps API密钥存在问题,但没有错误或警告,所以我认为这与我的问题有关路由设置。但我有另一种观点设置方式完全一样,而且确实有效...

视图断开:http://alainwebdesign.ca/pl2/#/49.2/-122.66

工作视图:http://alainwebdesign.ca/pl2/#/getLocation

Controller(我为Google Map API注释了.config,因为我的视图中有一个脚本引用searchRadius.html):

(function (window, ng) {
    ng.module('app', ['uiGmapgoogle-maps', 'ui.router'])



  .config(function ($stateProvider) { //had: , $stateChangeError included in the function parameters, but that caused error 
      $stateProvider.state('searchRadius', {
          url: '/:lat/:lon',
          templateUrl: 'searchRadius.html', //changed from  index to searchRadius.html
          controller: 'MapsCtrl',
      });
  })


  ////ALREADY HAVE GOOGLE MAPS KEY ON searchRadius.html
    .config(['uiGmapGoogleMapApiProvider', function (GoogleMapApi) {
      GoogleMapApi.configure({
          key: 'AIzaSyC_XEbbw3sNm4XlLAgqMJTggeHLDUdV-pY',
          v: '3',
          libraries: 'weather,geometry,visualization'
      });
  } ])

.controller('MapsCtrl', ['$scope', "uiGmapLogger", "uiGmapGoogleMapApi", "$interval", "$state", "$stateParams",
  function ($scope, $log, GoogleMapApi, $interval, $state, $stateParams) {
      $log.currentLevel = $log.LEVELS.debug;
      var center = { latitude: parseFloat($stateParams.lat), longitude: parseFloat($stateParams.lon) };
      alert(JSON.stringify(center));
      Object.freeze(center); //caused TypeError: Cannot assign to read only property ('latitude') ...

      console.log($stateParams);

      $scope.map = {
          center: center,
          pan: false,
          zoom: 16,
          refresh: false,
          events: {},
          bounds: {}
      };

      $scope.map.circle = {
          id: 1,
          center: center,
          radius: 500, //(current time - date lost)*km/hour
          stroke: {
              color: '#08B21F',
              weight: 2,
              opacity: 1
          },

          fill: {
              color: '#08B21F',
              opacity: 0.5
          },
          geodesic: false, // optional: defaults to false
          draggable: false, // optional: defaults to false
          clickable: true, // optional: defaults to true
          editable: false, // optional: defaults to false
          visible: true, // optional: defaults to true
          events: {
              dblclick: function () {
                  $log.debug("circle dblclick");
              },
              radius_changed: function (gObject) {
                  var radius = gObject.getRadius();
                  $log.debug("circle radius radius_changed " + radius);
              }
          }
      }

      //Increase Radius:
      $interval(function(){
            $scope.map.circle.radius += 30; //dynamic var
      }, 1000); //end of interval function


  } ]); //end of controller

})(window, angular);

searchRadius.html:

<div style="height: 100%"> <!--took out: ng-if="map.center !== undefined"-->
    <ui-gmap-google-map 
                        center='map.center'
                        zoom='map.zoom'
                        draggable='map.draggable'
                        dragging='map.dragging'
                        refresh='map.refresh'
                        options='map.options'
                        events='map.events'
                        pan='map.pan'>


        <ui-gmap-circle 
                        center='map.circle.center'
                        radius='map.circle.radius'
                        fill='map.circle.fill'
                        stroke='map.circle.stroke'
                        clickable='map.circle.clickable'
                        draggable='map.circle.draggable'
                        editable='map.circle.editable'
                        visible='map.circle.visible'
                        events='map.circle.events'>

        </ui-gmap-circle>


    </ui-gmap-google-map>
<script src='//maps.googleapis.com/maps/api/js?key=AIzaSyC_XEbbw3sNm4XlLAgqMJTggeHLDUdV-pY'></script>
</div>

1 个答案:

答案 0 :(得分:1)

将2个文件合并为1个文件,并在一行中初始化$ stateProvider。