Алгебра та геометрія ... коли я коли-небудь її використовуватиму? Гугл-мапи!

Екранний знімок 2014 10 23 на 3.24.52 PM

Мій хороший друг, Гленн, є одним із засновників Family Watchdog. Family Watchdog - одна з тих фантастичних історій ... компанія, заснована на мішані, яка виконує державні послуги І фактично забезпечує життя своїм засновникам. Мабуть, дивно ходити на роботу щодня, знаючи, що ти щось змінив. Кожного разу, коли я бачу Глена, він працює як божевільний і любить кожну хвилину цього.

Сьогодні ввечері я допоміг Глену з кількома проблемами з Google Map. Я хотів поділитися з вами одним ... малюючи коло на Картах Google. Це закінчується (наскільки я знаю), насправді ви не можете намалювати коло. Однак у вас є можливість малювати полілінії та векторизувати їх, як вам подобається. Отже, код можна побудувати, щоб просто скласти 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 (theta)); 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; якщо (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } ще {PGlat / = 2; };

Перегляньте всю демонстрацію, щоб переглянути код повністю. Я трапився з функцією на цьому веб-сайті, коли він має кілька шарів кіл на одній карті із затіненими областями.

Що ви думаєте?

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.