Saya mencoba menambahkan fungsionalitas StreetView ke aplikasi web OpenLayers saya, dan ingin menambahkan overlay yang menunjukkan ketersediaan StreetView ke peta itu sendiri. Saya telah melihat contohnya yang berhasil dilakukan di sini , tetapi saya tidak bisa mendapatkan kode untuk bekerja dalam solusi saya sendiri. Secara khusus:
var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true});
layer.mapObject.addOverlay(new GStreetviewOverlay());
mengakibatkan kesalahan:
layer.mapObject is null
Adakah yang tahu apa yang mungkin saya lakukan salah, dan jika demikian, bagaimana saya bisa memperbaikinya?
sumber
Untuk menggunakan lapisan Google dan memenuhi persyaratan lisensi, Anda harus mengakses lapisan Google melalui Google API. Ketika Anda menambahkan lapisan Google ke peta OpenLayers, OpenLayers memuat Google API.
The
layer.mapObject
(sebagai lawanlayer.map
yang merupakan OL peta objek) harus memberikan referensi ke Google Map. Karena ininull
ada yang salah memuat Google API. Anda dapat memeriksa di FireBug jika sudah dimuat dengan benar.Contoh yang Anda tunjuk mungkin menggunakan Google 2 API lama daripada versi 3. Anda tidak lagi memerlukan kunci API dan dapat menambahkan di Google API menggunakan:
Lihatlah unit test untuk lapisan Google v3 API yang dapat membantu Anda.
Ingat StreetView juga membutuhkan Flash di browser.
sumber
Alasan mengapa layer.mapObject adalah nol adalah bahwa properti mapObject dibuat setelah lapisan ditambahkan ke peta. Coba ini:
sumber