roojs-core.js
[roojs1] / Roo / bootstrap / LocationPicker.js
index d56fd27..0de0d63 100644 (file)
@@ -125,7 +125,13 @@ Roo.bootstrap.LocationPicker = function(config){
          * Fires when OverlayView Draw
          * @param {Roo.bootstrap.LocationPicker} this
          */
-        OverlayViewHide : true
+        OverlayViewHide : true,
+        /**
+         * @event loadexception
+         * Fires when load google lib failed.
+         * @param {Roo.bootstrap.LocationPicker} this
+         */
+        loadexception : true
     });
         
 };
@@ -161,8 +167,7 @@ Roo.extend(Roo.bootstrap.LocationPicker, Roo.bootstrap.Component,  {
     },
     
     initEvents: function(ct, position)
-    {      
-        return;
+    {       
         if(!this.el.getWidth() || this.isApplied()){
             return;
         }
@@ -174,6 +179,11 @@ Roo.extend(Roo.bootstrap.LocationPicker, Roo.bootstrap.Component,  {
     
     initial: function()
     {
+        if(typeof(google) == 'undefined' || typeof(google.maps) == 'undefined'){
+            this.fireEvent('loadexception', this);
+            return;
+        }
+        
         if(!this.mapTypeId){
             this.mapTypeId = google.maps.MapTypeId.ROADMAP;
         }
@@ -261,24 +271,32 @@ Roo.extend(Roo.bootstrap.LocationPicker, Roo.bootstrap.Component,  {
     
     getGmapContext: function() 
     {
-        return this.gMapContext
+        return (typeof(this.gMapContext) == 'undefined') ? false : this.gMapContext;
     },
     
     GMapContext: function() 
     {
         var position = new google.maps.LatLng(this.latitude, this.longitude);
         
-        var _map = new google.maps.Map(this.el.dom, this);
+        var _map = new google.maps.Map(this.el.dom, {
+            center: position,
+            zoom: this.zoom,
+            mapTypeId: this.mapTypeId,
+            mapTypeControl: this.mapTypeControl,
+            disableDoubleClickZoom: this.disableDoubleClickZoom,
+            scrollwheel: this.scrollwheel,
+            streetViewControl: this.streetViewControl,
+            locationName: this.locationName,
+            draggable: this.draggable,
+            enableAutocomplete: this.enableAutocomplete,
+            enableReverseGeocode: this.enableReverseGeocode
+        });
+        
         var _marker = new google.maps.Marker({
-            
-             map: map,
-            draggable: true,
-            animation: google.maps.Animation.DROP,
-            position: {lat: 59.327, lng: 18.067}
-            //position: position,
-            //map: _map,
-            //title: this.markerTitle,
-            //draggable: this.draggable
+            position: position,
+            map: _map,
+            title: this.markerTitle,
+            draggable: this.draggable
         });
         
         return {