Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 使用angular-google-maps刷新地图和标记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我正在为我的项目使用angular-google-maps. html和js@L_801_0@如下

HTML
     

<ui-gmap-markers models="apartments" coords="'loc'" icon="'assets/images/map_icon_normal.png'" idkey="'_id'"
                     fit="'false'" click="click">


      <ui-gmap-windows show="'show'" >
        <div ng-non-bindable>{{streetAddress}}</div>

      </ui-gmap-windows>
    </ui-gmap-markers>



  </ui-gmap-google-map>

脚本:
angular.module( ‘对myApp’)

.controller('MapCtrl',function ($scope,$routeParams,Map,uiGmapGoogleMapApi) {
 $scope.apartments = [];
 $scope.customIcon = "../../assets/images/map_icon_normal.png"

$scope.map = {
      center: {
        latitude: $routeParams.lat,longitude: $routeParams.lon
      },zoom: 5,bounds: {},events: {
        tilesloaded: function (map) {
          //console.log('tiles loaded');
          $scope.$apply(function () {
            $scope.mapInstance = map;
            //console.log(map.getBounds().getNorthEast());
            $scope.searchBox.options.bounds = new google.maps.LatLngBounds($scope.mapInstance.getBounds().getNorthEast(),$scope.mapInstance.getBounds().getSouthWest());

          });
        },idle: function(map) {

          $scope.map.@R_450_7017@h = false;

        },resize: function(map) {
          console.log('resize');
        },dragend: function() {

        }
      },markersEvents: {
        click: function(marker,eventName,model,args) {
          console.log('markerEvent click');
          $scope.map.window.model = model;
          $scope.map.window.show = true;
        }
      },window :  {
        marker: {},show: false,closeClick: function() {
          this.show = false;
        },options: {} // define when map is ready
      },control: {},@R_450_7017@h: function () {
        $scope.map.control.@R_450_7017@h();
      }
    }

    uiGmapGoogleMapApi.then(function (map) {

      $scope.getData(20,map);

      map.visual@R_450_7017@h = true;
      $scope.mapInstance = map;


    })

       $scope.getData = function(limit,offset,map) {
      Map.getApartments($routeParams.lat,$routeParams.lon,limit,offset).success(function (data) {
         ///----- I get undefined error here---
              $scope.map.control.@R_450_7017@h();



      });

    }})
}

我不确定如何使用新标记刷新地图,甚至触发对地图的更新.我玩过ui-gmap-google-map的“控制”和“刷新”参数但无法使其工作.

解决方法

您需要使用uiGmapIsReady —而不是uiGmapGoogleMapApi —来等待控件对象使用他们的方法(例如刷新)进行扩充.

uiGmapIsReady服务提供了一个承诺,该承诺在所有uiGmapGoogleMap指令完全初始化后解析,而uiGmapGoogleMapApi服务仅在加载Google Maps JS API时解析.

有关使用uiGmapIsReady的示例,请参阅this answer.当然,别忘了the docs.

关于如何更新示波器上的models属性以更新地图,您的@L_801_0@示例需要充实并清理以帮助您. (例如,getApartments更新$scope.apartments的解决方案是什么?或者可能问这个问题本身就是答案?)看看this fiddle,它可能会帮助你.

大佬总结

以上是大佬教程为你收集整理的angularjs – 使用angular-google-maps刷新地图和标记全部内容,希望文章能够帮你解决angularjs – 使用angular-google-maps刷新地图和标记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。