Saya sudah mencoba menata Google Maps saya InfoWindow
, tetapi dokumentasinya sangat terbatas pada topik ini. Bagaimana Anda menata InfoWindow
?
sumber
Saya sudah mencoba menata Google Maps saya InfoWindow
, tetapi dokumentasinya sangat terbatas pada topik ini. Bagaimana Anda menata InfoWindow
?
Google menulis beberapa kode untuk membantu ini. Berikut ini beberapa contohnya: Contoh menggunakan InfoBubble , Spidol Bergaya dan Info Window Custom (menggunakan OverlayView).
Kode pada tautan di atas mengambil rute yang berbeda untuk mencapai hasil yang serupa. Intinya adalah tidak mudah untuk menata InfoWindows secara langsung, dan mungkin lebih mudah untuk menggunakan kelas InfoBubble tambahan daripada InfoWindow, atau untuk mengganti GOverlay. Pilihan lain adalah memodifikasi elemen InfoWindow menggunakan javascript (atau jQuery), seperti yang disarankan ATOzTOA nanti.
Mungkin yang paling sederhana dari contoh ini adalah menggunakan InfoBubble daripada InfoWindow. InfoBubble tersedia dengan mengimpor file ini (yang harus Anda hosting sendiri):http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/src/infobubble.js
Halaman proyek Github InfoBubble .
InfoBubble sangat bergaya, dibandingkan dengan InfoWindow:
infoBubble = new InfoBubble({
map: map,
content: '<div class="mylabel">The label</div>',
position: new google.maps.LatLng(-32.0, 149.0),
shadowStyle: 1,
padding: 0,
backgroundColor: 'rgb(57,57,57)',
borderRadius: 5,
arrowSize: 10,
borderWidth: 1,
borderColor: '#2c2c2c',
disableAutoPan: true,
hideCloseButton: true,
arrowPosition: 30,
backgroundClassName: 'transparent',
arrowStyle: 2
});
infoBubble.open();
Anda juga dapat menyebutnya dengan peta dan penanda yang diberikan untuk dibuka di:
infoBubble.open(map, marker);
Sebagai contoh lain, contoh Kustom Jendela Info memperluas kelas GOverlay dari Google Maps API dan menggunakan ini sebagai dasar untuk membuat jendela info yang lebih fleksibel. Ini pertama kali membuat kelas:
/* An InfoBox is like an info window, but it displays
* under the marker, opens quicker, and has flexible styling.
* @param {GLatLng} latlng Point to place bar at
* @param {Map} map The map on which to display this InfoBox.
* @param {Object} opts Passes configuration options - content,
* offsetVertical, offsetHorizontal, className, height, width
*/
function InfoBox(opts) {
google.maps.OverlayView.call(this);
this.latlng_ = opts.latlng;
this.map_ = opts.map;
this.offsetVertical_ = -195;
this.offsetHorizontal_ = 0;
this.height_ = 165;
this.width_ = 266;
var me = this;
this.boundsChangedListener_ =
google.maps.event.addListener(this.map_, "bounds_changed", function() {
return me.panMap.apply(me);
});
// Once the properties of this OverlayView are initialized, set its map so
// that we can display it. This will trigger calls to panes_changed and
// draw.
this.setMap(this.map_);
}
setelah itu melanjutkan untuk menimpa GOverlay:
InfoBox.prototype = new google.maps.OverlayView();
Anda kemudian harus menimpa metode yang Anda butuhkan: createElement
, draw
, remove
dan panMap
. Ini agak terlibat, tetapi secara teori Anda hanya menggambar div pada peta sendiri sekarang, daripada menggunakan Jendela Info normal.
Anda dapat memodifikasi seluruh InfoWindow menggunakan jquery saja ...
Di sini elemen <p> akan bertindak sebagai pengait ke InfoWindow yang sebenarnya. Setelah domready diaktifkan, elemen tersebut akan menjadi aktif dan dapat diakses menggunakan javascript / jquery, seperti
$('#hook').parent().parent().parent().parent()
.Kode di bawah ini hanya menetapkan batas 2 piksel di sekitar InfoWindow.
Anda dapat melakukan apa saja seperti menyetel kelas CSS baru atau hanya menambahkan elemen baru.
Bermain-main dengan elemen untuk mendapatkan apa yang Anda butuhkan ...
sumber
// CSS dimasukkan ke dalam lembar gaya
sumber
Saya menggunakan kode berikut untuk menerapkan beberapa CSS eksternal:
sumber
Gunakan plugin InfoBox dari Perpustakaan Utilitas Google Maps. Itu membuat penataan / pengelolaan pop-up peta jauh lebih mudah.
Perhatikan bahwa Anda harus memastikannya dimuat setelah Google Maps API:
sumber
Saya telah mendesain jendela infowindow google dengan gambar & beberapa konten seperti di bawah ini.
sumber
Anda juga bisa menggunakan kelas css.
Selamat siang!
sumber