Алгебра і геаметрыя ... калі я калі-небудзь яе скарыстаю? Google Maps!
Мой добры сябар, Глен, адзін з заснавальнікаў Family Watchdog. Family Watchdog - адна з тых фантастычных гісторый ... кампанія, заснаваная на мешапіне, якая выконвае дзяржаўную службу І фактычна забяспечвае жыццё сваім заснавальнікам. Напэўна, дзіўна хадзіць на працу кожны дзень, ведаючы, што ты нешта змяніў. Кожны раз, калі я бачу Глена, ён працуе як шалёны і любіць кожную хвіліну.
Сёння вечарам я дапамог Глену з некалькімі праблемамі з Google Map. Я хацеў падзяліцца адным з вамі ... намаляваць круг на Google Maps. Ён заводзіцца (наколькі я ведаю), на самай справе вы не можаце намаляваць круг. Аднак у вас ёсць магчымасць маляваць палілініі і вектарызаваць іх, як вам зручна. Такім чынам, код можна пабудаваць, каб проста скласці 36 сегментаў і злёгку нахіліць вектар так, каб яны склаліся і склалі поўны круг!
Палілініі пішуцца з VML (мова вектарнай разметкі), таму для правільнага адлюстравання IE гэта павінна быць указана ў шапцы файла. Firefox робіць гэта аўтаматычна (вядома!).
Вось фрагмент, які намалюе круг на адлегласці 1 мілі вакол вашага дома.
var PGlat = (PGradius / 3963) * 180 / Math.PI; // з выкарыстаннем 3963 міль у якасці радыуса зямлі ў мілях if (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); для (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) /PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (тэта)); var PGy = PGcenter.lat () + (PGlat * Math.sin (theta)); PGpoints.push (новы GLatLng (PGy, PGx)); }; map.addOverlay (новая GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // шырыня палілініі var deltaLat = 250 * latSpan / yyPx; калі (Шырыня пікселяў> 500) {Шырыня пікселяў = 500; PGlat - = deltaLat; } яшчэ {PGlat / = 2; };
Праглядзіце ўсю дэманстрацыю, каб убачыць код у поўным аб'ёме. Я выпадкова сустрэў функцыю на гэтым сайце, дзе ў яго ёсць некалькі слаёў кругоў на адной карце з зацененымі рэгіёнамі.