Berikut ini salah satu cara untuk mencari titik tengah koordinat menggunakan bahasa pemrograman PHP dan Javascript, jika sobat menggunakan bahasa pemrogrman lain, sobat dapat mengkonversinya, yang terpenting, alur pemrogramannya sudah didapat.
Cara ini dapat diterapkan juga untuk mencari titik tengah koordinat semua jenis bidang baik segitiga, bujursangkan, persegi, polygon, dll, koordinat yang digunakan juga dapat bermacam-macam, bisa point (x, y) maupun koordinat bumi (latitude dan longitute), saya sendiri sering menggunakannya terutama untuk mencari titik tengah koordinat polygon pada suatu peta/map yang saya bangun dengan library leafletjs.
Jika sobat ingin secara cepat mencari titik tengah koordinat, sobat dapat menggunakan tools berikut: Centroid Calculator
Berikut kodenya:
Kode PHP
function getCentroid($coord)
{
$result = array_reduce( $coord, function ($x,$y) use ($coord) {
$coord_length = count($coord);
return [$x[0] + $y[0]/$coord_length, $x[1] + $y[1]/$coord_length];
}, array(0,0) );
return $result;
}
Kode Javascript:
var getCentroid = function (coord)
{
result = coord.reduce(function (x,y) {
return [x[0] + y[0]/coord.length, x[1] + y[1]/coord.length]
}, [0,0])
return result;
}
Fungsi diatas akan menghasilkan koordinat x dan y dalam bentuk array [x, y]. Agar dapat berjalan dengan baik, kita perlu memberikan argumen pada fungsi tersebut, adapun jenis argumennya adalah array dan harus memiliki pola sebagai berikut:
Array
(
0 => Array
(
0 => 3, //x
1 => 4 //y
),
1 => Array
(
0 => 3,
1 => 0
),
2 => Array
(
0 => 0,
1 => 0
),
3 => Array
(
0 => 0,
1 => 4
)
)
Contoh I: Mencari Titik Tengah Koordinat Bidang Pada Koordinat Point
1. Mencari Titik Tengah Koordinat Garis Lurus
Contoh untuk garis lurus dengan koordinat: [1,1] dan [6,4], akan menghasilkan titk tengah [3.5, 2.5]
PHP
$coord = array(array(1,1), array(6,4));
print_r(getCentroid($coord));
Javascript
var coord = [[1,1], [3,0]];
console.log(getCentroid(coord));
2. Mencari Titik Tengah Koordinat Segitiga
Contoh untuk segitiga dengan koordinat: [1,1], [2,5], dan [5,2] akan menghasilkan titk tengah [2.666, 2.666]
PHP:
$coord = array(array(1,1), array(2,5), array(5,2));
print_r(getCentroid($coord));
Javascript:
var coord = [[1,2], [2,5], [5,2]];
console.log(getCentroid(coord));
3. Mencari Titik Tengah Koordinat Polygon
Contoh untuk polygon dengan koordinat: [1,0], [4,0], [5,3], [2.5,5], dan [0,3] akan menghasilkan titk tengah [2.5, 2.2]
PHP:
$coord = array(array(1,0), array(4,0), array(5,3), array(2.5,5), array(0, 3));
print_r(getCentroid($coord));
Javascript:
var coord = [[1,0], [4,0], [5,3], [2.5,5], [0,3]];
console.log(getCentroid(coord));
Contoh II: Mencari Titik Tengah Koordinat Polygon Pada Koordinat Bumi
Pada contoh ini saya menggunakan library javascript bernama leafletjs untuk menampilkan bentuk polygon dan segitiga pada koordinat bumi, tidak ada alasan khusus penggunaan library ini, kecuali karena saya sering menggunakannya, sehingga lebih familiar, sobat dapat menggunakan dan mengadopsinya pada library lainnya.
1. Mencari titik tengah koordinat segitiga pada koordinat bumi
Misalkan kita memiliki segitiga dengan koordinat:
- [-6.814881325140519, 110.82063674926758],
- [-6.820676540518637, 110.82312583923338],
- [-6.821358325955008, 110.81437110900879]
ketika kita jalankan fungsi centroid, maka akan kita dapatkan koordinat Lat: -6.818972063871388 dan Lng: 110.81937789916992 sebagai titik tengahnya
PHP:
$coord = array(
array(-6.814881325140519, 110.82063674926758),
array(-6.820676540518637, 110.82312583923338),
array(-6.821358325955008, 110.81437110900879),
array(-6.814881325140519, 110.82063674926758)
);
print_r(getCentroid($coord));
Javascript:
var segitiga = [
[-6.814881325140519, 110.82063674926758],
[-6.820676540518637, 110.82312583923338],
[-6.821358325955008, 110.81437110900879]
]
console.log(getCentroid(segitiga));
2. Mencari titik tengah koordinat polygon pada koordinat bumi
Misalkan kita memiliki polygon dengan koordinat:
- [-6.8146256522600135, 110.80389976501465],
- [-6.818205060178089, 110.8000373840332],
- [-6.822551448133406, 110.80252647399902],
- [-6.822381002289906, 110.80673217773438],
- [-6.817011927175412, 110.80827713012695]
ketika kita jalankan fungsi centroid, maka akan menghasilkan koordinat Lat: -6.818955018007365 dan Lng: 110.80429458618164 sebagai titik tengah polygon.
PHP
$coord = array(
array(-6.8146256522600135, 110.80389976501465),
array(-6.818205060178089, 110.8000373840332),
array(-6.822551448133406, 110.80252647399902),
array(-6.822381002289906, 110.80673217773438),
array(-6.817011927175412, 110.80827713012695)
);
print_r(getCentroid($coord));
Javascript:
var polygon = [
[-6.8146256522600135, 110.80389976501465],
[-6.818205060178089, 110.8000373840332],
[-6.822551448133406, 110.80252647399902],
[-6.822381002289906, 110.80673217773438],
[-6.817011927175412, 110.80827713012695]
]
console.log(getCentroid(polygon));
Deminikian tutorial mengenai cara mencari titik tengah dari suatu koordinat, semoga bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com