Apakah mungkin untuk menghapus peta Google Maps kecuali untuk beberapa area?

15

Apa yang saya cari adalah cara untuk menekankan area tertentu pada peta Google Maps dengan memutihkan seluruh dunia.

Saya mendengar tentang beberapa solusi menggunakan 2 poligon yang 1 terlihat dan yang lainnya tidak dan hanya berfungsi jika peta statis (tidak ada pergerakan peta). Namun saya ingin pengguna dapat memperbesar dan menarik peta.

Saya juga tertarik dengan cara lain yang belum pernah saya tekankan untuk menekankan suatu bidang.

memperbarui:

Ketika saya mencoba solusi yang diposting oleh radek (yaitu membuat KML dengan Polygon dengan outerBoundaryIs (lebih besar dari tampilan) dan innerBoundaryIs (menjadi area yang ditekankan)) Saya mendapatkan masalah bahwa ketika saya memperbesar, area persegi panjang tidak tercakup oleh poligon sekitarnya lagi. Lihat:

masukkan deskripsi gambar di sini

Adakah yang punya pengalaman / solusi untuk itu?

pembaruan2:

Saya akhirnya punya waktu untuk menguji solusi radek menggunakan Google Fusion Tables. Pada awalnya saya memiliki masalah yang sama dengan ubin yang hilang seperti dengan KML (lihat gambar di atas), tetapi setelah memuat lain sepertinya telah mengambil dan itu menunjukkan ubin benar-benar benar. Saya merasa bahwa peretasan jquery dalam solusinya dimaksudkan untuk ubin yang tidak dimuat:

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

Karena ubin sepertinya dimuat setelah penyegaran, saya belum pernah menggunakan retasan sendiri. Jika bug terjadi untuk setiap pengguna baru, saya akan mengalaminya.

mrg
sumber

Jawaban:

18

Blog Google Maps Mania menunjukkan contoh Peta Batas Administratif Swiss :

masukkan deskripsi gambar di sini

Kode dari Vasile ada di github .

Radek
sumber
1
Ini memang menampilkan fungsionalitas yang saya cari! Saya harus menyelam ke sumber untuk melihat apakah itu mudah diimplementasikan dalam kasus saya. Mereka berbicara tentang peretasan (saya langsung mendapatkan ketakutan IE7).
mrg
Apakah penggunaan Google Fusion Tables suatu keharusan dalam contoh ini? Saya tidak menggunakannya saat ini. Saya akan mengunduh kode github dan memeriksa persyaratannya.
mrg
2
Itu turun untuk membuat Polygon di KML dengan outerBoundaryIs, menjadi dunia dan innerBoundaryIs, menjadi bidang yang Anda minati. Selain mengalami kesulitan menata transparansi, saya terus mendapatkan lubang di lapisan semi transparan ketika saya memperbesar. Ada yang punya pengalaman dengan itu?
mrg
1
KML agak lambat dalam memuat, jadi mengubahnya sepanjang waktu mungkin memberikan efek yang sangat malas. Selain itu saya tidak harus mengubah nama terus-menerus untuk memastikan kml lama tidak di-cache? Saya merasa bahwa saya memerlukan pengetahuan Google Fusion Tables.
mrg
1
Apakah ada implementasi yang lebih sederhana, yang dapat menggunakan file KML, bukan FusionTables? Saya hanya perlu menyorot warna 1 area terus menerus (batas kota), dan menghapus semua yang lain. Saya telah melihat kode Vasile, tetapi ini benar-benar rumit, dan tampaknya bergantung pada peretasan browser. Juga, jika solusi ini dapat menggunakan saran elrobis untuk membuat jendela peta sebagai dasar untuk efek abu-abu, saya pikir itu akan jauh lebih stabil / lebih cepat. {gambar batas di sekitar kota & warnai} // selesai {abu-abu semuanya KECUALI area di dalam batas} ????????????????
user1845528
3

jika alat yang diposting @radek tidak membantu Anda, ada satu lagi yang menggunakan fitur google.maps.Polygon biasa: http://maps.vasile.ch/geomask/

Pada dasarnya ini mengikuti algoritma bilangan berliku: poligon topeng (alam semesta) adalah digital-bijaksana jam dan semua poligon interior adalah digital-kontra-jam-bijaksana http://en.wikipedia.org/wiki/Winding_number

Vasile Cotovanu
sumber