Aljabar dan Geometri… bilakah saya akan menggunakannya? Peta Google!

Screen Shot 2014 10 23 di PM 3.24.52

Rakan baik saya, Glenn, adalah salah seorang pengasas Family Watchdog. Family Watchdog adalah salah satu kisah hebat ... sebuah syarikat yang diasaskan di sebuah mashup yang menjalankan perkhidmatan awam DAN sebenarnya memberi nafkah kepada pengasasnya. Pasti luar biasa untuk pergi bekerja setiap hari dengan mengetahui bahawa anda telah membuat perbezaan. Setiap kali saya melihat Glenn, dia bekerja seperti orang gila dan suka setiap minit.

Malam ini saya membantu Glenn dengan beberapa masalah Peta Google. Saya ingin berkongsi satu dengan anda ... melukis bulatan di Peta Google. Ini berakhir (sejauh yang saya tahu), anda sebenarnya tidak boleh melukis bulatan. Walau bagaimanapun, anda mempunyai keupayaan untuk melukis polylines dan vektornya mengikut kesesuaian anda. Jadi, kodnya boleh dibina untuk meletakkan 36 segmen bersama dan sedikit sudut vektor sehingga mereka menambah dan membina bulatan yang lengkap!

Polylines ditulis dengan VML (bahasa markup vektor), jadi ia harus ditunjukkan dalam tajuk fail agar IE dapat membuatnya dengan betul. Firefox melakukannya secara automatik (tentu saja!).

Berikut adalah coretan yang akan melukis bulatan 1 batu di sekitar rumah anda.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // menggunakan 3963 batu sebagai radius bumi dalam batu jika (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)); } lain {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // lebar polyline var deltaLat = 250 * latSpan / yyPx; jika (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } lain {PGlat / = 2; };

Lihat keseluruhan demo untuk melihat kodnya secara lengkap. Saya terjumpa fungsi di laman web ini di mana dia mempunyai beberapa lapisan bulatan pada satu peta dengan kawasan berlorek.

Apa yang anda fikir?

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.