Aljabar dan Geometri… kapan saya akan menggunakannya? Google Maps!

Layar Ditembak 2014 10 23 di 3.24.52 PM

Seorang teman baik saya, Glenn, adalah salah satu pendiri Family Watchdog. Family Watchdog adalah salah satu kisah fantastis itu… sebuah perusahaan yang didirikan di atas mashup yang melakukan layanan publik DAN benar-benar menyediakan nafkah bagi para pendirinya. Pasti luar biasa pergi bekerja setiap hari mengetahui bahwa Anda telah membuat perbedaan. Setiap kali saya melihat Glenn, dia bekerja seperti orang gila dan mencintai setiap menitnya.

Malam ini saya membantu Glenn dengan beberapa masalah Google Map. Saya ingin berbagi satu dengan Anda… menggambar lingkaran di Google Maps. Itu berakhir (sejauh yang saya tahu), Anda tidak dapat benar-benar menggambar lingkaran. Namun, Anda memiliki kemampuan untuk menggambar polyline dan membuat vektor sesuai keinginan Anda. Jadi, kode dapat dibuat dengan hanya menyatukan 36 segmen dan sedikit memiringkan vektor sehingga mereka bertambah dan membentuk lingkaran yang lengkap!

Polyline ditulis dengan VML (bahasa markup vektor), jadi itu harus ditunjukkan di header file agar IE dapat merendernya dengan benar. Firefox melakukannya secara otomatis (tentu saja!).

Berikut cuplikan yang akan menggambar lingkaran 1 mil di sekitar rumah Anda.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // menggunakan 3963 mil sebagai radius bumi dalam mil if (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); untuk (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) /PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (theta)); var PGy = PGcenter.lat () + (PGlat * Math.sin (theta)); PGpoints.push (GLatLng baru (PGy, PGx)); }; map.addOverlay (GPolyline baru (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // lebar dari polyline var deltaLat = 250 * latSpan / yyPx; jika (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } lain {PGlat / = 2; };

Lihat seluruh demo untuk melihat kode secara lengkap. Saya kebetulan melintasi fungsi di situs ini di mana dia memiliki banyak lapisan lingkaran pada satu peta dengan wilayah yang diarsir.

Bagaimana menurut Anda?

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.