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.