javascript - fitBounds in PrimeFaces gmap component -
is there way call fitbounds method in google map object created primefaces gmap component? tried code below, javascript error: typeerror: primefacesmap.fitbounds not function
. appears fitbounds
overriden boolean property primefaces framework.
<h:head> <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"/> <script type="text/javascript"> //<![cdata[ function initprimefacescomponent(){ var primefacesmap = gmtls.getmap(); var bounds = new google.maps.latlngbounds(); var points = [ new google.maps.latlng(41.3, 2), new google.maps.latlng(41.309, 2) ]; // extend bounds each point (var = 0; < points.length; i++) { bounds.extend(points[i]); new google.maps.marker({position: points[i], map: primefacesmap}); } // apply fitbounds primefacesmap.fitbounds(bounds); } //]]> </script> </h:head> <h:body onload="initprimefacescomponent();" > <p:gmap center="41.3, 2" zoom="15" type="roadmap" widgetvar="gmtls" style="width:600px;height:400px" /> </h:body>
below code works google map object created without primefaces:
<h:head> <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"/> <script type="text/javascript"> //<![cdata[ function initoriginalmap() { var mapoptions = { center: new google.maps.latlng(41.3, 2), zoom: 15 }; var originalmap = new google.maps.map(document.getelementbyid("map-canvas"), mapoptions); var bounds = new google.maps.latlngbounds(); var points = [ new google.maps.latlng(41.3, 2), new google.maps.latlng(41.309, 2) ]; // extend bounds each point (var = 0; < points.length; i++) { bounds.extend(points[i]); new google.maps.marker({position: points[i], map: originalmap}); } // apply fitbounds originalmap.fitbounds(bounds); } google.maps.event.adddomlistener(window, 'load', initoriginalmap); //]]> </script> </h:head> <h:body > <div id="map-canvas" style="width:600px;height:400px"/> </h:body>
to make fitbounds
work in primefaces had override again fitbounds property of map original source:
//remember property set primefaces var tmp = map.fitbounds; //replace code 1 provided google maps api map.fitbounds = google.maps.map.prototype.fitbounds; //execute fitbounds function this.fitbounds(bounds); //restore primefaces property (probably primefaces use somehow) this.fitbounds = tmp;
Comments
Post a Comment