0

How to get the center point of multiple latitude and longitude coordinate in javascript? this is my current code, i dont receive any error but it seems like it didnt get the center point of the multiple coordinate.

export const CalculateCenter = (locations) => {
  var latitude = 0,
    longitude = 0;

  for (var location of locations[0]) {
    longitude += location.geoCode.longitude;
    latitude += location.geoCode.latitude;
  }
  latitude = latitude / locations.length;
  longitude = longitude / locations.length;

  return {
    latitude,
    longitude,
  };
};

the result of locations.

[
    {
        "geoCode": {
            "latitude": 14.074700000000064,
            "longitude": 120.6316700000001
        }
    },
    {
        "geoCode": {
            "latitude": 14.074700000000064,
            "longitude": 120.6316700000001
        }
    },
    {
        "geoCode": {
            "latitude": 32.50047918538485,
            "longitude": -86.04282419886194
        }
    },
    {
        "geoCode": {
            "latitude": 32.872569649295315,
            "longitude": -85.98328416912487
        }
    },
    {
        "geoCode": {
            "latitude": 33.0328873771731,
            "longitude": -111.76291005291006
        }
    },
    {
        "geoCode": {
            "latitude": 32.814504781420766,
            "longitude": -86.27125170765028
        }
    },
    {
        "geoCode": {
            "latitude": 30.84693820224719,
            "longitude": -89.10781835205994
        }
    },
    {
        "geoCode": {
            "latitude": 24.893442511088367,
            "longitude": -80.80023200272944
        }
    },
    {
        "geoCode": {
            "latitude": 24.386274509803922,
            "longitude": -81.74745098039216
        }
    },
    {
        "geoCode": {
            "latitude": 25.403896668276197,
            "longitude": -81.14026718171576
        }
    },
    {
        "geoCode": {
            "latitude": 25.08781231497928,
            "longitude": -80.75870041444641
        }
    },
    {
        "geoCode": {
            "latitude": 25.077918814432987,
            "longitude": -80.66037800687285
        }
    },
    {
        "geoCode": {
            "latitude": 24.823954451345756,
            "longitude": -80.83368530020704
        }
    },
    {
        "geoCode": {
            "latitude": 39.19454003181053,
            "longitude": -94.50396994804217
        }
    },
    {
        "geoCode": {
            "latitude": 30.534874188784595,
            "longitude": -87.20941075262161
        }
    },
    {
        "geoCode": {
            "latitude": 33.99949100986099,
            "longitude": -118.25964703143558
        }
    },
    {
        "geoCode": {
            "latitude": 40.66131274711981,
            "longitude": -73.8872116994296
        }
    },
    {
        "geoCode": {
            "latitude": 14.074700000000064,
            "longitude": 120.6316700000001
        }
    },
    {
        "geoCode": {
            "latitude": 26.878560048937125,
            "longitude": -82.23863493289736
        }
    },
    {
        "geoCode": {
            "latitude": 42.48327000000006,
            "longitude": -83.24110999999994
        }
    },
    {
        "geoCode": {
            "latitude": 39.19454003181053,
            "longitude": -94.50396994804217
        }
    }
]
Tom
  • 8,509
  • 7
  • 49
  • 78
  • 1
    This is not a React problem, it is an algorithm problem. But FWIW, `CalculateCenter` is not a valid React component, because it returns a POJO instead of a React node. – Tom Mar 21 '22 at 07:09
  • 1
    Someone else has already asked literally the same question: [Calculate the center point of multiple latitude/longitude coordinate pairs](https://stackoverflow.com/questions/6671183/calculate-the-center-point-of-multiple-latitude-longitude-coordinate-pairs) – Tom Mar 21 '22 at 07:11
  • Have a look at [turf.js](https://turfjs.org/docs). Should be `center` or `centerOfMass` or `centroid`, depending what you mean by `center point` – Wernfried Domscheit Apr 04 '22 at 20:23

1 Answers1

0
const locs = [
  {
      "geoCode": {
          "latitude": 14.074700000000064,
          "longitude": 120.6316700000001
      }
  },
  {
      "geoCode": {
          "latitude": 14.074700000000064,
          "longitude": 120.6316700000001
      }
  },
  {
      "geoCode": {
          "latitude": 32.50047918538485,
          "longitude": -86.04282419886194
      }
  },
  {
      "geoCode": {
          "latitude": 32.872569649295315,
          "longitude": -85.98328416912487
      }
  },
  {
      "geoCode": {
          "latitude": 33.0328873771731,
          "longitude": -111.76291005291006
      }
  },
  {
      "geoCode": {
          "latitude": 32.814504781420766,
          "longitude": -86.27125170765028
      }
  },
  {
      "geoCode": {
          "latitude": 30.84693820224719,
          "longitude": -89.10781835205994
      }
  },
  {
      "geoCode": {
          "latitude": 24.893442511088367,
          "longitude": -80.80023200272944
      }
  },
  {
      "geoCode": {
          "latitude": 24.386274509803922,
          "longitude": -81.74745098039216
      }
  },
  {
      "geoCode": {
          "latitude": 25.403896668276197,
          "longitude": -81.14026718171576
      }
  },
  {
      "geoCode": {
          "latitude": 25.08781231497928,
          "longitude": -80.75870041444641
      }
  },
  {
      "geoCode": {
          "latitude": 25.077918814432987,
          "longitude": -80.66037800687285
      }
  },
  {
      "geoCode": {
          "latitude": 24.823954451345756,
          "longitude": -80.83368530020704
      }
  },
  {
      "geoCode": {
          "latitude": 39.19454003181053,
          "longitude": -94.50396994804217
      }
  },
  {
      "geoCode": {
          "latitude": 30.534874188784595,
          "longitude": -87.20941075262161
      }
  },
  {
      "geoCode": {
          "latitude": 33.99949100986099,
          "longitude": -118.25964703143558
      }
  },
  {
      "geoCode": {
          "latitude": 40.66131274711981,
          "longitude": -73.8872116994296
      }
  },
  {
      "geoCode": {
          "latitude": 14.074700000000064,
          "longitude": 120.6316700000001
      }
  },
  {
      "geoCode": {
          "latitude": 26.878560048937125,
          "longitude": -82.23863493289736
      }
  },
  {
      "geoCode": {
          "latitude": 42.48327000000006,
          "longitude": -83.24110999999994
      }
  },
  {
      "geoCode": {
          "latitude": 39.19454003181053,
          "longitude": -94.50396994804217
      }
  }
];

function CalculateCenter  (locations)  {
  var latitude = 0,
    longitude = 0;

  for (var location of locations) {
    longitude += location.geoCode.longitude;
    latitude += location.geoCode.latitude;
  }
  latitude = latitude / locations.length;
  longitude = longitude / locations.length;

  return {
    latitude,
    longitude,
  };
};



console.log(CalculateCenter(locs));

example

Babak Yaghoobi
  • 1,892
  • 9
  • 18