Algebra agus Geoimeatraidh ... cuin a chleachdas mi a-riamh e? Google Maps!

Sgrion Shot 2014 10 23 aig 3.24.52 PM

Tha deagh charaid dhomh, Glenn, am measg an fheadhainn a stèidhich Family Watchdog. Is e Family Watchdog aon de na sgeulachdan mìorbhuileach sin ... companaidh stèidhichte air mashup a tha a ’coileanadh seirbheis phoblach AGUS a tha a’ toirt beòshlaint dha luchd-stèidheachaidh. Feumaidh e a bhith iongantach a dhol a dh ’obair gach latha agus fios agad gu bheil thu air eadar-dhealachadh a dhèanamh. Gach uair a chì mi Glenn, tha e ag obair mar crazy agus love a h-uile mionaid dheth.

A-nochd chuidich mi Glenn le cùis no dhà air Google Map. Bha mi airson fear a roinn còmhla riut ... a ’tarraing cearcall air Google Maps. Bidh e a ’dol suas (cho fad’ s as aithne dhomh), chan urrainn dhut cearcall a tharraing. Ach, tha comas agad polylines a tharraing agus an vectar mar a chì thu iomchaidh. Mar sin, faodar an còd a thogail gus dìreach 36 earrannan a chuir ri chèile agus beagan ceàrn a chuir air an vectar gus am bi iad a ’cur suas agus a’ togail cearcall iomlan!

Tha na polylines air an sgrìobhadh le VML (cànan comharra vector), mar sin feumar a nochdadh ann am bann-cinn an fhaidhle airson IE gus an toirt seachad gu ceart. Bidh Firefox ga dhèanamh gu fèin-ghluasadach (gu dearbh!).

Seo chriomag a tharraing cearcall 1 mìle timcheall do dhachaigh.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // a ’cleachdadh 3963 mìle mar radius na talmhainn ann am mìltean ma tha (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); airson (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 ùr (PGy, PGx)); }; map.addOverlay (GPolyline ùr (PGpoints, PGcolor, PGwidth, PGtrans)); } eile {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // width of polyline var deltaLat = 250 * latSpan / yyPx; ma tha (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } eile {PGlat / = 2; };

Thoir sùil air an demo gu lèir gus an còd fhaicinn gu h-iomlan. Thachair mi air feadh a ’ghnìomh aig an làrach seo far a bheil grunn shreathan de chearcaill aige air aon mhapa le roinnean fo sgàil.

Dè do bheachd?

Tha an làrach seo a 'cleachdadh Akismet gus spama a lùghdachadh. Ionnsaich mar a thathar a 'pròiseasadh an dàta bheachdan agad.