2017-08-01 11 views
0

私はmongodbでangularjsを使用しています。angularjsでlat-lngでヒートマップを生成

私はユーザーの座標を含むテーブルを持っています。

{ "mac" : "aa:22:01:d2:e6:f9","lat" : 33.53625,"lng" : -111.92674, "time" : 2017-07-12T04:44:13.707Z} 
{ "mac" : "aa:22:01:d2:e6:f9","lat" : 33.53625,"lng" : -111.92674, "time" : 2017-07-12 04:44:13.707Z} 
{ "mac" : "aa:22:01:d2:e6:f9","lat" : 33.53625,"lng" : -111.92674, "time" : 2017-07-12 04:46:59.707Z} 
{ "mac" : "aa:22:01:d2:e6:f9","lat" : 33.53625,"lng" : -111.92674, "time" : 2017-07-12 04:47:29.707Z} 

ヒートマップを表示したい。誰も私にこれを達成するための最良の方法を指摘することができます。

バックグラウンドで後で調整する必要がある建物の画像があります。

+0

https://developers.google.com/maps/documentation/javascript/heatmaplayer – duncan

答えて

1

基本的には、データをgoogle.maps.LatLngオブジェクトの配列にマップする必要があります。その後、マップを初期化し、マップされたデータでヒートマップ層を初期化し、ヒートマップ層をマップに割り当てます。 sample

HeatmapLayerが存在するので、visualizationライブラリも含める必要があります。

function initMap() { 
 

 
    /* Data points defined as an array of LatLng objects */ 
 
    var data = [{ 
 
    "mac": "aa:22:01:d2:e6:f9", 
 
    "lat": 33.53625, 
 
    "lng": -111.92674, 
 
    "time": '2017-07-12T04:44:13.707Z' 
 
    }, { 
 
    "mac": "aa:22:01:d2:e6:f9", 
 
    "lat": 33.53625, 
 
    "lng": -111.92674, 
 
    "time": '2017-07-12 04:44:13.707Z' 
 
    }, { 
 
    "mac": "aa:22:01:d2:e6:f9", 
 
    "lat": 33.53625, 
 
    "lng": -111.92674, 
 
    "time": '2017-07-12 04:46:59.707Z' 
 
    }, { 
 
    "mac": "aa:22:01:d2:e6:f9", 
 
    "lat": 33.53625, 
 
    "lng": -111.92674, 
 
    "time": '2017-07-12 04:47:29.707Z' 
 
    }]; 
 

 
    var heatmapData = data.map(function(item) { 
 
    return new google.maps.LatLng(item.lat, item.lng) 
 
    }); 
 

 
    var center = new google.maps.LatLng(33.53625, -111.92674); 
 

 
    map = new google.maps.Map(document.getElementById('map'), { 
 
    center: center, 
 
    zoom: 13, 
 
    mapTypeId: 'satellite' 
 
    }); 
 

 
    var heatmap = new google.maps.visualization.HeatmapLayer({ 
 
    data: heatmapData 
 
    }); 
 
    heatmap.setMap(map); 
 
}
<script async defer type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&libraries=visualization&callback=initMap"></script> 
 

 
<div id="map" style="width:500px;height:150px"></div>

+0

マップ上のカスタム背景画像を設定する方法はありますか?また、座標に応じて地図中心を設定する方法。すべての座標をエリアに表示することができます。 –

+0

_地図上にカスタム背景画像を設定する方法はありますか?_これは別の質問ですが、これが可能であることを確信しています。ウェブ上でこの質問を検索するだけです。 _座標に合わせて地図中心を設定する方法もあります。あなたは緯度と経度を計算し、中心点をインスタンス化することができるすべてのデータを持っているので、すべての座標をarea_に表示することができます。 'var center = new google.maps.LatLng(calcedLat、calcedLng); – codtex

関連する問題