首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs和Google地图标记集群

Angularjs和Google地图标记集群
EN

Stack Overflow用户
提问于 2017-07-10 15:59:53
回答 1查看 1K关注 0票数 1

我是谷歌地图的新手,我添加了ng-map,但我有同样的问题,官方插入器代码plunker,标记不出现。这是我的Angularjs代码:

代码语言:javascript
复制
//Google maps
var app = angular.module('myApp',['ngMap', 'ngAnimate', 'ui.bootstrap', 'ui.select']);
app.controller('mapController', ['$scope','$http', 'NgMap', function($scope, $http, NgMap)  {
    NgMap.getMap().then(function(map) {
        //Get all buildings for maps
        $http({
            method: 'GET',
            url: '/booking/building/1',
        }).then(function successCallback(response) {
            if (typeof response.data.success == 'undefined'){
                window.location.href = "/500";
            }else if (response.data.success==true){
                for (var i=0; i < response.data.result.length;i++){
                    var latLng = new google.maps.LatLng(response.data.result[i].latitude, response.data.result[i].longitude);
                    vm.dynMarkers.push(new google.maps.Marker({position:latLng, title:response.data.result[i].name}));
                }
            }else if (response.data.success==false)
                notifyMessage(response.data.result, 'error');
        }, function errorCallback(response) {
            window.location.href = "/500";
        });
        vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, {});
    });
});

在这种情况下,我只有一个城市,但在未来我可能会有一个坐标loto。在Html中,我有一个关于ng-map的脚本:

代码语言:javascript
复制
<!-- Maps -->
<script th:src="@{/static/assets/plugins/angular-maps/ng-map.min.js}"
    type="text/javascript"></script>
<script
    src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/testapp/scripts/markerclusterer.js"></script>

<script>
    MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ 
      = 'https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m1.png';  //changed image path 
  </script>
<script async defer
    src="https://maps.googleapis.com/maps/api/js?key=key">
    </script>

我试着移除

代码语言:javascript
复制
<script>MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH = 'https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m1.png';  //changed image path 
  </script>

但是结果还是一样的。我想uso只有地图CDN链接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 16:08:47

我发现vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, {});是在ajax中的for终止之前调用的,所以变量是空的,所以我把它移到了for结束之后,它就能工作了

代码语言:javascript
复制
for (var i=0; i < response.data.result.length;i++){
    var latLng = new google.maps.LatLng(response.data.result[i].latitude, response.data.result[i].longitude);
    vm.dynMarkers.push(new google.maps.Marker({position:latLng, title:response.data.result[i].name}));
}
vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, {}); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45006657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档