2017-11-09 1 views
-1

Ich habe Daten von der natürlichen Erde für Koordinaten Land weise. Dies sind Arrays innerhalb von Arrays innerhalb von Arrays.Wie benutzt man Google Maps api 3 Heatmap mit natürlichen Daten

Meine Daten (Beispiel für ein Land)

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]]]] 

Quelle Link: World data country wise

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

Die GetPoints Funktion von Probe Heatmap Beispiel here wie

sieht
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), 
     ... 
     ... 
    ] 
    } 

So, jetzt wie ordne ich diese Daten meiner getPoints-Funktion in der Reihenfolge zu lat sehnen bequem? Ich bin mir nicht sicher, ob und wie man diese Daten im Heatmap-Objekt eingibt!

+1

Das sind nicht Breiten und Längen. Wenn es sich um geografische Koordinaten handelt, müssen Sie wissen, welche Projektion darin enthalten ist und eine Konvertierung durchführen. Wesentlich einfacher ist es, die natürlichen Erddaten zu verwenden, die ich schon in der richtigen Projektion habe. – geocodezip

+0

Ich dachte das Gleiche, wenn ich versuchte, sie manuell hinzuzufügen. Ich habe den Geojson für Naturalearth gefunden. Vielen Dank ! – kushalvm

Antwort

1

Sie können diese Funktion (oder eine ähnliche Funktion) verwenden, um ein eindimensionales Array der Koordinatenpaare zu generieren.

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 
} 

und dann so etwas wie dies auf dem resultierenden Array verwenden

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 vor einer Sekunde habe ich ein Update gepostet. Ich bin mir nicht sicher, ob das Lat Longs sind. Ich habe versucht, ein paar von ihnen manuell hinzuzufügen und Heatmap wird nur für diese Punkte nicht angezeigt – kushalvm

Verwandte Themen