Algebra a geometrie… kdy ji kdy použiji? Google mapy!

Screen Shot 2014 10 23 3.24.52 na PM

Můj dobrý přítel Glenn je jedním ze zakladatelů Family Watchdog. Family Watchdog je jedním z těch fantastických příběhů… společnost založená na mashupu, která vykonává veřejnou službu A ve skutečnosti zajišťuje živobytí pro své zakladatele. Musí být úžasné chodit každý den do práce s vědomím, že jste něco změnili. Pokaždé, když vidím Glenna, pracuje jako blázen a miluje každou minutu.

Dnes večer jsem pomohl Glennovi s několika problémy s Google Map. Chtěl jsem se s vámi podělit o jeden… nakreslení kruhu na Mapách Google. Navíjí se (pokud vím), ve skutečnosti se nedá nakreslit kruh. Máte však možnost kreslit křivky a vektorovat je, jak uznáte za vhodné. Takže kód lze sestavit tak, aby jednoduše dal dohromady 36 segmentů a mírně naklonil vektor tak, aby se sečetly a vytvořily úplný kruh!

Křivky jsou psány VML (vektorový značkovací jazyk), takže pro jejich správné vykreslení musí být IE uveden v záhlaví souboru. Firefox to dělá automaticky (samozřejmě!).

Zde je úryvek, který nakreslí kruh 1 míli kolem vašeho domova.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // použití 3963 mil jako poloměr Země v mil if (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); for (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 (nový GLatLng (PGy, PGx)); }; map.addOverlay (nový GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // šířka křivky var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } else {PGlat / = 2; };

Prohlédněte si celé demo, abyste viděli celý kód. Narazil jsem na funkci na tomto webu, kde má několik vrstev kruhů na jedné mapě se stínovanými oblastmi.

Co si myslíte?

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.