gpt4 book ai didi

angularjs - 使用 angular-google-maps 刷新 map 和标记

转载 作者:行者123 更新时间:2023-12-04 20:01:37 27 4
gpt4 key购买 nike

嗨,我正在为我的项目使用 angular-google-maps。 html和js代码如下

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.refresh = 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: {},
refresh: function () {
$scope.map.control.refresh();
}
}

uiGmapGoogleMapApi.then(function (map) {

$scope.getData(20, 0, map);

map.visualRefresh = 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.refresh();



});

}})
}

我不确定如何使用新标记刷新 map ,甚至不知道如何触发 map 更新。我玩弄了 ui-gmap-google-map 的“控制”和“刷新”参数,但无法让它工作。

最佳答案

您需要使用 uiGmapIsReady --- 不是 uiGmapGoogleMapApi --- 等待 control要使用其方法扩充的对象(例如 refresh )。
uiGmapIsReady服务提供了一个 promise ,当所有 uiGmapGoogleMap指令已完全初始化,而 uiGmapGoogleMapApi服务仅在 Google Maps JS API 加载时解析。

this answer例如使用 uiGmapIsReady .当然,不要忘记 the docs .

关于如何更新范围上的模型属性以更新 map ,您的代码示例需要充实和清理以帮助您。 (例如, getApartments 的分辨率是什么来更新 $scope.apartments ?或者问这个问题本身就是答案?)看看 this fiddle ,在此期间它可能会对您有所帮助。

关于angularjs - 使用 angular-google-maps 刷新 map 和标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29148743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com