Finden Sie die Koordinaten des Mittelpunktes des Polygons im JavaScript

Habe ich einen "Ort" Objekt von Google Maps, die einen Satz von Koordinaten, die eine bounding box für einen bestimmten Ort, sagen wir London. Jeder Satz von Koordinaten hat einen Breitengrad und einen Längengrad.

Habe ich geschrieben, die folgenden code zu finden, der Mittelpunkt, aber ich bin nicht sicher, ob es tatsächlich produzieren den Mittelpunkt. Was ist, wenn das polygon hat 5 Punkte statt 4? Auch, kann dies in effizienter Weise, mit weniger Operationen?

function average(array) {
  //Add together and then divide by the length
  return _.reduce(array, function (sum, num) {
    return sum + num;
  }, 0) / array.length;
}

//I have a two-dimensional array that I want to get the average of

var coords = [
  [ -1.2, 5.1 ],
  [ -1.3, 5.2 ],
  [ -1.8, 5.9 ],
  [ -1.9, 5.8 ]
]

//So I get the first column

var lats = coords.map(function (coord) {
  return coord[0];
})

//Then the second

var longs = coords.map(function (coord) {
  return coord[1];
})

//And average each column out

console.log([average(lats), average(longs)])

Beispiel.

  • Verwenden Sie die Google Maps Javascript API v3?
  • Ja, @geocodezip.
  • Ich würde vorschlagen, immer die Grenzen des Polygons, dann mit der Mitte der Grenzen.
  • Das ist, was ich habe, glaube ich? Die "bounding box".
InformationsquelleAutor | 2013-04-29
Schreibe einen Kommentar