Algebra og rúmfræði ... hvenær mun ég einhvern tíma nota það? Google Maps!
Góður vinur minn, Glenn, er einn af stofnendum Family Watchdog. Family Watchdog er ein af þessum frábæru sögum ... fyrirtæki sem er stofnað á mashup sem sinnir opinberri þjónustu og í raun veitir stofnendum sínum lífsviðurværi. Það hlýtur að vera ótrúlegt að fara í vinnuna á hverjum degi vitandi að þú hefur skipt máli. Í hvert skipti sem ég sé Glenn vinnur hann eins og brjálaður og elskar hverja mínútu af því.
Í kvöld hjálpaði ég Glenn við nokkur Google Map mál. Mig langaði til að deila einum með þér ... teikna hring á Google kortum. Það vindur upp (eftir því sem ég best veit), þú getur í raun ekki teiknað hring. Þú hefur þó getu til að teikna pólýlínur og teikna þær eins og þér hentar. Svo er hægt að byggja kóðann til að setja einfaldlega 36 hluti saman og vinkla vektorinn örlítið þannig að þeir leggist saman og byggi heila hring!
Pólínurnar eru skrifaðar með VML (vector markup language), svo það verður að vera tilgreint í haus skráarinnar til að IE geti rétt framleitt þær. Firefox gerir það sjálfkrafa (auðvitað!).
Hér er bútur sem mun teikna hring 1 mílu um heimili þitt.
var PGlat = (PGradius / 3963) * 180 / Math.PI; // að nota 3963 mílur sem radíus jarðar í mílum ef (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); fyrir (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 (nýr GLatLng (PGy, PGx)); }; map.addOverlay (ný GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } annað {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // breidd pólýlínu var deltaLat = 250 * latSpan / yyPx; ef (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } annað {PGlat / = 2; };
Skoðaðu allt kynninguna til að sjá kóðann að fullu. Ég kom fyrir aðgerðina á þessum vef þar sem hann hefur mörg lög af hringjum á einu korti með skyggðu svæði.