Demo google map - Adding State to Controls
RUN
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Custom controls</title> <style> html, body, #map-canvas { height: 100%; margin: 0px; padding: 0px } </style> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDfNk5eVWmQB9e6ApnWzICLNIY5lUXpOBw&language=vi"></script> <script> var map; var hochiminh = new google.maps.LatLng(10.771971, 106.697845); // Định nghĩa một property tên home_ vào đối tượng HomeControl HomeControl.prototype.home_ = null; // Định nghĩa method getHome HomeControl.prototype.getHome = function() { return this.home_; }; // Định nghĩa method setHome HomeControl.prototype.setHome = function(home) { this.home_ = home; }; function HomeControl(controlDiv, map, home) { var control = this; // thuộc tính home_ có giá trị bằng tọa độ home truyền vào control.home_ = home; controlDiv.style.padding = '5px'; // Set CSS for the control border var goHomeUI = document.createElement('div'); goHomeUI.style.backgroundColor = 'white'; goHomeUI.style.borderStyle = 'solid'; goHomeUI.style.borderWidth = '2px'; goHomeUI.style.cursor = 'pointer'; goHomeUI.style.textAlign = 'center'; goHomeUI.title = 'Click to set the map to Home'; controlDiv.appendChild(goHomeUI); // Set CSS for the control interior var goHomeText = document.createElement('div'); goHomeText.style.fontFamily = 'Arial,sans-serif'; goHomeText.style.fontSize = '12px'; goHomeText.style.paddingLeft = '4px'; goHomeText.style.paddingRight = '4px'; goHomeText.innerHTML = '<b>Home</b>'; goHomeUI.appendChild(goHomeText); // Set CSS for the setHome control border var setHomeUI = document.createElement('div'); setHomeUI.style.backgroundColor = 'white'; setHomeUI.style.borderStyle = 'solid'; setHomeUI.style.borderWidth = '2px'; setHomeUI.style.cursor = 'pointer'; setHomeUI.style.textAlign = 'center'; setHomeUI.title = 'Click to set Home to the current center'; controlDiv.appendChild(setHomeUI); // Set CSS for the control interior var setHomeText = document.createElement('div'); setHomeText.style.fontFamily = 'Arial,sans-serif'; setHomeText.style.fontSize = '12px'; setHomeText.style.paddingLeft = '4px'; setHomeText.style.paddingRight = '4px'; setHomeText.innerHTML = '<b>Set Home</b>'; setHomeUI.appendChild(setHomeText); // Click vào HOME google.maps.event.addDomListener(goHomeUI, 'click', function() { var currentHome = control.getHome(); map.setCenter(currentHome); }); // Click vào setHome, thay đội vị trí center hiện tại google.maps.event.addDomListener(setHomeUI, 'click', function() { var newHome = map.getCenter(); control.setHome(newHome); alert('Bạn thiết lập home cho vị trí ' + map.getCenter()); }); } function initialize() { var mapDiv = document.getElementById('map-canvas'); var mapOptions = { zoom: 12, center: hochiminh }; map = new google.maps.Map(mapDiv, mapOptions); // tạo 2 control var homeControlDiv = document.createElement('div'); var homeControl = new HomeControl(homeControlDiv, map, hochiminh); homeControlDiv.index = 1; map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv); } google.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="map-canvas"></div> </body> </html>
PHÓNG TO