Cebir ve Geometri… onu ne zaman kullanacağım? Google Haritalar!

2014 10 23 3.24.52 PM'de Ekran Görüntüsü

İyi bir arkadaşım Glenn, Family Watchdog'un kurucularından biridir. Family Watchdog, bu fantastik hikayelerden biridir… bir kamu hizmeti yapan VE kurucularına geçimini sağlayan bir karma şirket üzerine kurulmuş bir şirket. Bir fark yarattığını bilerek her gün işe gitmek harika olmalı. Glenn'i her gördüğümde deli gibi çalışıyor ve her dakikasını seviyor.

Bu gece Glenn'e birkaç Google Harita sorununda yardım ettim. Sizinle bir tane paylaşmak istedim… Google Haritalar'da bir çevre çizerek. Bitiyor (bildiğim kadarıyla), aslında bir daire çizemezsiniz. Bununla birlikte, çoklu çizgiler çizme ve bunları uygun gördüğünüz gibi vektörleme yeteneğine sahipsiniz. Bu nedenle kod, 36 parçayı bir araya getirecek ve vektöre hafifçe açı verecek şekilde oluşturulabilir, böylece toplanıp tam bir daire oluşturabilirler!

Çoklu çizgiler ile yazılır VML (vektör biçimlendirme dili), bu nedenle IE'nin bunları düzgün şekilde işleyebilmesi için dosyanın başlığında belirtilmesi gerekir. Firefox bunu otomatik olarak yapar (tabii ki!).

İşte evinizin etrafında 1 millik bir daire çizecek bir pasaj.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // mil cinsinden dünyanın yarıçapı olarak 3963 mil kullanılıyor if (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); için (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 (yeni GLatLng (PGy, PGx)); }; map.addOverlay (yeni GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // çoklu çizginin genişliği var deltaLat = 250 * latSpan / yyPx; eğer (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } başka {PGlat / = 2; };

Kodu tam olarak görmek için tüm demoyu görüntüleyin. Gölgeli bölgeleri olan tek bir harita üzerinde birden fazla daire katmanına sahip olduğu bu sitedeki işlevin karşısına çıktım.

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.