2016-03-02 66 views
1

我试图用角谷歌地图数据的谷歌地图热度地图位置: https://github.com/allenhwkim/angularjs-google-maps/blob/master/testapp/如何动态地修改与数据库

测试数据: https://github.com/allenhwkim/angularjs-google-maps/blob/master/testapp/taxi-data.js

JavaScript示例:

var taxiData = [ 
    new google.maps.LatLng(37.782551, -122.445368), 
    new google.maps.LatLng(37.782745, -122.444586), 
]; 

我例如,使用AngularJS进行查询并在列表数据[]中检索纬度和经度。

如何动态修改上面的代码,以便使用我的数据从数据库“初始化”新的google.maps.LatLng?

什么,我曾在

比如我曾在伪代码:

var data = []; 
var taxiData = []; 

//角呼叫来存储数据,因此我们有数据:

data = someCall.. 

动态添加实例插入taxiData列表:

for (var i = 0; i < data.length; i++) { 
    taxiData.push(new google.maps.LatLng(data[i].Latitude, data[i].Longitude)); 
} 

回答

3

假设你的db数据可以通过http获取以json格式访问(在下面的例子中,数据是re从taxiData.json file开始),以下示例演示了如何在数据加载后初始化热图图层。

angular.module('mapApp', ['ngMap']) 
 
.controller("MapCtrl", function($scope,$http,NgMap){ 
 

 
    $scope.taxiData = []; 
 

 
    NgMap.getMap().then(function(map) { 
 

 
    $scope.taxiData = []; 
 

 
    $http.get('https://rawgit.com/vgrem/6d9c464ab034f5b93295/raw/9ca3819aa8270823da64cba6f91d24945cc52940/taxiData.json').success(function(data) { 
 
     $scope.taxiData = data.map(function(item){ 
 
      return new google.maps.LatLng(item.lat, item.lng); 
 
     }); 
 

 
     var layer = $scope.map.heatmapLayers.taxiDataMap; 
 
     layer.setData($scope.taxiData); 
 
    }); 
 
    }); 
 
    
 
    
 
});
<script src="https://maps.google.com/maps/api/js?libraries=visualization"></script> 
 
<script src="https://code.angularjs.org/1.3.15/angular.js"></script> 
 
<script src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.js"></script> 
 

 

 
<div ng-app="mapApp" ng-controller="MapCtrl"> 
 
    <ng-map zoom="13" center="37.774546, -122.433523" map-type-id="SATELLITE"> 
 
     <heatmap-layer id="taxiDataMap" data="taxiData"></heatmap> 
 
    </ng-map> 
 
    </div>

JSFiddle