我正在尝试使用有角度的谷歌地图: 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和我的数据来自DB?
我在伪代码中拥有的内容示例:
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));
}
答案 0 :(得分:3)
假设您的数据库数据可通过http get json格式访问(在下面的示例中,数据是从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);
});
});
});
&#13;
<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>
&#13;