2017-11-09 14 views
-1

私は自然界からのデータを持っています。これらは配列内部の配列です。google maps api 3ヒートマップとナチュラルスケールデータの使用方法

マイデータ(一の国のための一例)

coordinates": 
[[[[6818,7133],[6820,7134],[6820,7126],[6817,7128],[6818,7133]]],[[[6819,7322],[6840,7326],[6842,7305],[6869,7285],[6937,7293], 
[6923,7319],[6953,7324],[7012,7369],[7032,7360],[7057,7370],[7092,7333],[7074,7306],[7024,7278],[7023,7255],[6996,7195],[6973,7200], 
[6969,7150],[6951,7137],[6939,7192],[6922,7167],[6909,7188],[6949,7229],[6935,7237],[6886,7236],[6870,7262],[6829,7277],[6818,7260], 
[6843,7237],[6816,7220],[6837,7209],[6832,7189],[6847,7142],[6823,7124],[6820,7141],[6792,7124],[6767,7075],[6740,7073],[6699,7023], 
[6646,6986],[6647,6972],[6586,6945],[6580,6925],[6588,6875],[6574,6835],[6574,6783],[6504,6717],[6476,6742],[6454,6807],[6424,6859], 
[6410,6911],[6384,6956],[6360,7072],[6367,7093],[6351,7149],[6344,7113],[6310,7098],[6291,7105],[6258,7137],[6287,7155],[6241,7174], 
[6227,7195],[6247,7208],[6280,7205],[6313,7222],[6265,7289],[6295,7328],[6337,7325],[6368,7360],[6381,7388],[6416,7427],[6415,7446], 
[6438,7461],[6400,7495],[6393,7534],[6410,7548],[6453,7539],[6490,7559],[6513,7572],[6527,7544],[6546,7534],[6542,7507],[6563,7480], 
[6530,7473],[6541,7434],[6608,7397],[6589,7383],[6579,7353],[6660,7310],[6714,7305],[6751,7281],[6795,7274],[6820,7286],[6819,7322]]]] 

ソースへのリンク:World data country wise

heatmap = new google.maps.visualization.HeatmapLayer({ 
     data: getPoints(), 
     map: map 
    }); 

は、サンプルのヒートマップの例hereからgetPoints機能が

function getPoints() { 
    return [ 
     new google.maps.LatLng(37.782551, -122.445368), 
     new google.maps.LatLng(37.782745, -122.444586), 
     new google.maps.LatLng(37.782842, -122.443688), 
     ... 
     ... 
    ] 
    } 

ようなので、今どのように見えますこのデータをgetPoints関数に順番にマッピングしますかlat longsを便利に提供するには?ヒートマップオブジェクトにこのデータを入力する方法は基本的にはわかりません!

+1

者にこのようなものを使用緯度と経度ではありません。それらが地理座標であれば、どの投影が入っているかを知る必要があります。天然の地球のデータを使用する方がはるかに簡単です。 – geocodezip

+0

手動で追加しようとしたときに同じことがわかりました。私はnaturalearthのgeojsonを見つけました。ありがとう! – kushalvm

答えて

1

この関数(または同様の関数)を使用して、座標のペアの1次元配列を生成できます。その後、

function recursiveArrayPass(source) { 
    if (typeof source != 'object') 
     return [] 

    if (typeof source[0] == 'number') { 
     return [source] 
    } 

    var result = [] 
    for (var i = 0; i < source.length; i++) 
     result = result.concat(recursiveArrayPass(source[i])) 

    return result 
} 

、得られた配列

function getPoints(coords_array) { 
    var result = [] 

    for (var i = 0; i < coords_array.length; i++) 
     result.push(new google.maps.LatLng(coords_array[i][0], coords_array[i][1])); 

    return result 
} 
+0

Diana a sec ag​​o私は更新を掲載しました。これらが丈夫であるかどうかはわかりません。私はそれらのいくつかを手動で追加しようとしましたが、ヒートマップはこれらの点については表示されません – kushalvm

関連する問題