1 <html><head><title>../roojs1/Roo/bootstrap/LocationPicker.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
9 * @class Roo.bootstrap.LocationPicker
10 * @extends Roo.bootstrap.Component
11 * Bootstrap LocationPicker class
12 * @cfg {Number} latitude Position when init default 0
13 * @cfg {Number} longitude Position when init default 0
14 * @cfg {Number} zoom default 15
15 * @cfg {String} mapTypeId default google.maps.MapTypeId.ROADMAP
16 * @cfg {Boolean} mapTypeControl default false
17 * @cfg {Boolean} disableDoubleClickZoom default false
18 * @cfg {Boolean} scrollwheel default true
19 * @cfg {Boolean} streetViewControl default false
20 * @cfg {Number} radius default 0
21 * @cfg {String} locationName
22 * @cfg {Boolean} draggable default true
23 * @cfg {Boolean} enableAutocomplete default false
24 * @cfg {Boolean} enableReverseGeocode default true
25 * @cfg {String} markerTitle
28 * Create a new LocationPicker
29 * @param {Object} config The config object
33 </span><span class="jsdoc-var">Roo.bootstrap.LocationPicker </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
35 </span><span class="jsdoc-var">Roo.bootstrap.LocationPicker.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
37 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
38 </span><span class="jsdoc-comment">/**
40 * Fires when the picker initialized.
41 * @param {Roo.bootstrap.LocationPicker} this
42 * @param {Google Location} location
44 </span><span class="jsdoc-var">initial </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
45 </span><span class="jsdoc-comment">/**
46 * @event positionchanged
47 * Fires when the picker position changed.
48 * @param {Roo.bootstrap.LocationPicker} this
49 * @param {Google Location} location
51 </span><span class="jsdoc-var">positionchanged </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
52 </span><span class="jsdoc-comment">/**
54 * Fires when the map resize.
55 * @param {Roo.bootstrap.LocationPicker} this
57 </span><span class="jsdoc-var">resize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
58 </span><span class="jsdoc-comment">/**
60 * Fires when the map show.
61 * @param {Roo.bootstrap.LocationPicker} this
63 </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
64 </span><span class="jsdoc-comment">/**
66 * Fires when the map hide.
67 * @param {Roo.bootstrap.LocationPicker} this
69 </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
70 </span><span class="jsdoc-comment">/**
72 * Fires when click the map.
73 * @param {Roo.bootstrap.LocationPicker} this
74 * @param {Map event} e
76 </span><span class="jsdoc-var">mapClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
77 </span><span class="jsdoc-comment">/**
78 * @event mapRightClick
79 * Fires when right click the map.
80 * @param {Roo.bootstrap.LocationPicker} this
81 * @param {Map event} e
83 </span><span class="jsdoc-var">mapRightClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
84 </span><span class="jsdoc-comment">/**
86 * Fires when click the marker.
87 * @param {Roo.bootstrap.LocationPicker} this
88 * @param {Map event} e
90 </span><span class="jsdoc-var">markerClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
91 </span><span class="jsdoc-comment">/**
92 * @event markerRightClick
93 * Fires when right click the marker.
94 * @param {Roo.bootstrap.LocationPicker} this
95 * @param {Map event} e
97 </span><span class="jsdoc-var">markerRightClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
98 </span><span class="jsdoc-syntax">});
102 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.LocationPicker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Component</span><span class="jsdoc-syntax">, {
104 </span><span class="jsdoc-var">gMapContext</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
106 </span><span class="jsdoc-var">latitude</span><span class="jsdoc-syntax">: 0,
107 </span><span class="jsdoc-var">longitude</span><span class="jsdoc-syntax">: 0,
108 </span><span class="jsdoc-var">zoom</span><span class="jsdoc-syntax">: 15,
109 </span><span class="jsdoc-var">mapTypeId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
110 </span><span class="jsdoc-var">mapTypeControl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
111 </span><span class="jsdoc-var">disableDoubleClickZoom</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
112 </span><span class="jsdoc-var">scrollwheel</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
113 </span><span class="jsdoc-var">streetViewControl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
114 </span><span class="jsdoc-var">radius</span><span class="jsdoc-syntax">: 0,
115 </span><span class="jsdoc-var">locationName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
116 </span><span class="jsdoc-var">draggable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
117 </span><span class="jsdoc-var">enableAutocomplete</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
118 </span><span class="jsdoc-var">enableReverseGeocode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
119 </span><span class="jsdoc-var">markerTitle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
121 </span><span class="jsdoc-var">getAutoCreate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
124 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
125 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
126 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-location-picker'
127 </span><span class="jsdoc-syntax">};
129 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg
130 </span><span class="jsdoc-syntax">},
132 </span><span class="jsdoc-var">initEvents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
134 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.mapTypeId</span><span class="jsdoc-syntax">){
135 </span><span class="jsdoc-var">this.mapTypeId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">google.maps.MapTypeId.ROADMAP</span><span class="jsdoc-syntax">;
138 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">() || </span><span class="jsdoc-var">this.isApplied</span><span class="jsdoc-syntax">()){
139 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
142 </span><span class="jsdoc-var">this.el.setVisibilityMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.Element.DISPLAY</span><span class="jsdoc-syntax">);
144 </span><span class="jsdoc-var">this.initial</span><span class="jsdoc-syntax">();
147 </span><span class="jsdoc-var">initial</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
149 </span><span class="jsdoc-var">this.gMapContext </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.GMapContext</span><span class="jsdoc-syntax">();
151 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
153 </span><span class="jsdoc-var">google.maps.event.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.marker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"dragend"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">) {
154 </span><span class="jsdoc-var">_this.setPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_this.gMapContext.marker.position</span><span class="jsdoc-syntax">);
157 </span><span class="jsdoc-var">google.maps.event.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.map</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">){
158 </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mapClick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
162 </span><span class="jsdoc-var">google.maps.event.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.map</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'rightclick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">){
163 </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mapRightClick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
167 </span><span class="jsdoc-var">google.maps.event.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.marker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">){
168 </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'markerClick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
172 </span><span class="jsdoc-var">google.maps.event.addListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.marker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'rightclick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">){
173 </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'markerRightClick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
177 </span><span class="jsdoc-var">this.setPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.location</span><span class="jsdoc-syntax">);
179 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'initial'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.gMapContext.location</span><span class="jsdoc-syntax">);
182 </span><span class="jsdoc-var">isApplied</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
184 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getGmapContext</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
187 </span><span class="jsdoc-var">getGmapContext</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
189 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.gMapContext
190 </span><span class="jsdoc-syntax">},
192 </span><span class="jsdoc-var">GMapContext</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
194 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_map </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.Map</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
195 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_marker </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.Marker</span><span class="jsdoc-syntax">({
196 </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.LatLng</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.latitude</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.longitude</span><span class="jsdoc-syntax">),
197 </span><span class="jsdoc-var">map</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_map</span><span class="jsdoc-syntax">,
198 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.markerTitle</span><span class="jsdoc-syntax">,
199 </span><span class="jsdoc-var">draggable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.draggable
200 </span><span class="jsdoc-syntax">});
202 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
203 </span><span class="jsdoc-var">map</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_map</span><span class="jsdoc-syntax">,
204 </span><span class="jsdoc-var">marker</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_marker</span><span class="jsdoc-syntax">,
205 </span><span class="jsdoc-var">circle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
206 </span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_marker.position</span><span class="jsdoc-syntax">,
207 </span><span class="jsdoc-var">radius</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.radius</span><span class="jsdoc-syntax">,
208 </span><span class="jsdoc-var">locationName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.locationName</span><span class="jsdoc-syntax">,
209 </span><span class="jsdoc-var">addressComponents</span><span class="jsdoc-syntax">: {
210 </span><span class="jsdoc-var">formatted_address</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
211 </span><span class="jsdoc-var">addressLine1</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
212 </span><span class="jsdoc-var">addressLine2</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
213 </span><span class="jsdoc-var">streetName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
214 </span><span class="jsdoc-var">streetNumber</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
215 </span><span class="jsdoc-var">city</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
216 </span><span class="jsdoc-var">district</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
217 </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
218 </span><span class="jsdoc-var">stateOrProvince</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null
219 </span><span class="jsdoc-syntax">},
220 </span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
221 </span><span class="jsdoc-var">domContainer</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">,
222 </span><span class="jsdoc-var">geodecoder</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.Geocoder</span><span class="jsdoc-syntax">()
226 </span><span class="jsdoc-var">drawCircle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">center</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">radius</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">)
228 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.circle </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) {
229 </span><span class="jsdoc-var">this.gMapContext.circle.setMap</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
231 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">radius </span><span class="jsdoc-syntax">> 0) {
232 </span><span class="jsdoc-var">radius </span><span class="jsdoc-syntax">*= 1;
233 </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, {
234 </span><span class="jsdoc-var">strokeColor</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"#0000FF"</span><span class="jsdoc-syntax">,
235 </span><span class="jsdoc-var">strokeOpacity</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">35,
236 </span><span class="jsdoc-var">strokeWeight</span><span class="jsdoc-syntax">: 2,
237 </span><span class="jsdoc-var">fillColor</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"#0000FF"</span><span class="jsdoc-syntax">,
238 </span><span class="jsdoc-var">fillOpacity</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">2
241 </span><span class="jsdoc-var">options.map </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.gMapContext.map</span><span class="jsdoc-syntax">;
242 </span><span class="jsdoc-var">options.radius </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">radius</span><span class="jsdoc-syntax">;
243 </span><span class="jsdoc-var">options.center </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">center</span><span class="jsdoc-syntax">;
244 </span><span class="jsdoc-var">this.gMapContext.circle </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.Circle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
245 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.gMapContext.circle</span><span class="jsdoc-syntax">;
248 </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
251 </span><span class="jsdoc-var">setPosition</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">)
253 </span><span class="jsdoc-var">this.gMapContext.location </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">;
254 </span><span class="jsdoc-var">this.gMapContext.marker.setPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">);
255 </span><span class="jsdoc-var">this.gMapContext.map.panTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">);
256 </span><span class="jsdoc-var">this.drawCircle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.gMapContext.radius</span><span class="jsdoc-syntax">, {});
258 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
260 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.settings.enableReverseGeocode</span><span class="jsdoc-syntax">) {
261 </span><span class="jsdoc-var">this.gMapContext.geodecoder.geocode</span><span class="jsdoc-syntax">({
262 </span><span class="jsdoc-var">latLng</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.gMapContext.location
263 </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">results</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">status</span><span class="jsdoc-syntax">) {
265 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">status </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">google.maps.GeocoderStatus.OK </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">results.length </span><span class="jsdoc-syntax">> 0) {
266 </span><span class="jsdoc-var">_this.gMapContext.locationName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">results</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.formatted_address</span><span class="jsdoc-syntax">;
267 </span><span class="jsdoc-var">_this.gMapContext.addressComponents </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">_this.address_component_from_google_geocode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">results</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.address_components</span><span class="jsdoc-syntax">);
269 </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'positionchanged'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">);
273 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
276 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'positionchanged'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">location</span><span class="jsdoc-syntax">);
279 </span><span class="jsdoc-var">resize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
281 </span><span class="jsdoc-var">google.maps.event.trigger</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.map</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"resize"</span><span class="jsdoc-syntax">);
283 </span><span class="jsdoc-var">this.gMapContext.map.setCenter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.gMapContext.marker.position</span><span class="jsdoc-syntax">);
285 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'resize'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
288 </span><span class="jsdoc-var">setPositionByLatLng</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">latitude</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">longitude</span><span class="jsdoc-syntax">)
290 </span><span class="jsdoc-var">this.setPosition</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">google.maps.LatLng</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">latitude</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">longitude</span><span class="jsdoc-syntax">));
293 </span><span class="jsdoc-var">getCurrentPosition</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
295 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
296 </span><span class="jsdoc-var">latitude</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.gMapContext.location.lat</span><span class="jsdoc-syntax">(),
297 </span><span class="jsdoc-var">longitude</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.gMapContext.location.lng</span><span class="jsdoc-syntax">()
301 </span><span class="jsdoc-var">getAddressName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
303 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.gMapContext.locationName</span><span class="jsdoc-syntax">;
306 </span><span class="jsdoc-var">getAddressComponents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
308 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.gMapContext.addressComponents</span><span class="jsdoc-syntax">;
311 </span><span class="jsdoc-var">address_component_from_google_geocode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">address_components</span><span class="jsdoc-syntax">)
313 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= {};
315 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">address_components.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
316 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">component </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">address_components</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
317 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"postal_code"</span><span class="jsdoc-syntax">) >= 0) {
318 </span><span class="jsdoc-var">result.postalCode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
319 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"street_number"</span><span class="jsdoc-syntax">) >= 0) {
320 </span><span class="jsdoc-var">result.streetNumber </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
321 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"route"</span><span class="jsdoc-syntax">) >= 0) {
322 </span><span class="jsdoc-var">result.streetName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
323 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"neighborhood"</span><span class="jsdoc-syntax">) >= 0) {
324 </span><span class="jsdoc-var">result.city </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
325 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"locality"</span><span class="jsdoc-syntax">) >= 0) {
326 </span><span class="jsdoc-var">result.city </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
327 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"sublocality"</span><span class="jsdoc-syntax">) >= 0) {
328 </span><span class="jsdoc-var">result.district </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
329 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"administrative_area_level_1"</span><span class="jsdoc-syntax">) >= 0) {
330 </span><span class="jsdoc-var">result.stateOrProvince </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
331 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">component.types.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"country"</span><span class="jsdoc-syntax">) >= 0) {
332 </span><span class="jsdoc-var">result.country </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">component.short_name</span><span class="jsdoc-syntax">;
336 </span><span class="jsdoc-var">result.addressLine1 </span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-var">result.streetNumber</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">result.streetName </span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">" "</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.trim</span><span class="jsdoc-syntax">();
337 </span><span class="jsdoc-var">result.addressLine2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">;
338 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">;
341 </span><span class="jsdoc-var">setZoomLevel</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">zoom</span><span class="jsdoc-syntax">)
343 </span><span class="jsdoc-var">this.gMapContext.map.setZoom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">zoom</span><span class="jsdoc-syntax">);
346 </span><span class="jsdoc-var">show</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
348 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
349 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
352 </span><span class="jsdoc-var">this.el.show</span><span class="jsdoc-syntax">();
354 </span><span class="jsdoc-var">this.resize</span><span class="jsdoc-syntax">();
356 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
359 </span><span class="jsdoc-var">hide</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
361 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
362 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
365 </span><span class="jsdoc-var">this.el.hide</span><span class="jsdoc-syntax">();
367 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
370 });</span></code></body></html>