Àlgebra i Geometria ... quan ho faré servir mai? Mapes de Google!

Pantalla 2014 10 23 a 3.24.52 PM

Un bon amic meu, Glenn, és un dels fundadors de Family Watchdog. Family Watchdog és una d’aquestes històries fantàstiques ... una empresa fundada en un mashup que està realitzant un servei públic i que realment proporciona vida als seus fundadors. Ha de ser increïble anar a treballar cada dia sabent que heu marcat la diferència. Cada vegada que veig a Glenn, treballa com un boig i s’encanta cada minut.

Aquesta nit he ajudat Glenn amb un parell de problemes de Google Map. Volia compartir-ne un amb vosaltres ... dibuixant un cercle a Google Maps. Acaba (pel que sé), en realitat no es pot dibuixar un cercle. Tanmateix, teniu la possibilitat de dibuixar polilínies i vectoritzar-les com convingueu. Per tant, el codi es pot construir per unir simplement 36 segments i inclinar lleugerament el vector de manera que sumin i formin un cercle complet.

Les polilínies s’escriuen amb VML (llenguatge de marcatge vectorial), de manera que s’ha d’indicar a la capçalera del fitxer perquè IE els renderitzi correctament. Firefox ho fa automàticament (és clar!).

Aquí teniu un fragment que dibuixarà un cercle a una milla al voltant de casa vostra.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // utilitzant 3963 milles com a radi terrestre en milles si (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); per a (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 nou (PGy, PGx)); }; map.addOverlay (nova GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // amplada de polilínia var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } else {PGlat / = 2; };

Consulteu tota la demostració per veure el codi complet. Vaig passar per tota la funció en aquest lloc on té diverses capes de cercles en un sol mapa amb regions ombrejades.

Què et sembla?

Aquest lloc utilitza Akismet per reduir el correu no desitjat. Esbrineu com es processa el vostre comentari.