Чи можна сіріти карту Google, за винятком якоїсь області?


15

Що я шукаю, це спосіб підкреслити певну область на карті Карт Google, виділяючи решту світу.

Я чув про якесь рішення щодо використання 2 полігонів, з яких 1 видно, а іншого немає, і що він працює лише у тому випадку, якщо карта є статичною (немає руху карти). Однак я хочу, щоб користувач міг масштабувати та перетягувати карту.

Мене також цікавлять інші способи, які я не думав наголошувати на тій чи іншій області.

оновлення:

Коли я спробую рішення, розміщене Radek (тобто створення KML з багатокутника із зовнішніми межами (більшими, ніж перегляд) та InternalBoundaryIs (це область, на яку слід підкреслити)), я отримую проблему, що коли я збільшую, прямокутні області не охоплюються навколишній багатокутник більше. Побачити:

введіть тут опис зображення

Хтось із досвідом / рішенням цього?

update2:

Нарешті я встиг випробувати рішення Radek за допомогою Google Fusion Tables. Спочатку у мене були ті ж проблеми з відсутніми плитками, що і з KML (див. Малюнок вище), але після іншого навантаження здається, що він піднявся, і він показував плитки абсолютно правильними. У мене таке відчуття, що злом jquery в його рішенні був призначений для плиток, які не завантажувались:

setTimeout(function(){ 
        $("img[src*='googleapis']").each(function() { 
            $(this).attr("src",$(this).attr("src")+"&"+(new Date()).getTime()); 
        }); 
    }, 5000);

Оскільки плитка, здається, завантажується після оновлення, я не використовував злом сам. Якщо помилка трапиться для кожного нового користувача, я зіткнуся з цим.

Відповіді:


18

Блог Google Maps Mania вказує на приклад швейцарської адміністративної межі кордонів :

введіть тут опис зображення

Код від Василя знаходиться на github .


1
Це дійсно відображає функціональність, яку я шукаю! Мені доведеться зануритися до джерела, щоб побачити, чи легко він реалізується в моєму випадку. Вони говорять про хаки (я негайно отримую побоювання IE7).
мр

Чи необхідне використання Google Fusion Tables у цьому прикладі? Наразі я цим не користуюся. Я скачу код github і перевірте, які вимоги.
мр

2
Це зводиться до створення полігону в KML із зовнішніми межами, що є світом та внутрішніми межами, що є вашою цікавою областю. Окрім труднощів із створенням прозорості, я продовжую отримувати отвори у своєму напівпрозорому шарі, коли я збільшую масштаб. Хто-небудь має з цим досвід?
мр

1
KML досить повільний у завантаженні, тому постійно змінювати його може дати дуже лінивий ефект. Крім цього, чи не доведеться мені постійно змінювати назву, щоб переконатися, що старий kml не буде кешований? У мене є відчуття, що мені потрібні знання Google Fusion Tables.
мр

1
Чи є простіша реалізація, яка може використовувати файл KML замість FusionTables? Мені потрібно лише розфарбувати 1 безперервну зону (межі міста), а все інше сірити. Я переглянув код Василя, але він справді складний і, здається, залежить від злому браузера. Крім того, якщо в цьому рішенні можна використовувати пропозицію elrobis зробити вікно карти основою для ефекту сірого ефекту, я думаю, це буде набагато стабільніше / швидше. {намалюй межу навколо міста та розфарбуй його} // зробив {сірий усе, ОКРЕМО зону всередині межі} ??????????????
користувач1845528

3

якщо інструмент, який розмістив @radek, вам не допомог, є ще один, який використовує звичайні функції google.maps.Polygon: http://maps.vasile.ch/geomask/

В основному це слід за алгоритмом намотування чисел: полігон маски (всесвіт) оцифровується за годинниковою формою, а всі внутрішні багатокутники оцифровуються проти годинникового режиму http://en.wikipedia.org/wiki/Winding_number

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.