google earth indoor

Upload: sevira-alvini-thomas

Post on 17-Jul-2015

144 views

Category:

Documents


2 download

TRANSCRIPT

3D Map Indoor with Google Earth

Di atas itu adalah contoh 3D map indoor dengan menggunakan Google Earth dan dengan memanfaatkan produk google yang lain yaitu Google SketchUp. Adapun lingkup script yang digunakan adalah JavaScript. Berikut penjelasannya dari awal.

1. Memuat Google Earth pada website

Berikut adalah code untuk menambahkan google earth pada website Anda : Google Earth var ge; google.load("earth", "1"); function init() { google.earth.createInstance('map3d', initCB, failureCB); } function initCB(instance) { ge = instance; ge.getWindow().setVisibility(true); ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); } function failureCB(errorCode) { } google.setOnLoadCallback(init);

-

Ganti ABCDEFG key pada

dengan cara daftarkan website kita di http://code.google.com/apis/maps/signup.html untuk mendapatkan key sendiri. Misalkan saya menggunakan localhost:1121 seperti gambar di bawah ini :

-

Untuk mengatur ukuran tampilan Google Earth bisa dimodifikasi width dan height di

Perhatikan fungsi init untuk membuat instance plugin Google Earth nya :google.earth.createInstance('map3d', initCB, failureCB);

berisi 3 parameter yaitu : 1. DIV tempat untuk menempatkan plugin GE 2. Fungsi yang dijalankan ketika sukses load plugin 3. Fungsi ketika gagal load plugin ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);

Digunakan untuk menampilkan kontrol navigasi pada GE Code untuk memanggil fungsi init ketika pertama kali load halaman adalahgoogle.setOnLoadCallback(init);

2. Layer Control Google Earth Di GE ada komponen penting yang disebut layer. Layer berfungsi menampilkan berbagai informasi penting di atas peta yang ada. Fitur inilah yang membuat Google Earth menarik. Layer bisa digambarkan sebagai lapisan transparan yang memiliki penanda-penanda khusus di lokasi tertentu sesuai dengan fungsinya. Hampir semua fungsi penting diakomodasi oleh layer. Jika kita mengaktifkan layer maka bisa jadi tidak ada perubahan di tampilan jika memang layer tersebut tidka memiliki apa-apa untuk ditampilkan di halaman page tersebut. By default, layer terrain adalah satu-satunya layer yang ditampilkan ketika pertama kali memuat Google Earth Plugin. Berikut adalah beberapa layer yang available : LAYER_BORDERS menampilkan batas administratif dari suatu daerah dan memberikan label untuk kota, negara, samudra, dll. LAYER_BUILDINGS menampilkan model bangunan 3D. LAYER_BUILDINGS_LOW_RESOLUTION menampilkan model bangunan dengan resolusi rendah berwarna abu-abu. LAYER_ROADS menampilkan jalur jalan di kota-kota besar dan nama jalannya. LAYER_TERRAIN menampilkan terrain. LAYER_TREES menampilkan model pohon 3D. Untuk mengaktifkan spesifik layer :ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, true);

Untuk menonaktifkan spesifik layer :ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, false);

3. Mengatur Lokasi yang Spesifik Ketika kita pertama kali memuat plugin Google Earth, maka 'view' yang terlihat adalah tampilan globe dunia di luar angkasa. Untuk mengubah posisi pandangan kita ke suatu lokasi yang kita mau, maka perlu membuat suatu posisi/lokasi yang mana ketika kita memuat GE plugin kita akan dibawa langsung ke lokasi tersebut dengan menggunakan fungsi "createLookAt()".

Berikut adalah code yang ditambahkan di dalam fungsi ketika membuat instance plug-in nya :// membuat view baru var la = ge.createLookAt(''); // set nilai latitude, longitude, altitude, altitudeMode, heading, tilt, range la.set(-6.201876, 106.782207, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, -68.700448, 30, 160); // update view di Google Earth ge.getView().setAbstractView(la);

Value yang diset : Latitude = garis lintang (bernilai positif untuk North dan negatif untuk South) Longitude = garis bujur (bernilai positif untuk East dan negatif untuk West) Altitude = ketinggian AltitudeMode = mode ketinggian apakah relatif terhadap tanah atau relatif terhadap bawah laut, dll Heading = arah pandangan (0:utara, 90:timur, 180:selatan, 270:barat) Tilt = derajat pandang mulai dari 0-90 (0 : tepat di atas titik pandang, 90 : sejajar dengan tanah) Range = jarak pandang (semakin besar semakin jauh)

4. Membuat 3D Model dengan Google SketchUp

Setelah berhasil memuat GE, maka langkah selanjutnya adalah membuat 3D model sesuai keinginan Anda. Tetapi sebelumnya Anda harus download terlebih dahulu software Google SketchUp di http://sketchup.google.com/intl/en/download/index.html Di dalam GS terdapat fitur untuk mendownload komponen-komponen yang sudah ada di google. Caranya : File > 3D Warehouse > Get Models Kemudian Anda tinggal memasukkan keyword sesuai keinginan untuk mencari komponen/model tertentu. Lalu pilih Download Model > Yes untuk memasukkan model langsung ke dalam Google SketchUp. Perlu diperhatikan dalam membuat model 3D di Google SketchUp ialah - Buatlah model 3D sesimpel mungkin - Usahakan tidak terlalu banyak garis-garis yang tidak perlu - Komponen yang dibuat tidak usah terlalu detil - Jika diperlukan compress terlebih dahulu gambar yang akan dijadikan texture - Lebih baik hindari mendownload model dari google 3D warehouse, karena biasanya komponen (seperti meja, kursi, sofa, lemari, dll) yang dibuat terlalu rinci sehingga akumulasi size file akan semakin besar. Jika ingin tetap memakai model/komponen yang sudah ada, lebih baik dimodifikasi terlebih dahulu komponennya sebelum di-copy-paste. Modifikasinya yaitu dengan mengurangi garis-garis yang tidak perlu atau menghapus bagian-bagian yang terlalu rinci yang tidak terlalu diperlukan. - Window > Model Info > Statistics Akan menampilkan statistik dari model yang Anda buat. Klik tombol Purge Unused untuk memperbaharui (mengurangi) secara otomatis material/garis/texture yang tidak diperlukan. - Beberapa bagian yang rinci mungkin bisa digantikan dengan photo texture saja. File > Import Pilih file type untuk tipe foto texture yang diinginkan dan pilih foto texture pilihan anda. Pilih radio button use as texture, lalu klik Open.

5. Geo-location 3D ModelGeo-location artinya menempatkan model yang sudah Anda buat dalam dimensi/lokasi di dunia nyata sesuai keinginan. Masih di dalam Google SketchUp - File > Geo-location > Clear location untuk menghapus location yang ada terlebih dahulu. - Kemudian untuk menambahkan lokasi pilih File > Geo-location > Add location - Masukkan lokasi yang Anda inginkan pada kotak Search atau bisa langsung tracking dengan kontrol navigasi yang disediakan. - Usahakan lokasi yang Anda pilih telah di-zoom hingga bangunan terlihat sangat dekat. - Setelah itu klik tombol Select Region, maka akan terlihat kotak persegi kecil. Kotak tersebut bisa digeser-geser untuk memberi lokasi sesuai yang Anda mau. - Jika telah pasti ingin mengambil lokasi bagian itu, klik tombol Grab. - Tunggu hingga model nya berhasil terlokasikan, maka akan terlihat seperti gambar berikut.

Jika sukses maka di bagian ground akan terlihat potongan lokasi yang telah Anda pilih tadi, dan itu artinya model Anda sudah bisa dilihat di Google Earth pada lokasi yang telah Anda tentukan. Untuk melihat model di Google Earth, klik tombol Preview Model in Google Earth pada toolbar. Tapi sebelumnya Anda sudah harus punya aplikasi Google Earth nya terlebih dahulu. Contoh gambarnya akan terlihat sebagai berikut pada Google Earth. Model yang dibuat berada pada lokasi yang sudah ditentukan dari Google SketchUp.

6. Save Model 3DUntuk menyimpan model 3D yang sudah geo-located maka harus disimpan dalam bentuk yang bisa diterima oleh Google Earth yaitu file kmz. Kmz adalah kml file yang sudah di-zip. Sedangkan kml itu sendiri adalah sebuah XML berbasis bahasa geografis skema untuk mengungkapkan penjelasan dan visualisasi yang ada. Jadi di dalam file kmz itu berisi model Anda dan juga deskripsi posisi lengkapnya. Cara untuk menyimpan dalam bentuk kmz adalah : File > Export > 3D Model - File name : nama file yang diinginkan - Export type : pilih yang Google Earth File (*.kmz) Model 3D yang dibuat sebaiknya ukurannya jangan terlalu besar, karena akan susah untuk load di Google Earth.

7. Membuat PlacemarkSetelah model 3D Anda yang sudah terlokasikan bisa dilihat di aplikasi Google Earth, maka langkah selanjutnya adalah membuat placemark di tempat-tempat yang Anda inginkan pada indoor map tersebut. Untuk membuat placemark menggunakan aplikasi Google Earth, masih tetap dengan model 3D sebagai patokan untuk lokasinya : Untuk menambahkan placemark baru, klik tombol Add Placemark terlihat seperti berikut. pada toolbar, maka akan

-

Kotak dialog New Placemark tersebut bisa Anda pindah-pindahkan untuk melihat letak placemark (berwarna kuning itu). Untuk menempatkan placemark ke tempat yang sesuai dengan kenginan Anda, placemark (warna kuning) tersebut bisa di-drag ke tempat yang diinginkan tanpa perlu menutup kotak dialog New Placemark tersebut. Berikut contoh placemark yang saya drag ke tempat yang saya inginkan.

-

Atau bisa juga diset langsung posisi placemark pada textbox Latitude dan Longitude Selanjutnya tinggal mengisi hal-hal yang diperlukan

-

-

Di samping tab Description terdapat tab Style, Color. Di dalamnya berfungsi untuk mengatur style/warna dari label dan icon dari placemark tersebut. Label ini maksudnya adalah nama placemark. Pada tab View terdapat deskripsi posisi bagaimana Anda ingin melihat placemark tsb yang bisa Anda ubah sesuai keinginan. Pada tab Altitude, Anda bisa mengatur posisi placemark terhadap ground dan lain-lain seperti pada gambar berikut

-

Setelah selesai, maka klik OK Anda bisa membuat banyak placemark sesuai dengan kebutuhan.

8. Save PlacemarksSetelah Anda selesai membuat semua Placemarknya, maka saatnya untuk menyimpannya. Caranya : a. Jika hanya ingin menyimpan 1 placemark saja

Perhatikan pada window sebelah kiri di bagian Places. Di situ bisa terlihat daftar placemark yang telah Anda buat. Jika memang hanya ingin menggunakan 1 placemark saja untuk model 3D Anda, maka : - Klik kanan di salah 1 placemark yang ada di window sebelah kiri tsb - Pilih Save Place As - Isikan filename - Save as type nya bisa dengan tipe .kml ataupun dengan .kmz, tetapi saran saya tipe .kmz saja agar supaya size nya lebih kecil

b. Jika ingin menyimpan semua placemark ke dalam 1 file

-

-

Membuat sebuah folder untuk menampung semua placemark. Caranya : klik kanan pada My Places > Add > Folder. Kemudian tulis nama folder sesuai keinginan. Misalkan dalam hal ini saya sudah membuat folder dengan nama lokasi. Kemudian anda tinggal drag&drop masing-masing placemark ke dalam folder tersebut. Setelah semua sudah berada dalam folder, maka anda hanya perlu menyimpan dari folder tersebut. Klik kanan pada nama_folder (misalkan punya saya : lokasi) > Save Place As > tentukan nama file, tipe file yang diinginkan (kml atau kmz ; sebaiknya kmz agar sizenya lebih kecil) serta lokasi tempat penyimpanan > Save.

9. Menyembunyikan view Earth di sekeliling model 3DUntuk menyembunyikan tampilan Earth berupa pulau, laut, bangunan, dll di sekeliling model 3D yang Anda buat itu menjadi hitam polos sebenarnya tidak ada fungsi khusus untuk membuatnya jadi hitam ataupun warna lain (sejauh yang saya tau). Tetapi dengan memanfaatkan Image Overlay untuk Google Earth. - Pertama buatlah sebuah image hitam polos dengan menggunakan aplikasi image editor semisal Paint, dll.

-

Kemudian pada Google Earth, klik kanan My Place > Add > Image Overlay

-

Tulis nama imagenya sesuai keinginan anda Browse image warna hitam yang telah kalian buat tersebut. Nah, maka imagenya akan muncul menyelimuti bumi. Tapi jika image nya tidak cukup besar untuk menutupi keseluruhan bumi, maka perlu diatur pada bagian Location

Aturlah posisi North, South, East, dan West sesuai dengan gambar di samping agar gambar Anda di-extend sampai benar-benar menutupi seluruh bagian bumi. Setelah itu klik OK.

-

Setelah selesai, Anda tinggal menyimpan file image overlay tersebut sama seperti ketika menyimpan placemark (simpan dengan ekstensi kmz).

10. Upload file kmz maupun kml ke Web Host AndaAdapun file yang diupload adalah - Model 3D yang sudah dibuat (.kmz) - Placemarks (.kml atau .kmz) - Image Overlay hitam (.kmz)

11. Complete code var ge; google.load("earth", "1"); function init() { google.earth.createInstance('map3d', initCallback, failureCallback); } function initCallback(instance) { ge = instance; ge.getWindow().setVisibility(true); ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, false); ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, false); ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN, false); function finished(object) { if (!object) { setTimeout(function() { alert('Bad or null KML.'); }, 0); return; } ge.getFeatures().appendChild(object); var lookAt = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);

lookAt.setLatitude(-6.201825227584265); lookAt.setLongitude(106.7821956831435); lookAt.setRange(40.51919315017774); lookAt.setHeading(-68.70044885902105); lookAt.setTilt(57.88221755816068); ge.getView().setAbstractView(lookAt); } var hitam = '[berisi url untuk image overlay]'; var model3d = '[url untuk model 3D yang sudah Anda upload]'; var lokasi = '[url placemarks yang telah diupload]'; google.earth.fetchKml(ge, hitam, finished); google.earth.fetchKml(ge, model3d, finished); google.earth.fetchKml(ge, lokasi, finished); document.getElementById('installed-plugin-version').innerHTML = ge.getPluginVersion().toString(); } function failureCallback(errorCode) { } google.setOnLoadCallback(init); Google Earth

Keterangan : - Ketika load GE, maka kita harusnya dibawa langsung ke tempat model 3D tersebut. Cara mengaturnya adalah dilookAt.setLatitude(-6.201825227584265); lookAt.setLongitude(106.7821956831435); lookAt.setRange(40.51919315017774); lookAt.setHeading(-68.70044885902105); lookAt.setTilt(57.88221755816068);

Untuk mendapatkan nilai-nilai itu : a. Buka model 3D Anda (dengan ekstensi kmz) di Google Earth b. Atur posisi bagaimana Anda mau melihat model tersebut ketika load pertama kali

c. Buat sebuah placemark ditempatkan di tengah-tengah model 3D tsb d. Save placemark tsb dalam bentuk file .kml e. Kemudian buka file kml tersebut dengan notepad/wordpad dsb, maka Anda bisa menemukan segala atribut Latitude, Longitude, Range, Heading, dan Tilt. f. Masukkan secara manual nilai-nilai tersebut ke dalam code Anda, maka program Anda sudah bisa jalan.

Contoh lain bisa dilihat di : http://code.google.com/apis/ajax/playground/?exp=earth#fetch_good_kml