ffCCBot/2.0 (http://commoncrawl.org/faq/)
Update: 11-08-2016

Mencari Titik Tengah Koordinat Dengan Javascript dan PHP

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]

Mencari Titik Tengah Koordinat Garis - Dengan Points

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]

Mencari Titik Tengah Koordinat Segitiga - Dengan Points

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]

Mencari Titik Tengah Koordinat Polygon - Dengan Points

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:

  1. [-6.814881325140519, 110.82063674926758],
  2. [-6.820676540518637, 110.82312583923338],
  3. [-6.821358325955008, 110.81437110900879]

ketika kita jalankan fungsi centroid, maka akan kita dapatkan koordinat Lat: -6.818972063871388 dan Lng: 110.81937789916992 sebagai titik tengahnya

Mencari Titik Tengah Koordinat Segitiga - Dengan Koordinat Bumi (Leaflet JS)

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:

  1. [-6.8146256522600135, 110.80389976501465],
  2. [-6.818205060178089, 110.8000373840332],
  3. [-6.822551448133406, 110.80252647399902],
  4. [-6.822381002289906, 110.80673217773438],
  5. [-6.817011927175412, 110.80827713012695]

ketika kita jalankan fungsi centroid, maka akan menghasilkan koordinat Lat: -6.818955018007365 dan Lng: 110.80429458618164 sebagai titik tengah polygon.

Mencari Titik Tengah Koordinat Polygon - Dengan Koordinat Bumi (Leaflet JS)

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.

Recomended Post

Silakan tinggalkan komentar

Like Us

Dapatkan update artikel terbaru via E-Mail
  1. Memahami dan Menampilkan Tanggal dan Waktu Pada PHP
  2. Menghitung Selisih Waktu Dengan PHP – Cara Termudah
  3. Memahami Fungsi Date Pada PHP
  4. Memahami Fungsi Time, Strtotime, dan Mktime Pada PHP – Memanipulasi Waktu
  5. Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHP
  6. Setting ODBC MySQL Untuk Gammu
  7. Cara Install dan Menggunakan Gammu di Windows
  8. Format Tanggal Indonesia Dengan PHP
  9. Cara Install MySQL Portable Zip File di Windows – Panduan Lengkap
  10. Memahami Statemen Return Pada PHP