From bf88782cb72621e9561bacd06bc7e6663be96910 Mon Sep 17 00:00:00 2001 From: viskin Date: Fri, 6 Mar 2015 13:15:02 +0200 Subject: [PATCH 1/9] Added build.bat for Windows compilation --- build/build.bat | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 build/build.bat diff --git a/build/build.bat b/build/build.bat new file mode 100644 index 0000000..46ec839 --- /dev/null +++ b/build/build.bat @@ -0,0 +1,23 @@ +set INDIR=..\lib\ +set INPREFIX=oms + +set OUTDIR=.\tmp\ +set OUTNAME=%INPREFIX%.min.js +set OUTFILE=%OUTDIR%%OUTNAME% + +call coffee --output %OUTDIR% --compile %INDIR%%INPREFIX%.coffee + +set theValue= +for /f "delims=" %%a in ('cygpath -m /usr/local/closure-compiler/compiler.jar') do @set JARPATH=%%a + +java -jar "%JARPATH%" ^ + --compilation_level ADVANCED_OPTIMIZATIONS ^ + --js "%OUTDIR%%INPREFIX%.js" ^ + --externs google_maps_api_v3_7.js ^ + --output_wrapper '(function(){%%output%%}).call(this);' ^ + > "%OUTFILE%" + +echo /* %date% %time% */ >> "%OUTFILE%" + +rem cp $OUTFILE ../../gh-pages/bin +rem cp ${OUTDIR}${INPREFIX}.js ../../gh-pages/bin \ No newline at end of file From a72b1ddcb8c5ba999d68fc2b844827874935c186 Mon Sep 17 00:00:00 2001 From: viskin Date: Fri, 6 Mar 2015 13:22:23 +0200 Subject: [PATCH 2/9] Use marker.getPosition() instead of marker.position to be more compliant with Google Maps API --- lib/oms.coffee | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/oms.coffee b/lib/oms.coffee index 40cab38..030df50 100644 --- a/lib/oms.coffee +++ b/lib/oms.coffee @@ -145,10 +145,10 @@ class @['OverlappingMarkerSpiderfier'] nonNearbyMarkers = [] nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.position) + markerPt = @llToPt(marker.getPosition()) for m in @markers continue unless m.map? and m.getVisible() # at 2011-08-12, property m.visible is undefined in API v3.5 - mPt = @llToPt(m.position) + mPt = @llToPt(m.getPosition()) if @ptDistanceSq(mPt, markerPt) < pxSq nearbyMarkerData.push(marker: m, markerPt: mPt) else @@ -163,11 +163,11 @@ class @['OverlappingMarkerSpiderfier'] throw "Must wait for 'idle' event on map before calling markersNearMarker" nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.position) + markerPt = @llToPt(marker.getPosition()) markers = [] for m in @markers continue if m is marker or not m.map? or not m.getVisible() - mPt = @llToPt(m['_omsData']?.usualPosition ? m.position) + mPt = @llToPt(m['_omsData']?.usualPosition ? m.getPosition()) if @ptDistanceSq(mPt, markerPt) < pxSq markers.push(m) break if firstOnly @@ -179,7 +179,7 @@ class @['OverlappingMarkerSpiderfier'] nDist = @['nearbyDistance'] pxSq = nDist * nDist mData = for m in @markers - {pt: @llToPt(m['_omsData']?.usualPosition ? m.position), willSpiderfy: no} + {pt: @llToPt(m['_omsData']?.usualPosition ? m.getPosition()), willSpiderfy: no} for m1, i1 in @markers continue unless m1.map? and m1.getVisible() m1Data = mData[i1] @@ -218,12 +218,12 @@ class @['OverlappingMarkerSpiderfier'] marker = nearestMarkerDatum.marker leg = new gm.Polyline map: @map - path: [marker.position, footLl] + path: [marker.getPosition(), footLl] strokeColor: @['legColors']['usual'][@map.mapTypeId] strokeWeight: @['legWeight'] zIndex: @['usualLegZIndex'] marker['_omsData'] = - usualPosition: marker.position + usualPosition: marker.getPosition() leg: leg unless @['legColors']['highlighted'][@map.mapTypeId] is @['legColors']['usual'][@map.mapTypeId] From 87879ed9526dbe3f25a214d038561271478c919f Mon Sep 17 00:00:00 2001 From: viskin Date: Fri, 20 Mar 2015 16:51:48 +0200 Subject: [PATCH 3/9] added ; to build.bat --- build/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.bat b/build/build.bat index 46ec839..f66fb7a 100644 --- a/build/build.bat +++ b/build/build.bat @@ -14,7 +14,7 @@ java -jar "%JARPATH%" ^ --compilation_level ADVANCED_OPTIMIZATIONS ^ --js "%OUTDIR%%INPREFIX%.js" ^ --externs google_maps_api_v3_7.js ^ - --output_wrapper '(function(){%%output%%}).call(this);' ^ + --output_wrapper ';(function(){%%output%%}).call(this);' ^ > "%OUTFILE%" echo /* %date% %time% */ >> "%OUTFILE%" From 9ed3b5a3d9ed12bc69652e1cb06978c035d19ce8 Mon Sep 17 00:00:00 2001 From: viskin Date: Fri, 20 Mar 2015 16:55:17 +0200 Subject: [PATCH 4/9] replaced back getPosition with position --- lib/oms.coffee | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/oms.coffee b/lib/oms.coffee index 030df50..40cab38 100644 --- a/lib/oms.coffee +++ b/lib/oms.coffee @@ -145,10 +145,10 @@ class @['OverlappingMarkerSpiderfier'] nonNearbyMarkers = [] nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.getPosition()) + markerPt = @llToPt(marker.position) for m in @markers continue unless m.map? and m.getVisible() # at 2011-08-12, property m.visible is undefined in API v3.5 - mPt = @llToPt(m.getPosition()) + mPt = @llToPt(m.position) if @ptDistanceSq(mPt, markerPt) < pxSq nearbyMarkerData.push(marker: m, markerPt: mPt) else @@ -163,11 +163,11 @@ class @['OverlappingMarkerSpiderfier'] throw "Must wait for 'idle' event on map before calling markersNearMarker" nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.getPosition()) + markerPt = @llToPt(marker.position) markers = [] for m in @markers continue if m is marker or not m.map? or not m.getVisible() - mPt = @llToPt(m['_omsData']?.usualPosition ? m.getPosition()) + mPt = @llToPt(m['_omsData']?.usualPosition ? m.position) if @ptDistanceSq(mPt, markerPt) < pxSq markers.push(m) break if firstOnly @@ -179,7 +179,7 @@ class @['OverlappingMarkerSpiderfier'] nDist = @['nearbyDistance'] pxSq = nDist * nDist mData = for m in @markers - {pt: @llToPt(m['_omsData']?.usualPosition ? m.getPosition()), willSpiderfy: no} + {pt: @llToPt(m['_omsData']?.usualPosition ? m.position), willSpiderfy: no} for m1, i1 in @markers continue unless m1.map? and m1.getVisible() m1Data = mData[i1] @@ -218,12 +218,12 @@ class @['OverlappingMarkerSpiderfier'] marker = nearestMarkerDatum.marker leg = new gm.Polyline map: @map - path: [marker.getPosition(), footLl] + path: [marker.position, footLl] strokeColor: @['legColors']['usual'][@map.mapTypeId] strokeWeight: @['legWeight'] zIndex: @['usualLegZIndex'] marker['_omsData'] = - usualPosition: marker.getPosition() + usualPosition: marker.position leg: leg unless @['legColors']['highlighted'][@map.mapTypeId] is @['legColors']['usual'][@map.mapTypeId] From 49f6fe90fe5bd53067fe9e3d1314a9606f6b900b Mon Sep 17 00:00:00 2001 From: viskin Date: Fri, 20 Mar 2015 17:11:00 +0200 Subject: [PATCH 5/9] Fixes to windows build.bat --- build/build.bat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build/build.bat b/build/build.bat index f66fb7a..2a50b01 100644 --- a/build/build.bat +++ b/build/build.bat @@ -7,14 +7,13 @@ set OUTFILE=%OUTDIR%%OUTNAME% call coffee --output %OUTDIR% --compile %INDIR%%INPREFIX%.coffee -set theValue= -for /f "delims=" %%a in ('cygpath -m /usr/local/closure-compiler/compiler.jar') do @set JARPATH=%%a +@set JARPATH=c:\Dev\closure-compiler\compiler.jar java -jar "%JARPATH%" ^ --compilation_level ADVANCED_OPTIMIZATIONS ^ --js "%OUTDIR%%INPREFIX%.js" ^ --externs google_maps_api_v3_7.js ^ - --output_wrapper ';(function(){%%output%%}).call(this);' ^ + --output_wrapper ;(function(){%%output%%}).call(this); ^ > "%OUTFILE%" echo /* %date% %time% */ >> "%OUTFILE%" From 7591e25426d6be7b941f73bd22be7f4debb7fa97 Mon Sep 17 00:00:00 2001 From: viskin Date: Sat, 21 Mar 2015 10:53:03 +0200 Subject: [PATCH 6/9] Replaced position_change and getPosition with their ghost counterparts. --- lib/oms.coffee | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/oms.coffee b/lib/oms.coffee index 40cab38..d44736a 100644 --- a/lib/oms.coffee +++ b/lib/oms.coffee @@ -69,7 +69,7 @@ class @['OverlappingMarkerSpiderfier'] unless @['markersWontHide'] listenerRefs.push(ge.addListener(marker, 'visible_changed', => @markerChangeListener(marker, no))) unless @['markersWontMove'] - listenerRefs.push(ge.addListener(marker, 'position_changed', => @markerChangeListener(marker, yes))) + listenerRefs.push(ge.addListener(marker, 'ghostposition_changed', => @markerChangeListener(marker, yes))) @markerListenerRefs.push(listenerRefs) @markers.push(marker) @ # return self, for chaining @@ -145,10 +145,10 @@ class @['OverlappingMarkerSpiderfier'] nonNearbyMarkers = [] nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.position) + markerPt = @llToPt(marker.ghostPosition) for m in @markers continue unless m.map? and m.getVisible() # at 2011-08-12, property m.visible is undefined in API v3.5 - mPt = @llToPt(m.position) + mPt = @llToPt(m.ghostPosition) if @ptDistanceSq(mPt, markerPt) < pxSq nearbyMarkerData.push(marker: m, markerPt: mPt) else @@ -163,11 +163,11 @@ class @['OverlappingMarkerSpiderfier'] throw "Must wait for 'idle' event on map before calling markersNearMarker" nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.position) + markerPt = @llToPt(marker.ghostPosition) markers = [] for m in @markers continue if m is marker or not m.map? or not m.getVisible() - mPt = @llToPt(m['_omsData']?.usualPosition ? m.position) + mPt = @llToPt(m['_omsData']?.usualPosition ? m.ghostPosition) if @ptDistanceSq(mPt, markerPt) < pxSq markers.push(m) break if firstOnly @@ -179,7 +179,7 @@ class @['OverlappingMarkerSpiderfier'] nDist = @['nearbyDistance'] pxSq = nDist * nDist mData = for m in @markers - {pt: @llToPt(m['_omsData']?.usualPosition ? m.position), willSpiderfy: no} + {pt: @llToPt(m['_omsData']?.usualPosition ? m.ghostPosition), willSpiderfy: no} for m1, i1 in @markers continue unless m1.map? and m1.getVisible() m1Data = mData[i1] @@ -218,12 +218,12 @@ class @['OverlappingMarkerSpiderfier'] marker = nearestMarkerDatum.marker leg = new gm.Polyline map: @map - path: [marker.position, footLl] + path: [marker.ghostPosition, footLl] strokeColor: @['legColors']['usual'][@map.mapTypeId] strokeWeight: @['legWeight'] zIndex: @['usualLegZIndex'] marker['_omsData'] = - usualPosition: marker.position + usualPosition: marker.ghostPosition leg: leg unless @['legColors']['highlighted'][@map.mapTypeId] is @['legColors']['usual'][@map.mapTypeId] @@ -231,7 +231,7 @@ class @['OverlappingMarkerSpiderfier'] marker['_omsData'].hightlightListeners = highlight: ge.addListener(marker, 'mouseover', highlightListenerFuncs.highlight) unhighlight: ge.addListener(marker, 'mouseout', highlightListenerFuncs.unhighlight) - marker.setPosition(footLl) + marker.setGhostPosition(footLl) marker.setZIndex(Math.round(@['spiderfiedZIndex'] + footPt.y)) # lower markers cover higher marker delete @spiderfying @@ -246,7 +246,7 @@ class @['OverlappingMarkerSpiderfier'] for marker in @markers if marker['_omsData']? marker['_omsData'].leg.setMap(null) - marker.setPosition(marker['_omsData'].usualPosition) unless marker is markerNotToMove + marker.setGhostPosition(marker['_omsData'].usualPosition) unless marker is markerNotToMove marker.setZIndex(null) listeners = marker['_omsData'].hightlightListeners if listeners? From 83dd363d82885077498cc39fefa719b71478ca41 Mon Sep 17 00:00:00 2001 From: viskin Date: Sat, 21 Mar 2015 12:20:48 +0200 Subject: [PATCH 7/9] Added annotations for MarkerWithGhost and SlidingMarker. Updated google_maps_api to 3.19. --- build/MarkerWithGhost.annotations.js | 45 + build/SlidingMarker.annotations.js | 93 + build/build.bat | 2 +- build/build.sh | 2 +- ...s_api_v3_7.js => google_maps_api_v3_19.js} | 6633 ++++++++++++----- 5 files changed, 4962 insertions(+), 1813 deletions(-) create mode 100644 build/MarkerWithGhost.annotations.js create mode 100644 build/SlidingMarker.annotations.js rename build/{google_maps_api_v3_7.js => google_maps_api_v3_19.js} (50%) diff --git a/build/MarkerWithGhost.annotations.js b/build/MarkerWithGhost.annotations.js new file mode 100644 index 0000000..2706248 --- /dev/null +++ b/build/MarkerWithGhost.annotations.js @@ -0,0 +1,45 @@ +/** + * @fileoverview Externs MarkerWithGhost + * @see https://github.com/terikon/marker-animate-unobtrusive + * @externs + */ + +/** + * @param {(google.maps.MarkerOptions|Object.)=} opt_opts + * @extends {SlidingMarker} + * @constructor + */ +var MarkerWithGhost = function(opt_opts) {}; + +/** + * @return {undefined} + */ +MarkerWithGhost.initializeGlobally = function () {}; + +/** + * @type {google.maps.LatLng} + */ +MarkerWithGhost.prototype.ghostPosition; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} position + * @return {undefined} + */ +MarkerWithGhost.prototype.setGhostPosition = function (position) {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +MarkerWithGhost.prototype.getGhostPosition = function () {}; + +/** + * @type {google.maps.LatLng} + */ +MarkerWithGhost.prototype.ghostAnimationPosition; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +MarkerWithGhost.prototype.getGhostAnimationPosition = function() {}; \ No newline at end of file diff --git a/build/SlidingMarker.annotations.js b/build/SlidingMarker.annotations.js new file mode 100644 index 0000000..3771520 --- /dev/null +++ b/build/SlidingMarker.annotations.js @@ -0,0 +1,93 @@ +/** + * @fileoverview Externs SlidingMarker + * @see https://github.com/terikon/marker-animate-unobtrusive + * @externs + */ + +/** + * @param {(google.maps.MarkerOptions|Object.)=} opt_opts + * @extends {google.maps.Marker} + * @constructor + */ +var SlidingMarker = function(opt_opts) {}; + +/** + * @return {undefined} + */ +SlidingMarker.initializeGlobally = function () {}; + +/** + * @param {string} key + * @param {*} value + * @return {undefined} + */ +SlidingMarker.prototype.originalSet = function (key, value) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} position + * @return {undefined} + */ +SlidingMarker.prototype._setInstancePositionAnimated = function (position) {}; + +/** + * @type {google.maps.Marker} + */ +SlidingMarker.prototype._instance; + +/** + * @param {string} eventName + * @param {!Function} handler + * @return {google.maps.MapsEventListener} + */ +SlidingMarker.prototype.originalAddListener = function (eventName, handler) {}; + +/** + * @type {google.maps.LatLng} + */ +SlidingMarker.prototype.animationPosition; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +SlidingMarker.prototype.getAnimationPosition = function () {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latlng + * @return {undefined} + */ +SlidingMarker.prototype.setPositionNotAnimated = function (latlng) {}; + +/** + * @type {number} + */ +SlidingMarker.prototype.duration; + +/** + * @param {number} duration + * @return {undefined} + */ +SlidingMarker.prototype.setDuration = function (duration) {}; + +/** + * @nosideeffects + * @return {number} + */ +SlidingMarker.prototype.getDuration = function () {}; + +/** + * @type {string} + */ +SlidingMarker.prototype.easing; + +/** + * @param {string} easing + * @return {undefined} + */ +SlidingMarker.prototype.setEasing = function (easing) {}; + +/** + * @nosideeffects + * @return {string} + */ +SlidingMarker.prototype.getEasing = function () {}; diff --git a/build/build.bat b/build/build.bat index 2a50b01..8e66d56 100644 --- a/build/build.bat +++ b/build/build.bat @@ -12,7 +12,7 @@ call coffee --output %OUTDIR% --compile %INDIR%%INPREFIX%.coffee java -jar "%JARPATH%" ^ --compilation_level ADVANCED_OPTIMIZATIONS ^ --js "%OUTDIR%%INPREFIX%.js" ^ - --externs google_maps_api_v3_7.js ^ + --externs google_maps_api_v3_19.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js ^ --output_wrapper ;(function(){%%output%%}).call(this); ^ > "%OUTFILE%" diff --git a/build/build.sh b/build/build.sh index fb23d86..f8f1a79 100755 --- a/build/build.sh +++ b/build/build.sh @@ -12,7 +12,7 @@ coffee --output $OUTDIR --compile ${INDIR}${INPREFIX}.coffee java -jar /usr/local/closure-compiler/compiler.jar \ --compilation_level ADVANCED_OPTIMIZATIONS \ --js ${OUTDIR}${INPREFIX}.js \ - --externs google_maps_api_v3_7.js \ + --externs google_maps_api_v3_19.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js \ --output_wrapper '(function(){%output%}).call(this);' \ > $OUTFILE diff --git a/build/google_maps_api_v3_7.js b/build/google_maps_api_v3_19.js similarity index 50% rename from build/google_maps_api_v3_7.js rename to build/google_maps_api_v3_19.js index 654b06d..46c1673 100644 --- a/build/google_maps_api_v3_7.js +++ b/build/google_maps_api_v3_19.js @@ -15,7 +15,7 @@ */ /** - * @fileoverview Externs for the Google Maps v3.7 API. + * @fileoverview Externs for the Google Maps v3.19 API. * @see http://code.google.com/apis/maps/documentation/javascript/reference.html * @externs */ @@ -23,13 +23,33 @@ google.maps = {}; /** - * @enum {string} + * @enum {number|string} */ google.maps.Animation = { - DROP: '', - BOUNCE: '' + BOUNCE: '', + DROP: '' }; +/** + * @interface + */ +google.maps.Attribution = function() {}; + +/** + * @type {string} + */ +google.maps.Attribution.prototype.iosDeepLinkId; + +/** + * @type {string} + */ +google.maps.Attribution.prototype.source; + +/** + * @type {string} + */ +google.maps.Attribution.prototype.webUrl; + /** * @extends {google.maps.MVCObject} * @constructor @@ -49,7 +69,7 @@ google.maps.BicyclingLayer.prototype.getMap = function() {}; google.maps.BicyclingLayer.prototype.setMap = function(map) {}; /** - * @param {(google.maps.CircleOptions|Object.)=} opt_opts + * @param {(google.maps.CircleOptions|Object.)=} opt_opts * @extends {google.maps.MVCObject} * @constructor */ @@ -67,6 +87,12 @@ google.maps.Circle.prototype.getBounds = function() {}; */ google.maps.Circle.prototype.getCenter = function() {}; +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Circle.prototype.getDraggable = function() {}; + /** * @nosideeffects * @return {boolean} @@ -86,11 +112,23 @@ google.maps.Circle.prototype.getMap = function() {}; google.maps.Circle.prototype.getRadius = function() {}; /** - * @param {google.maps.LatLng} center + * @nosideeffects + * @return {boolean} + */ +google.maps.Circle.prototype.getVisible = function() {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} center * @return {undefined} */ google.maps.Circle.prototype.setCenter = function(center) {}; +/** + * @param {boolean} draggable + * @return {undefined} + */ +google.maps.Circle.prototype.setDraggable = function(draggable) {}; + /** * @param {boolean} editable * @return {undefined} @@ -104,7 +142,7 @@ google.maps.Circle.prototype.setEditable = function(editable) {}; google.maps.Circle.prototype.setMap = function(map) {}; /** - * @param {(google.maps.CircleOptions|Object.)} options + * @param {google.maps.CircleOptions|Object.} options * @return {undefined} */ google.maps.Circle.prototype.setOptions = function(options) {}; @@ -116,7 +154,13 @@ google.maps.Circle.prototype.setOptions = function(options) {}; google.maps.Circle.prototype.setRadius = function(radius) {}; /** - * @constructor + * @param {boolean} visible + * @return {undefined} + */ +google.maps.Circle.prototype.setVisible = function(visible) {}; + +/** + * @interface */ google.maps.CircleOptions = function() {}; @@ -130,6 +174,16 @@ google.maps.CircleOptions.prototype.center; */ google.maps.CircleOptions.prototype.clickable; +/** + * @type {boolean} + */ +google.maps.CircleOptions.prototype.draggable; + +/** + * @type {boolean} + */ +google.maps.CircleOptions.prototype.editable; + /** * @type {string} */ @@ -160,4100 +214,7057 @@ google.maps.CircleOptions.prototype.strokeColor; */ google.maps.CircleOptions.prototype.strokeOpacity; +/** + * @type {google.maps.StrokePosition} + */ +google.maps.CircleOptions.prototype.strokePosition; + /** * @type {number} */ google.maps.CircleOptions.prototype.strokeWeight; +/** + * @type {boolean} + */ +google.maps.CircleOptions.prototype.visible; + /** * @type {number} */ google.maps.CircleOptions.prototype.zIndex; /** - * @enum {string} + * @enum {number|string} */ google.maps.ControlPosition = { BOTTOM_CENTER: '', - TOP_RIGHT: '', - RIGHT_BOTTOM: '', + BOTTOM_LEFT: '', BOTTOM_RIGHT: '', - LEFT_TOP: '', LEFT_BOTTOM: '', - TOP_LEFT: '', - TOP_CENTER: '', LEFT_CENTER: '', + LEFT_TOP: '', + RIGHT_BOTTOM: '', RIGHT_CENTER: '', RIGHT_TOP: '', - BOTTOM_LEFT: '' + TOP_CENTER: '', + TOP_LEFT: '', + TOP_RIGHT: '' }; /** + * @param {(google.maps.Data.DataOptions|Object.)=} opt_options + * @extends {google.maps.MVCObject} * @constructor */ -google.maps.DirectionsLeg = function() {}; +google.maps.Data = function(opt_options) {}; /** - * @type {google.maps.Distance} + * @param {google.maps.Data.Feature|google.maps.Data.FeatureOptions|Object.} feature + * @return {google.maps.Data.Feature} */ -google.maps.DirectionsLeg.prototype.distance; +google.maps.Data.prototype.add = function(feature) {}; /** - * @type {google.maps.Duration} + * @param {Object} geoJson + * @param {(google.maps.Data.GeoJsonOptions|Object.)=} opt_options + * @return {Array} */ -google.maps.DirectionsLeg.prototype.duration; +google.maps.Data.prototype.addGeoJson = function(geoJson, opt_options) {}; /** - * @type {string} + * @param {google.maps.Data.Feature} feature + * @return {boolean} */ -google.maps.DirectionsLeg.prototype.end_address; +google.maps.Data.prototype.contains = function(feature) {}; /** - * @type {google.maps.LatLng} + * @param {function(google.maps.Data.Feature)} callback + * @return {undefined} */ -google.maps.DirectionsLeg.prototype.end_location; +google.maps.Data.prototype.forEach = function(callback) {}; /** - * @type {string} + * @param {number|string} id + * @return {google.maps.Data.Feature|undefined} */ -google.maps.DirectionsLeg.prototype.start_address; +google.maps.Data.prototype.getFeatureById = function(id) {}; /** - * @type {google.maps.LatLng} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.DirectionsLeg.prototype.start_location; +google.maps.Data.prototype.getMap = function() {}; /** - * @type {Array.} + * @nosideeffects + * @return {google.maps.Data.StylingFunction|google.maps.Data.StyleOptions|Object.} */ -google.maps.DirectionsLeg.prototype.steps; +google.maps.Data.prototype.getStyle = function() {}; /** - * @type {Array.} + * @param {string} url + * @param {(google.maps.Data.GeoJsonOptions|Object.)=} opt_options + * @param {function(Array)=} opt_callback + * @return {undefined} */ -google.maps.DirectionsLeg.prototype.via_waypoints; +google.maps.Data.prototype.loadGeoJson = function(url, opt_options, opt_callback) {}; /** - * @param {(google.maps.DirectionsRendererOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @param {google.maps.Data.Feature} feature + * @param {google.maps.Data.StyleOptions|Object.} style + * @return {undefined} */ -google.maps.DirectionsRenderer = function(opt_opts) {}; +google.maps.Data.prototype.overrideStyle = function(feature, style) {}; /** - * @nosideeffects - * @return {google.maps.DirectionsResult} + * @param {google.maps.Data.Feature} feature + * @return {undefined} */ -google.maps.DirectionsRenderer.prototype.getDirections = function() {}; +google.maps.Data.prototype.remove = function(feature) {}; /** - * @nosideeffects - * @return {google.maps.Map} + * @param {google.maps.Data.Feature=} opt_feature + * @return {undefined} */ -google.maps.DirectionsRenderer.prototype.getMap = function() {}; +google.maps.Data.prototype.revertStyle = function(opt_feature) {}; /** - * @nosideeffects - * @return {Node} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.DirectionsRenderer.prototype.getPanel = function() {}; +google.maps.Data.prototype.setMap = function(map) {}; /** - * @nosideeffects - * @return {number} + * @param {google.maps.Data.StylingFunction|google.maps.Data.StyleOptions|Object.} style + * @return {undefined} */ -google.maps.DirectionsRenderer.prototype.getRouteIndex = function() {}; +google.maps.Data.prototype.setStyle = function(style) {}; /** - * @param {google.maps.DirectionsResult} directions + * @param {function(Object)} callback * @return {undefined} */ -google.maps.DirectionsRenderer.prototype.setDirections = function(directions) {}; +google.maps.Data.prototype.toGeoJson = function(callback) {}; /** - * @param {google.maps.Map} map - * @return {undefined} + * @interface */ -google.maps.DirectionsRenderer.prototype.setMap = function(map) {}; +google.maps.Data.AddFeatureEvent = function() {}; /** - * @param {(google.maps.DirectionsRendererOptions|Object.)} options - * @return {undefined} + * @type {google.maps.Data.Feature} */ -google.maps.DirectionsRenderer.prototype.setOptions = function(options) {}; +google.maps.Data.AddFeatureEvent.prototype.feature; /** - * @param {Node} panel - * @return {undefined} + * @interface */ -google.maps.DirectionsRenderer.prototype.setPanel = function(panel) {}; +google.maps.Data.DataOptions = function() {}; /** - * @param {number} routeIndex - * @return {undefined} + * @type {google.maps.Map} */ -google.maps.DirectionsRenderer.prototype.setRouteIndex = function(routeIndex) {}; +google.maps.Data.DataOptions.prototype.map; /** - * @constructor + * @type {google.maps.Data.StylingFunction|google.maps.Data.StyleOptions|Object.} */ -google.maps.DirectionsRendererOptions = function() {}; +google.maps.Data.DataOptions.prototype.style; /** - * @type {google.maps.DirectionsResult} + * @param {(google.maps.Data.FeatureOptions|Object.)=} opt_options + * @constructor */ -google.maps.DirectionsRendererOptions.prototype.directions; +google.maps.Data.Feature = function(opt_options) {}; /** - * @type {boolean} + * @param {function(*, string)} callback + * @return {undefined} */ -google.maps.DirectionsRendererOptions.prototype.draggable; +google.maps.Data.Feature.prototype.forEachProperty = function(callback) {}; /** - * @type {boolean} + * @nosideeffects + * @return {google.maps.Data.Geometry} */ -google.maps.DirectionsRendererOptions.prototype.hideRouteList; +google.maps.Data.Feature.prototype.getGeometry = function() {}; /** - * @type {google.maps.InfoWindow} + * @nosideeffects + * @return {number|string|undefined} */ -google.maps.DirectionsRendererOptions.prototype.infoWindow; +google.maps.Data.Feature.prototype.getId = function() {}; /** - * @type {google.maps.Map} + * @param {string} name + * @return {*} */ -google.maps.DirectionsRendererOptions.prototype.map; +google.maps.Data.Feature.prototype.getProperty = function(name) {}; /** - * @type {(google.maps.MarkerOptions|Object.)} + * @param {string} name + * @return {undefined} */ -google.maps.DirectionsRendererOptions.prototype.markerOptions; +google.maps.Data.Feature.prototype.removeProperty = function(name) {}; /** - * @type {Node} + * @param {google.maps.Data.Geometry|google.maps.LatLng|google.maps.LatLngLiteral} newGeometry + * @return {undefined} */ -google.maps.DirectionsRendererOptions.prototype.panel; +google.maps.Data.Feature.prototype.setGeometry = function(newGeometry) {}; /** - * @type {(google.maps.PolylineOptions|Object.)} + * @param {string} name + * @param {*} newValue + * @return {undefined} */ -google.maps.DirectionsRendererOptions.prototype.polylineOptions; +google.maps.Data.Feature.prototype.setProperty = function(name, newValue) {}; /** - * @type {boolean} + * @param {function(Object)} callback + * @return {undefined} */ -google.maps.DirectionsRendererOptions.prototype.preserveViewport; +google.maps.Data.Feature.prototype.toGeoJson = function(callback) {}; /** - * @type {number} + * @interface */ -google.maps.DirectionsRendererOptions.prototype.routeIndex; +google.maps.Data.FeatureOptions = function() {}; /** - * @type {boolean} + * @type {google.maps.Data.Geometry|google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.DirectionsRendererOptions.prototype.suppressBicyclingLayer; +google.maps.Data.FeatureOptions.prototype.geometry; /** - * @type {boolean} + * @type {number|string} */ -google.maps.DirectionsRendererOptions.prototype.suppressInfoWindows; +google.maps.Data.FeatureOptions.prototype.id; /** - * @type {boolean} + * @type {Object} */ -google.maps.DirectionsRendererOptions.prototype.suppressMarkers; +google.maps.Data.FeatureOptions.prototype.properties; /** - * @type {boolean} + * @interface */ -google.maps.DirectionsRendererOptions.prototype.suppressPolylines; +google.maps.Data.GeoJsonOptions = function() {}; /** - * @constructor + * @type {string} */ -google.maps.DirectionsRequest = function() {}; +google.maps.Data.GeoJsonOptions.prototype.idPropertyName; /** - * @type {boolean} + * @constructor */ -google.maps.DirectionsRequest.prototype.avoidHighways; +google.maps.Data.Geometry = function() {}; /** - * @type {boolean} + * @nosideeffects + * @return {string} */ -google.maps.DirectionsRequest.prototype.avoidTolls; +google.maps.Data.Geometry.prototype.getType = function() {}; /** - * @type {google.maps.LatLng|string} + * @param {Array} elements + * @extends {google.maps.Data.Geometry} + * @constructor */ -google.maps.DirectionsRequest.prototype.destination; +google.maps.Data.GeometryCollection = function(elements) {}; /** - * @type {boolean} + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsRequest.prototype.optimizeWaypoints; +google.maps.Data.GeometryCollection.prototype.getArray = function() {}; /** - * @type {google.maps.LatLng|string} + * @param {number} n + * @return {google.maps.Data.Geometry} */ -google.maps.DirectionsRequest.prototype.origin; +google.maps.Data.GeometryCollection.prototype.getAt = function(n) {}; /** - * @type {boolean} + * @nosideeffects + * @return {number} */ -google.maps.DirectionsRequest.prototype.provideRouteAlternatives; +google.maps.Data.GeometryCollection.prototype.getLength = function() {}; /** - * @type {string} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DirectionsRequest.prototype.region; +google.maps.Data.GeometryCollection.prototype.getType = function() {}; /** - * @type {google.maps.TravelMode} + * @param {Array} elements + * @extends {google.maps.Data.Geometry} + * @constructor */ -google.maps.DirectionsRequest.prototype.travelMode; +google.maps.Data.LineString = function(elements) {}; /** - * @type {google.maps.UnitSystem} + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsRequest.prototype.unitSystem; +google.maps.Data.LineString.prototype.getArray = function() {}; /** - * @type {Array.} + * @param {number} n + * @return {google.maps.LatLng} */ -google.maps.DirectionsRequest.prototype.waypoints; +google.maps.Data.LineString.prototype.getAt = function(n) {}; /** - * @constructor + * @nosideeffects + * @return {number} */ -google.maps.DirectionsResult = function() {}; +google.maps.Data.LineString.prototype.getLength = function() {}; /** - * @type {Array.} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DirectionsResult.prototype.routes; +google.maps.Data.LineString.prototype.getType = function() {}; /** + * @param {Array} elements + * @extends {google.maps.Data.Geometry} * @constructor */ -google.maps.DirectionsRoute = function() {}; +google.maps.Data.LinearRing = function(elements) {}; /** - * @type {google.maps.LatLngBounds} + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsRoute.prototype.bounds; +google.maps.Data.LinearRing.prototype.getArray = function() {}; /** - * @type {string} + * @param {number} n + * @return {google.maps.LatLng} */ -google.maps.DirectionsRoute.prototype.copyrights; +google.maps.Data.LinearRing.prototype.getAt = function(n) {}; /** - * @type {Array.} + * @nosideeffects + * @return {number} */ -google.maps.DirectionsRoute.prototype.legs; +google.maps.Data.LinearRing.prototype.getLength = function() {}; /** - * @type {Array.} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DirectionsRoute.prototype.overview_path; +google.maps.Data.LinearRing.prototype.getType = function() {}; /** - * @type {Array.} + * @extends {google.maps.MouseEvent} + * @constructor */ -google.maps.DirectionsRoute.prototype.warnings; +google.maps.Data.MouseEvent = function() {}; /** - * @type {Array.} + * @type {google.maps.Data.Feature} */ -google.maps.DirectionsRoute.prototype.waypoint_order; +google.maps.Data.MouseEvent.prototype.feature; /** + * @param {Array>} elements + * @extends {google.maps.Data.Geometry} * @constructor */ -google.maps.DirectionsService = function() {}; +google.maps.Data.MultiLineString = function(elements) {}; /** - * @param {(google.maps.DirectionsRequest|Object.)} request - * @param {function(google.maps.DirectionsResult, google.maps.DirectionsStatus)} callback - * @return {undefined} + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsService.prototype.route = function(request, callback) {}; +google.maps.Data.MultiLineString.prototype.getArray = function() {}; /** - * @enum {string} + * @param {number} n + * @return {google.maps.Data.LineString} */ -google.maps.DirectionsStatus = { - MAX_WAYPOINTS_EXCEEDED: '', - OK: '', - ZERO_RESULTS: '', - INVALID_REQUEST: '', - UNKNOWN_ERROR: '', - REQUEST_DENIED: '', - NOT_FOUND: '', - OVER_QUERY_LIMIT: '' -}; +google.maps.Data.MultiLineString.prototype.getAt = function(n) {}; /** - * @constructor + * @nosideeffects + * @return {number} */ -google.maps.DirectionsStep = function() {}; +google.maps.Data.MultiLineString.prototype.getLength = function() {}; /** - * @type {google.maps.Distance} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DirectionsStep.prototype.distance; +google.maps.Data.MultiLineString.prototype.getType = function() {}; /** - * @type {google.maps.Duration} + * @param {Array} elements + * @extends {google.maps.Data.Geometry} + * @constructor */ -google.maps.DirectionsStep.prototype.duration; +google.maps.Data.MultiPoint = function(elements) {}; /** - * @type {google.maps.LatLng} + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsStep.prototype.end_location; +google.maps.Data.MultiPoint.prototype.getArray = function() {}; /** - * @type {string} + * @param {number} n + * @return {google.maps.LatLng} */ -google.maps.DirectionsStep.prototype.instructions; +google.maps.Data.MultiPoint.prototype.getAt = function(n) {}; /** - * @type {Array.} + * @nosideeffects + * @return {number} */ -google.maps.DirectionsStep.prototype.path; +google.maps.Data.MultiPoint.prototype.getLength = function() {}; /** - * @type {google.maps.LatLng} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DirectionsStep.prototype.start_location; +google.maps.Data.MultiPoint.prototype.getType = function() {}; /** - * @type {google.maps.TravelMode} + * @param {Array>>} elements + * @extends {google.maps.Data.Geometry} + * @constructor */ -google.maps.DirectionsStep.prototype.travel_mode; +google.maps.Data.MultiPolygon = function(elements) {}; /** - * @constructor + * @nosideeffects + * @return {Array} */ -google.maps.DirectionsWaypoint = function() {}; +google.maps.Data.MultiPolygon.prototype.getArray = function() {}; /** - * @type {google.maps.LatLng|string} + * @param {number} n + * @return {google.maps.Data.Polygon} */ -google.maps.DirectionsWaypoint.prototype.location; +google.maps.Data.MultiPolygon.prototype.getAt = function(n) {}; /** - * @type {boolean} + * @nosideeffects + * @return {number} */ -google.maps.DirectionsWaypoint.prototype.stopover; +google.maps.Data.MultiPolygon.prototype.getLength = function() {}; /** - * @constructor + * @nosideeffects + * @return {string} + * @override */ -google.maps.Distance = function() {}; +google.maps.Data.MultiPolygon.prototype.getType = function() {}; /** - * @type {string} + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latLng + * @extends {google.maps.Data.Geometry} + * @constructor */ -google.maps.Distance.prototype.text; +google.maps.Data.Point = function(latLng) {}; /** - * @type {number} + * @nosideeffects + * @return {google.maps.LatLng} */ -google.maps.Distance.prototype.value; +google.maps.Data.Point.prototype.get = function() {}; /** - * @enum {string} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DistanceMatrixElementStatus = { - ZERO_RESULTS: '', - NOT_FOUND: '', - OK: '' -}; +google.maps.Data.Point.prototype.getType = function() {}; /** + * @param {Array>} elements + * @extends {google.maps.Data.Geometry} * @constructor */ -google.maps.DistanceMatrixRequest = function() {}; +google.maps.Data.Polygon = function(elements) {}; /** - * @type {boolean} + * @nosideeffects + * @return {Array} */ -google.maps.DistanceMatrixRequest.prototype.avoidHighways; +google.maps.Data.Polygon.prototype.getArray = function() {}; /** - * @type {boolean} + * @param {number} n + * @return {google.maps.Data.LinearRing} */ -google.maps.DistanceMatrixRequest.prototype.avoidTolls; +google.maps.Data.Polygon.prototype.getAt = function(n) {}; /** - * @type {Array.|Array.} + * @nosideeffects + * @return {number} */ -google.maps.DistanceMatrixRequest.prototype.destinations; +google.maps.Data.Polygon.prototype.getLength = function() {}; /** - * @type {Array.|Array.} + * @nosideeffects + * @return {string} + * @override */ -google.maps.DistanceMatrixRequest.prototype.origins; +google.maps.Data.Polygon.prototype.getType = function() {}; /** - * @type {string} + * @interface */ -google.maps.DistanceMatrixRequest.prototype.region; +google.maps.Data.RemoveFeatureEvent = function() {}; /** - * @type {google.maps.TravelMode} + * @type {google.maps.Data.Feature} */ -google.maps.DistanceMatrixRequest.prototype.travelMode; +google.maps.Data.RemoveFeatureEvent.prototype.feature; /** - * @type {google.maps.UnitSystem} + * @interface */ -google.maps.DistanceMatrixRequest.prototype.unitSystem; +google.maps.Data.RemovePropertyEvent = function() {}; /** - * @constructor + * @type {google.maps.Data.Feature} */ -google.maps.DistanceMatrixResponse = function() {}; +google.maps.Data.RemovePropertyEvent.prototype.feature; /** - * @type {Array.} + * @type {string} */ -google.maps.DistanceMatrixResponse.prototype.destinationAddresses; +google.maps.Data.RemovePropertyEvent.prototype.name; /** - * @type {Array.} + * @type {*} */ -google.maps.DistanceMatrixResponse.prototype.originAddresses; +google.maps.Data.RemovePropertyEvent.prototype.oldValue; /** - * @type {Array.} + * @interface */ -google.maps.DistanceMatrixResponse.prototype.rows; +google.maps.Data.SetGeometryEvent = function() {}; /** - * @constructor + * @type {google.maps.Data.Feature} */ -google.maps.DistanceMatrixResponseElement = function() {}; +google.maps.Data.SetGeometryEvent.prototype.feature; /** - * @type {google.maps.Distance} + * @type {google.maps.Data.Geometry} */ -google.maps.DistanceMatrixResponseElement.prototype.distance; +google.maps.Data.SetGeometryEvent.prototype.newGeometry; /** - * @type {google.maps.Duration} + * @type {google.maps.Data.Geometry} */ -google.maps.DistanceMatrixResponseElement.prototype.duration; +google.maps.Data.SetGeometryEvent.prototype.oldGeometry; /** - * @type {google.maps.DistanceMatrixElementStatus} + * @interface */ -google.maps.DistanceMatrixResponseElement.prototype.status; +google.maps.Data.SetPropertyEvent = function() {}; /** - * @constructor + * @type {google.maps.Data.Feature} */ -google.maps.DistanceMatrixResponseRow = function() {}; +google.maps.Data.SetPropertyEvent.prototype.feature; /** - * @type {Array.} + * @type {string} */ -google.maps.DistanceMatrixResponseRow.prototype.elements; +google.maps.Data.SetPropertyEvent.prototype.name; /** - * @constructor + * @type {*} */ -google.maps.DistanceMatrixService = function() {}; +google.maps.Data.SetPropertyEvent.prototype.newValue; /** - * @param {(google.maps.DistanceMatrixRequest|Object.)} request - * @param {function(google.maps.DistanceMatrixResponse, google.maps.DistanceMatrixStatus)} callback - * @return {undefined} + * @type {*} */ -google.maps.DistanceMatrixService.prototype.getDistanceMatrix = function(request, callback) {}; +google.maps.Data.SetPropertyEvent.prototype.oldValue; /** - * @enum {string} + * @interface */ -google.maps.DistanceMatrixStatus = { - OK: '', - INVALID_REQUEST: '', - MAX_ELEMENTS_EXCEEDED: '', - UNKNOWN_ERROR: '', - REQUEST_DENIED: '', - MAX_DIMENSIONS_EXCEEDED: '', - OVER_QUERY_LIMIT: '' -}; +google.maps.Data.StyleOptions = function() {}; /** - * @constructor + * @type {boolean} */ -google.maps.Duration = function() {}; +google.maps.Data.StyleOptions.prototype.clickable; /** * @type {string} */ -google.maps.Duration.prototype.text; +google.maps.Data.StyleOptions.prototype.cursor; + +/** + * @type {string} + */ +google.maps.Data.StyleOptions.prototype.fillColor; /** * @type {number} */ -google.maps.Duration.prototype.value; +google.maps.Data.StyleOptions.prototype.fillOpacity; /** - * @constructor + * @type {string|google.maps.Icon|google.maps.Symbol} */ -google.maps.ElevationResult = function() {}; +google.maps.Data.StyleOptions.prototype.icon; /** - * @type {number} + * @type {google.maps.MarkerShape} */ -google.maps.ElevationResult.prototype.elevation; +google.maps.Data.StyleOptions.prototype.shape; /** - * @type {google.maps.LatLng} + * @type {string} */ -google.maps.ElevationResult.prototype.location; +google.maps.Data.StyleOptions.prototype.strokeColor; /** * @type {number} */ -google.maps.ElevationResult.prototype.resolution; +google.maps.Data.StyleOptions.prototype.strokeOpacity; /** - * @constructor + * @type {number} */ -google.maps.ElevationService = function() {}; +google.maps.Data.StyleOptions.prototype.strokeWeight; /** - * @param {(google.maps.PathElevationRequest|Object.)} request - * @param {function(Array., google.maps.ElevationStatus)} callback - * @return {undefined} + * @type {string} */ -google.maps.ElevationService.prototype.getElevationAlongPath = function(request, callback) {}; +google.maps.Data.StyleOptions.prototype.title; /** - * @param {(google.maps.LocationElevationRequest|Object.)} request - * @param {function(Array., google.maps.ElevationStatus)} callback - * @return {undefined} + * @type {boolean} */ -google.maps.ElevationService.prototype.getElevationForLocations = function(request, callback) {}; +google.maps.Data.StyleOptions.prototype.visible; /** - * @enum {string} + * @type {number} */ -google.maps.ElevationStatus = { - INVALID_REQUEST: '', - UNKNOWN_ERROR: '', - OK: '', - REQUEST_DENIED: '', - OVER_QUERY_LIMIT: '' -}; +google.maps.Data.StyleOptions.prototype.zIndex; /** - * @constructor + * @typedef {function(google.maps.Data.Feature):google.maps.Data.StyleOptions|Object.} */ -google.maps.FusionTablesCell = function() {}; +google.maps.Data.StylingFunction; /** - * @type {string} + * @interface */ -google.maps.FusionTablesCell.prototype.columnName; +google.maps.DirectionsLeg = function() {}; /** - * @type {string} + * @type {google.maps.Time} */ -google.maps.FusionTablesCell.prototype.value; +google.maps.DirectionsLeg.prototype.arrival_time; /** - * @constructor + * @type {google.maps.Time} */ -google.maps.FusionTablesHeatmap = function() {}; +google.maps.DirectionsLeg.prototype.departure_time; /** - * @type {boolean} + * @type {google.maps.Distance} */ -google.maps.FusionTablesHeatmap.prototype.enabled; +google.maps.DirectionsLeg.prototype.distance; /** - * @param {(google.maps.FusionTablesLayerOptions|Object.)} options - * @extends {google.maps.MVCObject} - * @constructor + * @type {google.maps.Duration} */ -google.maps.FusionTablesLayer = function(options) {}; +google.maps.DirectionsLeg.prototype.duration; /** - * @nosideeffects - * @return {google.maps.Map} + * @type {google.maps.Duration} */ -google.maps.FusionTablesLayer.prototype.getMap = function() {}; +google.maps.DirectionsLeg.prototype.duration_in_traffic; /** - * @param {google.maps.Map} map - * @return {undefined} + * @type {string} */ -google.maps.FusionTablesLayer.prototype.setMap = function(map) {}; +google.maps.DirectionsLeg.prototype.end_address; /** - * @param {(google.maps.FusionTablesLayerOptions|Object.)} options - * @return {undefined} + * @type {google.maps.LatLng} */ -google.maps.FusionTablesLayer.prototype.setOptions = function(options) {}; +google.maps.DirectionsLeg.prototype.end_location; /** - * @constructor + * @type {string} */ -google.maps.FusionTablesLayerOptions = function() {}; +google.maps.DirectionsLeg.prototype.start_address; /** - * @type {boolean} + * @type {google.maps.LatLng} */ -google.maps.FusionTablesLayerOptions.prototype.clickable; +google.maps.DirectionsLeg.prototype.start_location; /** - * @type {google.maps.FusionTablesHeatmap} + * @type {Array} */ -google.maps.FusionTablesLayerOptions.prototype.heatmap; +google.maps.DirectionsLeg.prototype.steps; /** - * @type {google.maps.Map} + * @type {Array} */ -google.maps.FusionTablesLayerOptions.prototype.map; +google.maps.DirectionsLeg.prototype.via_waypoints; /** - * @type {google.maps.FusionTablesQuery} + * @param {(google.maps.DirectionsRendererOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.FusionTablesLayerOptions.prototype.query; +google.maps.DirectionsRenderer = function(opt_opts) {}; /** - * @type {Array.} + * @nosideeffects + * @return {google.maps.DirectionsResult} */ -google.maps.FusionTablesLayerOptions.prototype.styles; +google.maps.DirectionsRenderer.prototype.getDirections = function() {}; /** - * @type {boolean} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.FusionTablesLayerOptions.prototype.suppressInfoWindows; +google.maps.DirectionsRenderer.prototype.getMap = function() {}; /** - * @constructor + * @nosideeffects + * @return {Node} */ -google.maps.FusionTablesMarkerOptions = function() {}; +google.maps.DirectionsRenderer.prototype.getPanel = function() {}; /** - * @type {string} + * @nosideeffects + * @return {number} */ -google.maps.FusionTablesMarkerOptions.prototype.iconName; +google.maps.DirectionsRenderer.prototype.getRouteIndex = function() {}; /** - * @constructor + * @param {google.maps.DirectionsResult} directions + * @return {undefined} */ -google.maps.FusionTablesMouseEvent = function() {}; +google.maps.DirectionsRenderer.prototype.setDirections = function(directions) {}; /** - * @type {string} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.FusionTablesMouseEvent.prototype.infoWindowHtml; +google.maps.DirectionsRenderer.prototype.setMap = function(map) {}; /** - * @type {google.maps.LatLng} + * @param {google.maps.DirectionsRendererOptions|Object.} options + * @return {undefined} */ -google.maps.FusionTablesMouseEvent.prototype.latLng; +google.maps.DirectionsRenderer.prototype.setOptions = function(options) {}; /** - * @type {google.maps.Size} + * @param {Node} panel + * @return {undefined} */ -google.maps.FusionTablesMouseEvent.prototype.pixelOffset; +google.maps.DirectionsRenderer.prototype.setPanel = function(panel) {}; /** - * @type {Object} + * @param {number} routeIndex + * @return {undefined} */ -google.maps.FusionTablesMouseEvent.prototype.row; +google.maps.DirectionsRenderer.prototype.setRouteIndex = function(routeIndex) {}; /** - * @constructor + * @interface */ -google.maps.FusionTablesPolygonOptions = function() {}; +google.maps.DirectionsRendererOptions = function() {}; /** - * @type {string} + * @type {google.maps.DirectionsResult} */ -google.maps.FusionTablesPolygonOptions.prototype.fillColor; +google.maps.DirectionsRendererOptions.prototype.directions; /** - * @type {number} + * @type {boolean} */ -google.maps.FusionTablesPolygonOptions.prototype.fillOpacity; +google.maps.DirectionsRendererOptions.prototype.draggable; /** - * @type {string} + * @type {boolean} */ -google.maps.FusionTablesPolygonOptions.prototype.strokeColor; +google.maps.DirectionsRendererOptions.prototype.hideRouteList; /** - * @type {number} + * @type {google.maps.InfoWindow} */ -google.maps.FusionTablesPolygonOptions.prototype.strokeOpacity; +google.maps.DirectionsRendererOptions.prototype.infoWindow; /** - * @type {number} + * @type {google.maps.Map} */ -google.maps.FusionTablesPolygonOptions.prototype.strokeWeight; +google.maps.DirectionsRendererOptions.prototype.map; /** - * @constructor + * @type {google.maps.MarkerOptions|Object.} */ -google.maps.FusionTablesPolylineOptions = function() {}; +google.maps.DirectionsRendererOptions.prototype.markerOptions; /** - * @type {string} + * @type {Node} */ -google.maps.FusionTablesPolylineOptions.prototype.strokeColor; +google.maps.DirectionsRendererOptions.prototype.panel; /** - * @type {number} + * @type {google.maps.PolylineOptions|Object.} */ -google.maps.FusionTablesPolylineOptions.prototype.strokeOpacity; +google.maps.DirectionsRendererOptions.prototype.polylineOptions; /** - * @type {number} + * @type {boolean} */ -google.maps.FusionTablesPolylineOptions.prototype.strokeWeight; +google.maps.DirectionsRendererOptions.prototype.preserveViewport; /** - * @constructor + * @type {number} */ -google.maps.FusionTablesQuery = function() {}; +google.maps.DirectionsRendererOptions.prototype.routeIndex; /** - * @type {string} + * @type {boolean} */ -google.maps.FusionTablesQuery.prototype.from; +google.maps.DirectionsRendererOptions.prototype.suppressBicyclingLayer; /** - * @type {string} + * @type {boolean} */ -google.maps.FusionTablesQuery.prototype.select; +google.maps.DirectionsRendererOptions.prototype.suppressInfoWindows; /** - * @type {string} + * @type {boolean} */ -google.maps.FusionTablesQuery.prototype.where; +google.maps.DirectionsRendererOptions.prototype.suppressMarkers; /** - * @constructor + * @type {boolean} */ -google.maps.FusionTablesStyle = function() {}; +google.maps.DirectionsRendererOptions.prototype.suppressPolylines; /** - * @type {(google.maps.FusionTablesMarkerOptions|Object.)} + * @interface */ -google.maps.FusionTablesStyle.prototype.markerOptions; +google.maps.DirectionsRequest = function() {}; /** - * @type {(google.maps.FusionTablesPolygonOptions|Object.)} + * @type {boolean} */ -google.maps.FusionTablesStyle.prototype.polygonOptions; +google.maps.DirectionsRequest.prototype.avoidFerries; /** - * @type {(google.maps.FusionTablesPolylineOptions|Object.)} + * @type {boolean} */ -google.maps.FusionTablesStyle.prototype.polylineOptions; +google.maps.DirectionsRequest.prototype.avoidHighways; /** - * @type {string} + * @type {boolean} */ -google.maps.FusionTablesStyle.prototype.where; +google.maps.DirectionsRequest.prototype.avoidTolls; /** - * @constructor + * @type {google.maps.LatLng|string} */ -google.maps.Geocoder = function() {}; +google.maps.DirectionsRequest.prototype.destination; /** - * @param {(google.maps.GeocoderRequest|Object.)} request - * @param {function(Array., google.maps.GeocoderStatus)} callback - * @return {undefined} + * @type {boolean} */ -google.maps.Geocoder.prototype.geocode = function(request, callback) {}; +google.maps.DirectionsRequest.prototype.durationInTraffic; /** - * @constructor + * @type {boolean} */ -google.maps.GeocoderAddressComponent = function() {}; +google.maps.DirectionsRequest.prototype.optimizeWaypoints; /** - * @type {string} + * @type {google.maps.LatLng|string} */ -google.maps.GeocoderAddressComponent.prototype.long_name; +google.maps.DirectionsRequest.prototype.origin; + +/** + * @type {boolean} + */ +google.maps.DirectionsRequest.prototype.provideRouteAlternatives; /** * @type {string} */ -google.maps.GeocoderAddressComponent.prototype.short_name; +google.maps.DirectionsRequest.prototype.region; /** - * @type {Array.} + * @type {google.maps.TransitOptions|Object.} */ -google.maps.GeocoderAddressComponent.prototype.types; +google.maps.DirectionsRequest.prototype.transitOptions; /** - * @constructor + * @type {google.maps.TravelMode} */ -google.maps.GeocoderGeometry = function() {}; +google.maps.DirectionsRequest.prototype.travelMode; /** - * @type {google.maps.LatLngBounds} + * @type {google.maps.UnitSystem} */ -google.maps.GeocoderGeometry.prototype.bounds; +google.maps.DirectionsRequest.prototype.unitSystem; /** - * @type {google.maps.LatLng} + * @type {Array} */ -google.maps.GeocoderGeometry.prototype.location; +google.maps.DirectionsRequest.prototype.waypoints; /** - * @type {google.maps.GeocoderLocationType} + * @interface */ -google.maps.GeocoderGeometry.prototype.location_type; +google.maps.DirectionsResult = function() {}; /** - * @type {google.maps.LatLngBounds} + * @type {Array} */ -google.maps.GeocoderGeometry.prototype.viewport; +google.maps.DirectionsResult.prototype.routes; /** - * @enum {string} + * @interface */ -google.maps.GeocoderLocationType = { - RANGE_INTERPOLATED: '', - ROOFTOP: '', - APPROXIMATE: '', - GEOMETRIC_CENTER: '' -}; +google.maps.DirectionsRoute = function() {}; /** - * @constructor + * @type {google.maps.LatLngBounds} */ -google.maps.GeocoderRequest = function() {}; +google.maps.DirectionsRoute.prototype.bounds; /** * @type {string} */ -google.maps.GeocoderRequest.prototype.address; +google.maps.DirectionsRoute.prototype.copyrights; /** - * @type {google.maps.LatLngBounds} + * @type {google.maps.TransitFare} */ -google.maps.GeocoderRequest.prototype.bounds; +google.maps.DirectionsRoute.prototype.fare; /** - * @type {google.maps.LatLng} + * @type {Array} */ -google.maps.GeocoderRequest.prototype.location; +google.maps.DirectionsRoute.prototype.legs; /** - * @type {string} + * @type {Array} */ -google.maps.GeocoderRequest.prototype.region; +google.maps.DirectionsRoute.prototype.overview_path; /** - * @constructor + * @type {string} */ -google.maps.GeocoderResult = function() {}; +google.maps.DirectionsRoute.prototype.overview_polyline; /** - * @type {Array.} + * @type {Array} */ -google.maps.GeocoderResult.prototype.address_components; +google.maps.DirectionsRoute.prototype.warnings; /** - * @type {string} + * @type {Array} */ -google.maps.GeocoderResult.prototype.formatted_address; +google.maps.DirectionsRoute.prototype.waypoint_order; /** - * @type {google.maps.GeocoderGeometry} + * @constructor */ -google.maps.GeocoderResult.prototype.geometry; +google.maps.DirectionsService = function() {}; /** - * @type {Array.} + * @param {google.maps.DirectionsRequest|Object.} request + * @param {function(google.maps.DirectionsResult, google.maps.DirectionsStatus)} callback + * @return {undefined} */ -google.maps.GeocoderResult.prototype.types; +google.maps.DirectionsService.prototype.route = function(request, callback) {}; /** - * @enum {string} + * @enum {number|string} */ -google.maps.GeocoderStatus = { - OK: '', - ZERO_RESULTS: '', +google.maps.DirectionsStatus = { INVALID_REQUEST: '', - UNKNOWN_ERROR: '', + MAX_WAYPOINTS_EXCEEDED: '', + NOT_FOUND: '', + OK: '', + OVER_QUERY_LIMIT: '', REQUEST_DENIED: '', - ERROR: '', - OVER_QUERY_LIMIT: '' + UNKNOWN_ERROR: '', + ZERO_RESULTS: '' }; /** - * @param {string} url - * @param {google.maps.LatLngBounds} bounds - * @param {(google.maps.GroundOverlayOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @interface */ -google.maps.GroundOverlay = function(url, bounds, opt_opts) {}; +google.maps.DirectionsStep = function() {}; /** - * @nosideeffects - * @return {google.maps.LatLngBounds} + * @type {google.maps.Distance} */ -google.maps.GroundOverlay.prototype.getBounds = function() {}; +google.maps.DirectionsStep.prototype.distance; /** - * @nosideeffects - * @return {google.maps.Map} + * @type {google.maps.Duration} */ -google.maps.GroundOverlay.prototype.getMap = function() {}; +google.maps.DirectionsStep.prototype.duration; /** - * @nosideeffects - * @return {string} + * @type {google.maps.LatLng} */ -google.maps.GroundOverlay.prototype.getUrl = function() {}; +google.maps.DirectionsStep.prototype.end_location; /** - * @param {google.maps.Map} map - * @return {undefined} + * @type {string} */ -google.maps.GroundOverlay.prototype.setMap = function(map) {}; +google.maps.DirectionsStep.prototype.instructions; /** - * @constructor + * @type {Array} */ -google.maps.GroundOverlayOptions = function() {}; +google.maps.DirectionsStep.prototype.path; /** - * @type {boolean} + * @type {google.maps.LatLng} */ -google.maps.GroundOverlayOptions.prototype.clickable; +google.maps.DirectionsStep.prototype.start_location; /** - * @type {google.maps.Map} + * @type {Array} */ -google.maps.GroundOverlayOptions.prototype.map; +google.maps.DirectionsStep.prototype.steps; /** - * @param {(google.maps.ImageMapTypeOptions|Object.)} opts - * @constructor + * @type {google.maps.TransitDetails} */ -google.maps.ImageMapType = function(opts) {}; +google.maps.DirectionsStep.prototype.transit; /** - * @constructor + * @type {google.maps.TravelMode} */ -google.maps.ImageMapTypeOptions = function() {}; +google.maps.DirectionsStep.prototype.travel_mode; /** - * @type {string} + * @interface */ -google.maps.ImageMapTypeOptions.prototype.alt; +google.maps.DirectionsWaypoint = function() {}; /** - * @type {function(google.maps.Point, number):string} - * @nosideeffects + * @type {google.maps.LatLng|string} */ -google.maps.ImageMapTypeOptions.prototype.getTileUrl; +google.maps.DirectionsWaypoint.prototype.location; /** - * @type {number} + * @type {boolean} */ -google.maps.ImageMapTypeOptions.prototype.maxZoom; +google.maps.DirectionsWaypoint.prototype.stopover; /** - * @type {number} + * @interface */ -google.maps.ImageMapTypeOptions.prototype.minZoom; +google.maps.Distance = function() {}; /** * @type {string} */ -google.maps.ImageMapTypeOptions.prototype.name; +google.maps.Distance.prototype.text; /** * @type {number} */ -google.maps.ImageMapTypeOptions.prototype.opacity; - -/** - * @type {google.maps.Size} - */ -google.maps.ImageMapTypeOptions.prototype.tileSize; +google.maps.Distance.prototype.value; /** - * @param {(google.maps.InfoWindowOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @enum {number|string} */ -google.maps.InfoWindow = function(opt_opts) {}; +google.maps.DistanceMatrixElementStatus = { + NOT_FOUND: '', + OK: '', + ZERO_RESULTS: '' +}; /** - * @return {undefined} + * @interface */ -google.maps.InfoWindow.prototype.close = function() {}; +google.maps.DistanceMatrixRequest = function() {}; /** - * @nosideeffects - * @return {string|Node} + * @type {boolean} */ -google.maps.InfoWindow.prototype.getContent = function() {}; +google.maps.DistanceMatrixRequest.prototype.avoidFerries; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @type {boolean} */ -google.maps.InfoWindow.prototype.getPosition = function() {}; +google.maps.DistanceMatrixRequest.prototype.avoidHighways; /** - * @nosideeffects - * @return {number} + * @type {boolean} */ -google.maps.InfoWindow.prototype.getZIndex = function() {}; +google.maps.DistanceMatrixRequest.prototype.avoidTolls; /** - * @param {(google.maps.Map|google.maps.StreetViewPanorama)=} opt_map - * @param {google.maps.MVCObject=} opt_anchor - * @return {undefined} + * @type {Array|Array} */ -google.maps.InfoWindow.prototype.open = function(opt_map, opt_anchor) {}; +google.maps.DistanceMatrixRequest.prototype.destinations; /** - * @param {string|Node} content - * @return {undefined} + * @type {boolean} */ -google.maps.InfoWindow.prototype.setContent = function(content) {}; +google.maps.DistanceMatrixRequest.prototype.durationInTraffic; /** - * @param {(google.maps.InfoWindowOptions|Object.)} options - * @return {undefined} + * @type {Array|Array} */ -google.maps.InfoWindow.prototype.setOptions = function(options) {}; +google.maps.DistanceMatrixRequest.prototype.origins; /** - * @param {google.maps.LatLng} position - * @return {undefined} + * @type {string} */ -google.maps.InfoWindow.prototype.setPosition = function(position) {}; +google.maps.DistanceMatrixRequest.prototype.region; /** - * @param {number} zIndex - * @return {undefined} + * @type {google.maps.TransitOptions|Object.} */ -google.maps.InfoWindow.prototype.setZIndex = function(zIndex) {}; +google.maps.DistanceMatrixRequest.prototype.transitOptions; /** - * @constructor + * @type {google.maps.TravelMode} */ -google.maps.InfoWindowOptions = function() {}; +google.maps.DistanceMatrixRequest.prototype.travelMode; /** - * @type {string|Node} + * @type {google.maps.UnitSystem} */ -google.maps.InfoWindowOptions.prototype.content; +google.maps.DistanceMatrixRequest.prototype.unitSystem; /** - * @type {boolean} + * @interface */ -google.maps.InfoWindowOptions.prototype.disableAutoPan; +google.maps.DistanceMatrixResponse = function() {}; /** - * @type {number} + * @type {Array} */ -google.maps.InfoWindowOptions.prototype.maxWidth; +google.maps.DistanceMatrixResponse.prototype.destinationAddresses; /** - * @type {google.maps.Size} + * @type {Array} */ -google.maps.InfoWindowOptions.prototype.pixelOffset; +google.maps.DistanceMatrixResponse.prototype.originAddresses; /** - * @type {google.maps.LatLng} + * @type {Array} */ -google.maps.InfoWindowOptions.prototype.position; +google.maps.DistanceMatrixResponse.prototype.rows; /** - * @type {number} + * @interface */ -google.maps.InfoWindowOptions.prototype.zIndex; +google.maps.DistanceMatrixResponseElement = function() {}; /** - * @constructor + * @type {google.maps.Distance} */ -google.maps.KmlAuthor = function() {}; +google.maps.DistanceMatrixResponseElement.prototype.distance; /** - * @type {string} + * @type {google.maps.Duration} */ -google.maps.KmlAuthor.prototype.email; +google.maps.DistanceMatrixResponseElement.prototype.duration; /** - * @type {string} + * @type {google.maps.TransitFare} */ -google.maps.KmlAuthor.prototype.name; +google.maps.DistanceMatrixResponseElement.prototype.fare; /** - * @type {string} + * @type {google.maps.DistanceMatrixElementStatus} */ -google.maps.KmlAuthor.prototype.uri; +google.maps.DistanceMatrixResponseElement.prototype.status; /** - * @constructor + * @interface */ -google.maps.KmlFeatureData = function() {}; +google.maps.DistanceMatrixResponseRow = function() {}; /** - * @type {google.maps.KmlAuthor} + * @type {Array} */ -google.maps.KmlFeatureData.prototype.author; +google.maps.DistanceMatrixResponseRow.prototype.elements; /** - * @type {string} + * @constructor */ -google.maps.KmlFeatureData.prototype.description; +google.maps.DistanceMatrixService = function() {}; /** - * @type {string} + * @param {google.maps.DistanceMatrixRequest|Object.} request + * @param {function(google.maps.DistanceMatrixResponse, google.maps.DistanceMatrixStatus)} callback + * @return {undefined} */ -google.maps.KmlFeatureData.prototype.id; +google.maps.DistanceMatrixService.prototype.getDistanceMatrix = function(request, callback) {}; /** - * @type {string} + * @enum {number|string} */ -google.maps.KmlFeatureData.prototype.infoWindowHtml; - +google.maps.DistanceMatrixStatus = { + INVALID_REQUEST: '', + MAX_DIMENSIONS_EXCEEDED: '', + MAX_ELEMENTS_EXCEEDED: '', + OK: '', + OVER_QUERY_LIMIT: '', + REQUEST_DENIED: '', + UNKNOWN_ERROR: '' +}; + /** - * @type {string} + * @interface */ -google.maps.KmlFeatureData.prototype.name; +google.maps.Duration = function() {}; /** * @type {string} */ -google.maps.KmlFeatureData.prototype.snippet; +google.maps.Duration.prototype.text; /** - * @param {string} url - * @param {(google.maps.KmlLayerOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @type {number} */ -google.maps.KmlLayer = function(url, opt_opts) {}; +google.maps.Duration.prototype.value; /** - * @nosideeffects - * @return {google.maps.LatLngBounds} + * @interface */ -google.maps.KmlLayer.prototype.getDefaultViewport = function() {}; +google.maps.ElevationResult = function() {}; /** - * @nosideeffects - * @return {google.maps.Map} + * @type {number} */ -google.maps.KmlLayer.prototype.getMap = function() {}; +google.maps.ElevationResult.prototype.elevation; /** - * @nosideeffects - * @return {google.maps.KmlLayerMetadata} + * @type {google.maps.LatLng} */ -google.maps.KmlLayer.prototype.getMetadata = function() {}; +google.maps.ElevationResult.prototype.location; /** - * @nosideeffects - * @return {string} + * @type {number} */ -google.maps.KmlLayer.prototype.getUrl = function() {}; +google.maps.ElevationResult.prototype.resolution; /** - * @param {google.maps.Map} map + * @constructor + */ +google.maps.ElevationService = function() {}; + +/** + * @param {google.maps.PathElevationRequest|Object.} request + * @param {function(Array, google.maps.ElevationStatus)} callback * @return {undefined} */ -google.maps.KmlLayer.prototype.setMap = function(map) {}; +google.maps.ElevationService.prototype.getElevationAlongPath = function(request, callback) {}; /** - * @constructor + * @param {google.maps.LocationElevationRequest|Object.} request + * @param {function(Array, google.maps.ElevationStatus)} callback + * @return {undefined} */ -google.maps.KmlLayerMetadata = function() {}; +google.maps.ElevationService.prototype.getElevationForLocations = function(request, callback) {}; /** - * @type {google.maps.KmlAuthor} + * @enum {number|string} */ -google.maps.KmlLayerMetadata.prototype.author; +google.maps.ElevationStatus = { + INVALID_REQUEST: '', + OK: '', + OVER_QUERY_LIMIT: '', + REQUEST_DENIED: '', + UNKNOWN_ERROR: '' +}; /** - * @type {string} + * @interface */ -google.maps.KmlLayerMetadata.prototype.description; +google.maps.FusionTablesCell = function() {}; /** * @type {string} */ -google.maps.KmlLayerMetadata.prototype.name; +google.maps.FusionTablesCell.prototype.columnName; /** * @type {string} */ -google.maps.KmlLayerMetadata.prototype.snippet; +google.maps.FusionTablesCell.prototype.value; /** * @constructor */ -google.maps.KmlLayerOptions = function() {}; +google.maps.FusionTablesHeatmap = function() {}; /** * @type {boolean} */ -google.maps.KmlLayerOptions.prototype.clickable; +google.maps.FusionTablesHeatmap.prototype.enabled; /** - * @type {google.maps.Map} + * @param {google.maps.FusionTablesLayerOptions|Object.} options + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.KmlLayerOptions.prototype.map; +google.maps.FusionTablesLayer = function(options) {}; /** - * @type {boolean} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.KmlLayerOptions.prototype.preserveViewport; +google.maps.FusionTablesLayer.prototype.getMap = function() {}; /** - * @type {boolean} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.KmlLayerOptions.prototype.suppressInfoWindows; +google.maps.FusionTablesLayer.prototype.setMap = function(map) {}; /** - * @constructor + * @param {google.maps.FusionTablesLayerOptions|Object.} options + * @return {undefined} */ -google.maps.KmlMouseEvent = function() {}; +google.maps.FusionTablesLayer.prototype.setOptions = function(options) {}; /** - * @type {google.maps.KmlFeatureData} + * @interface */ -google.maps.KmlMouseEvent.prototype.featureData; +google.maps.FusionTablesLayerOptions = function() {}; /** - * @type {google.maps.LatLng} + * @type {boolean} */ -google.maps.KmlMouseEvent.prototype.latLng; +google.maps.FusionTablesLayerOptions.prototype.clickable; /** - * @type {google.maps.Size} + * @type {google.maps.FusionTablesHeatmap} */ -google.maps.KmlMouseEvent.prototype.pixelOffset; +google.maps.FusionTablesLayerOptions.prototype.heatmap; /** - * @param {number} lat - * @param {number} lng - * @param {boolean=} opt_noWrap - * @constructor + * @type {google.maps.Map} */ -google.maps.LatLng = function(lat, lng, opt_noWrap) {}; +google.maps.FusionTablesLayerOptions.prototype.map; /** - * @param {google.maps.LatLng} other - * @return {boolean} + * @type {google.maps.FusionTablesQuery} */ -google.maps.LatLng.prototype.equals = function(other) {}; +google.maps.FusionTablesLayerOptions.prototype.query; /** - * @return {number} + * @type {Array} */ -google.maps.LatLng.prototype.lat = function() {}; +google.maps.FusionTablesLayerOptions.prototype.styles; /** - * @return {number} + * @type {boolean} */ -google.maps.LatLng.prototype.lng = function() {}; +google.maps.FusionTablesLayerOptions.prototype.suppressInfoWindows; /** - * @return {string} + * @constructor */ -google.maps.LatLng.prototype.toString = function() {}; +google.maps.FusionTablesMarkerOptions = function() {}; /** - * @param {number=} opt_precision - * @return {string} + * @type {string} */ -google.maps.LatLng.prototype.toUrlValue = function(opt_precision) {}; +google.maps.FusionTablesMarkerOptions.prototype.iconName; /** - * @param {google.maps.LatLng=} opt_sw - * @param {google.maps.LatLng=} opt_ne - * @constructor + * @interface */ -google.maps.LatLngBounds = function(opt_sw, opt_ne) {}; +google.maps.FusionTablesMouseEvent = function() {}; /** - * @param {google.maps.LatLng} latLng - * @return {boolean} + * @type {string} */ -google.maps.LatLngBounds.prototype.contains = function(latLng) {}; +google.maps.FusionTablesMouseEvent.prototype.infoWindowHtml; /** - * @param {google.maps.LatLngBounds} other - * @return {boolean} + * @type {google.maps.LatLng} */ -google.maps.LatLngBounds.prototype.equals = function(other) {}; +google.maps.FusionTablesMouseEvent.prototype.latLng; /** - * @param {google.maps.LatLng} point - * @return {google.maps.LatLngBounds} + * @type {google.maps.Size} */ -google.maps.LatLngBounds.prototype.extend = function(point) {}; +google.maps.FusionTablesMouseEvent.prototype.pixelOffset; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @type {Object} */ -google.maps.LatLngBounds.prototype.getCenter = function() {}; +google.maps.FusionTablesMouseEvent.prototype.row; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @constructor */ -google.maps.LatLngBounds.prototype.getNorthEast = function() {}; +google.maps.FusionTablesPolygonOptions = function() {}; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @type {string} */ -google.maps.LatLngBounds.prototype.getSouthWest = function() {}; +google.maps.FusionTablesPolygonOptions.prototype.fillColor; /** - * @param {google.maps.LatLngBounds} other - * @return {boolean} + * @type {number} */ -google.maps.LatLngBounds.prototype.intersects = function(other) {}; +google.maps.FusionTablesPolygonOptions.prototype.fillOpacity; /** - * @return {boolean} + * @type {string} */ -google.maps.LatLngBounds.prototype.isEmpty = function() {}; +google.maps.FusionTablesPolygonOptions.prototype.strokeColor; /** - * @return {google.maps.LatLng} + * @type {number} */ -google.maps.LatLngBounds.prototype.toSpan = function() {}; +google.maps.FusionTablesPolygonOptions.prototype.strokeOpacity; /** - * @return {string} + * @type {number} */ -google.maps.LatLngBounds.prototype.toString = function() {}; +google.maps.FusionTablesPolygonOptions.prototype.strokeWeight; /** - * @param {number=} opt_precision - * @return {string} + * @constructor */ -google.maps.LatLngBounds.prototype.toUrlValue = function(opt_precision) {}; +google.maps.FusionTablesPolylineOptions = function() {}; /** - * @param {google.maps.LatLngBounds} other - * @return {google.maps.LatLngBounds} + * @type {string} */ -google.maps.LatLngBounds.prototype.union = function(other) {}; +google.maps.FusionTablesPolylineOptions.prototype.strokeColor; /** - * @constructor + * @type {number} */ -google.maps.LocationElevationRequest = function() {}; +google.maps.FusionTablesPolylineOptions.prototype.strokeOpacity; /** - * @type {Array.} + * @type {number} */ -google.maps.LocationElevationRequest.prototype.locations; +google.maps.FusionTablesPolylineOptions.prototype.strokeWeight; /** - * @param {Array=} opt_array - * @extends {google.maps.MVCObject} * @constructor */ -google.maps.MVCArray = function(opt_array) {}; +google.maps.FusionTablesQuery = function() {}; /** - * @return {undefined} + * @type {string} */ -google.maps.MVCArray.prototype.clear = function() {}; +google.maps.FusionTablesQuery.prototype.from; /** - * @param {function(*, number)} callback - * @return {undefined} + * @type {number} */ -google.maps.MVCArray.prototype.forEach = function(callback) {}; +google.maps.FusionTablesQuery.prototype.limit; /** - * @nosideeffects - * @return {Array} + * @type {number} */ -google.maps.MVCArray.prototype.getArray = function() {}; +google.maps.FusionTablesQuery.prototype.offset; /** - * @param {number} i - * @return {*} + * @type {string} */ -google.maps.MVCArray.prototype.getAt = function(i) {}; +google.maps.FusionTablesQuery.prototype.orderBy; /** - * @nosideeffects - * @return {number} + * @type {string} */ -google.maps.MVCArray.prototype.getLength = function() {}; +google.maps.FusionTablesQuery.prototype.select; /** - * @param {number} i - * @param {*} elem - * @return {undefined} + * @type {string} */ -google.maps.MVCArray.prototype.insertAt = function(i, elem) {}; +google.maps.FusionTablesQuery.prototype.where; /** - * @return {*} + * @constructor */ -google.maps.MVCArray.prototype.pop = function() {}; +google.maps.FusionTablesStyle = function() {}; /** - * @param {*} elem - * @return {number} + * @type {google.maps.FusionTablesMarkerOptions|Object.} */ -google.maps.MVCArray.prototype.push = function(elem) {}; +google.maps.FusionTablesStyle.prototype.markerOptions; /** - * @param {number} i - * @return {*} + * @type {google.maps.FusionTablesPolygonOptions|Object.} */ -google.maps.MVCArray.prototype.removeAt = function(i) {}; +google.maps.FusionTablesStyle.prototype.polygonOptions; /** - * @param {number} i - * @param {*} elem - * @return {undefined} + * @type {google.maps.FusionTablesPolylineOptions|Object.} */ -google.maps.MVCArray.prototype.setAt = function(i, elem) {}; +google.maps.FusionTablesStyle.prototype.polylineOptions; /** - * @constructor + * @type {string} */ -google.maps.MVCObject = function() {}; +google.maps.FusionTablesStyle.prototype.where; /** - * @param {string} key - * @param {google.maps.MVCObject} target - * @param {string=} opt_targetKey - * @param {boolean=} opt_noNotify - * @return {undefined} + * @constructor */ -google.maps.MVCObject.prototype.bindTo = function(key, target, opt_targetKey, opt_noNotify) {}; +google.maps.Geocoder = function() {}; /** - * @param {string} key + * @param {google.maps.GeocoderRequest|Object.} request + * @param {function(Array, google.maps.GeocoderStatus)} callback * @return {undefined} */ -google.maps.MVCObject.prototype.changed = function(key) {}; +google.maps.Geocoder.prototype.geocode = function(request, callback) {}; /** - * @param {string} key - * @return {*} + * @constructor */ -google.maps.MVCObject.prototype.get = function(key) {}; +google.maps.GeocoderAddressComponent = function() {}; /** - * @param {string} key - * @return {undefined} + * @type {string} */ -google.maps.MVCObject.prototype.notify = function(key) {}; +google.maps.GeocoderAddressComponent.prototype.long_name; /** - * @param {string} key - * @param {*} value - * @return {undefined} + * @type {string} */ -google.maps.MVCObject.prototype.set = function(key, value) {}; +google.maps.GeocoderAddressComponent.prototype.short_name; /** - * @param {Object|undefined} values - * @return {undefined} + * @type {Array} */ -google.maps.MVCObject.prototype.setValues = function(values) {}; +google.maps.GeocoderAddressComponent.prototype.types; /** - * @param {string} key - * @return {undefined} + * @interface */ -google.maps.MVCObject.prototype.unbind = function(key) {}; +google.maps.GeocoderComponentRestrictions = function() {}; /** - * @return {undefined} + * @type {string} */ -google.maps.MVCObject.prototype.unbindAll = function() {}; +google.maps.GeocoderComponentRestrictions.prototype.administrativeArea; /** - * @param {Node} mapDiv - * @param {(google.maps.MapOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @type {string} */ -google.maps.Map = function(mapDiv, opt_opts) {}; +google.maps.GeocoderComponentRestrictions.prototype.country; /** - * @type {Array.>} + * @type {string} */ -google.maps.Map.prototype.controls; +google.maps.GeocoderComponentRestrictions.prototype.locality; /** - * @param {google.maps.LatLngBounds} bounds - * @return {undefined} + * @type {string} */ -google.maps.Map.prototype.fitBounds = function(bounds) {}; +google.maps.GeocoderComponentRestrictions.prototype.postalCode; /** - * @nosideeffects - * @return {google.maps.LatLngBounds} + * @type {string} */ -google.maps.Map.prototype.getBounds = function() {}; +google.maps.GeocoderComponentRestrictions.prototype.route; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @constructor */ -google.maps.Map.prototype.getCenter = function() {}; +google.maps.GeocoderGeometry = function() {}; /** - * @nosideeffects - * @return {Node} + * @type {google.maps.LatLngBounds} */ -google.maps.Map.prototype.getDiv = function() {}; +google.maps.GeocoderGeometry.prototype.bounds; /** - * @nosideeffects - * @return {number} + * @type {google.maps.LatLng} */ -google.maps.Map.prototype.getHeading = function() {}; +google.maps.GeocoderGeometry.prototype.location; /** - * @nosideeffects - * @return {google.maps.MapTypeId|string} + * @type {google.maps.GeocoderLocationType} */ -google.maps.Map.prototype.getMapTypeId = function() {}; +google.maps.GeocoderGeometry.prototype.location_type; /** - * @nosideeffects - * @return {google.maps.Projection} + * @type {google.maps.LatLngBounds} */ -google.maps.Map.prototype.getProjection = function() {}; +google.maps.GeocoderGeometry.prototype.viewport; /** - * @nosideeffects - * @return {google.maps.StreetViewPanorama} + * @enum {number|string} */ -google.maps.Map.prototype.getStreetView = function() {}; +google.maps.GeocoderLocationType = { + APPROXIMATE: '', + GEOMETRIC_CENTER: '', + RANGE_INTERPOLATED: '', + ROOFTOP: '' +}; /** - * @nosideeffects - * @return {number} + * @interface */ -google.maps.Map.prototype.getTilt = function() {}; +google.maps.GeocoderRequest = function() {}; /** - * @nosideeffects - * @return {number} + * @type {string} */ -google.maps.Map.prototype.getZoom = function() {}; +google.maps.GeocoderRequest.prototype.address; /** - * @type {google.maps.MapTypeRegistry} + * @type {google.maps.LatLngBounds} */ -google.maps.Map.prototype.mapTypes; +google.maps.GeocoderRequest.prototype.bounds; /** - * @type {google.maps.MVCArray.} + * @type {google.maps.GeocoderComponentRestrictions} */ -google.maps.Map.prototype.overlayMapTypes; +google.maps.GeocoderRequest.prototype.componentRestrictions; /** - * @param {number} x - * @param {number} y - * @return {undefined} + * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.Map.prototype.panBy = function(x, y) {}; +google.maps.GeocoderRequest.prototype.location; /** - * @param {google.maps.LatLng} latLng - * @return {undefined} + * @type {string} */ -google.maps.Map.prototype.panTo = function(latLng) {}; +google.maps.GeocoderRequest.prototype.region; /** - * @param {google.maps.LatLngBounds} latLngBounds - * @return {undefined} + * @constructor */ -google.maps.Map.prototype.panToBounds = function(latLngBounds) {}; +google.maps.GeocoderResult = function() {}; /** - * @param {google.maps.LatLng} latlng - * @return {undefined} + * @type {Array} */ -google.maps.Map.prototype.setCenter = function(latlng) {}; +google.maps.GeocoderResult.prototype.address_components; /** - * @param {number} heading - * @return {undefined} + * @type {string} */ -google.maps.Map.prototype.setHeading = function(heading) {}; +google.maps.GeocoderResult.prototype.formatted_address; /** - * @param {google.maps.MapTypeId|string} mapTypeId - * @return {undefined} + * @type {google.maps.GeocoderGeometry} */ -google.maps.Map.prototype.setMapTypeId = function(mapTypeId) {}; +google.maps.GeocoderResult.prototype.geometry; /** - * @param {(google.maps.MapOptions|Object.)} options - * @return {undefined} + * @type {boolean} */ -google.maps.Map.prototype.setOptions = function(options) {}; +google.maps.GeocoderResult.prototype.partial_match; /** - * @param {google.maps.StreetViewPanorama} panorama - * @return {undefined} + * @type {Array} */ -google.maps.Map.prototype.setStreetView = function(panorama) {}; +google.maps.GeocoderResult.prototype.postcode_localities; /** - * @param {number} tilt - * @return {undefined} + * @type {Array} */ -google.maps.Map.prototype.setTilt = function(tilt) {}; +google.maps.GeocoderResult.prototype.types; /** - * @param {number} zoom - * @return {undefined} + * @enum {number|string} */ -google.maps.Map.prototype.setZoom = function(zoom) {}; +google.maps.GeocoderStatus = { + ERROR: '', + INVALID_REQUEST: '', + OK: '', + OVER_QUERY_LIMIT: '', + REQUEST_DENIED: '', + UNKNOWN_ERROR: '', + ZERO_RESULTS: '' +}; /** + * @param {string} url + * @param {google.maps.LatLngBounds} bounds + * @param {(google.maps.GroundOverlayOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} * @constructor */ -google.maps.MapCanvasProjection = function() {}; +google.maps.GroundOverlay = function(url, bounds, opt_opts) {}; /** - * @param {google.maps.Point} pixel - * @return {google.maps.LatLng} + * @nosideeffects + * @return {google.maps.LatLngBounds} */ -google.maps.MapCanvasProjection.prototype.fromContainerPixelToLatLng = function(pixel) {}; +google.maps.GroundOverlay.prototype.getBounds = function() {}; /** - * @param {google.maps.Point} pixel - * @return {google.maps.LatLng} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.MapCanvasProjection.prototype.fromDivPixelToLatLng = function(pixel) {}; +google.maps.GroundOverlay.prototype.getMap = function() {}; /** - * @param {google.maps.LatLng} latLng - * @return {google.maps.Point} + * @nosideeffects + * @return {number} */ -google.maps.MapCanvasProjection.prototype.fromLatLngToContainerPixel = function(latLng) {}; +google.maps.GroundOverlay.prototype.getOpacity = function() {}; /** - * @param {google.maps.LatLng} latLng - * @return {google.maps.Point} + * @nosideeffects + * @return {string} */ -google.maps.MapCanvasProjection.prototype.fromLatLngToDivPixel = function(latLng) {}; +google.maps.GroundOverlay.prototype.getUrl = function() {}; /** - * @nosideeffects - * @return {number} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.MapCanvasProjection.prototype.getWorldWidth = function() {}; +google.maps.GroundOverlay.prototype.setMap = function(map) {}; /** - * @constructor + * @param {number} opacity + * @return {undefined} */ -google.maps.MapOptions = function() {}; +google.maps.GroundOverlay.prototype.setOpacity = function(opacity) {}; /** - * @type {string} + * @interface */ -google.maps.MapOptions.prototype.backgroundColor; +google.maps.GroundOverlayOptions = function() {}; /** - * @type {google.maps.LatLng} + * @type {boolean} */ -google.maps.MapOptions.prototype.center; +google.maps.GroundOverlayOptions.prototype.clickable; /** - * @type {boolean} + * @type {google.maps.Map} */ -google.maps.MapOptions.prototype.disableDefaultUI; +google.maps.GroundOverlayOptions.prototype.map; /** - * @type {boolean} + * @type {number} */ -google.maps.MapOptions.prototype.disableDoubleClickZoom; +google.maps.GroundOverlayOptions.prototype.opacity; /** - * @type {boolean} + * @interface */ -google.maps.MapOptions.prototype.draggable; +google.maps.Icon = function() {}; /** - * @type {string} + * @type {google.maps.Point} */ -google.maps.MapOptions.prototype.draggableCursor; +google.maps.Icon.prototype.anchor; /** - * @type {string} + * @type {google.maps.Point} */ -google.maps.MapOptions.prototype.draggingCursor; +google.maps.Icon.prototype.origin; /** - * @type {number} + * @type {google.maps.Size} */ -google.maps.MapOptions.prototype.heading; +google.maps.Icon.prototype.scaledSize; /** - * @type {boolean} + * @type {google.maps.Size} */ -google.maps.MapOptions.prototype.keyboardShortcuts; +google.maps.Icon.prototype.size; /** - * @type {boolean} + * @type {string} */ -google.maps.MapOptions.prototype.mapTypeControl; +google.maps.Icon.prototype.url; /** - * @type {(google.maps.MapTypeControlOptions|Object.)} + * @interface */ -google.maps.MapOptions.prototype.mapTypeControlOptions; +google.maps.IconSequence = function() {}; /** - * @type {google.maps.MapTypeId} + * @type {boolean} */ -google.maps.MapOptions.prototype.mapTypeId; +google.maps.IconSequence.prototype.fixedRotation; /** - * @type {number} + * @type {google.maps.Symbol} */ -google.maps.MapOptions.prototype.maxZoom; +google.maps.IconSequence.prototype.icon; /** - * @type {number} + * @type {string} */ -google.maps.MapOptions.prototype.minZoom; +google.maps.IconSequence.prototype.offset; /** - * @type {boolean} + * @type {string} */ -google.maps.MapOptions.prototype.noClear; +google.maps.IconSequence.prototype.repeat; /** - * @type {boolean} + * @param {google.maps.ImageMapTypeOptions|Object.} opts + * @implements {google.maps.MapType} + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.MapOptions.prototype.overviewMapControl; +google.maps.ImageMapType = function(opts) {}; /** - * @type {(google.maps.OverviewMapControlOptions|Object.)} + * @type {string} */ -google.maps.MapOptions.prototype.overviewMapControlOptions; +google.maps.ImageMapType.prototype.alt; /** - * @type {boolean} + * @type {number} */ -google.maps.MapOptions.prototype.panControl; +google.maps.ImageMapType.prototype.maxZoom; /** - * @type {(google.maps.PanControlOptions|Object.)} + * @type {number} */ -google.maps.MapOptions.prototype.panControlOptions; +google.maps.ImageMapType.prototype.minZoom; /** - * @type {boolean} + * @type {string} */ -google.maps.MapOptions.prototype.rotateControl; +google.maps.ImageMapType.prototype.name; /** - * @type {(google.maps.RotateControlOptions|Object.)} + * @type {google.maps.Projection} */ -google.maps.MapOptions.prototype.rotateControlOptions; +google.maps.ImageMapType.prototype.projection; /** - * @type {boolean} + * @type {number} */ -google.maps.MapOptions.prototype.scaleControl; +google.maps.ImageMapType.prototype.radius; /** - * @type {(google.maps.ScaleControlOptions|Object.)} + * @type {google.maps.Size} */ -google.maps.MapOptions.prototype.scaleControlOptions; +google.maps.ImageMapType.prototype.tileSize; /** - * @type {boolean} + * @nosideeffects + * @return {number} */ -google.maps.MapOptions.prototype.scrollwheel; +google.maps.ImageMapType.prototype.getOpacity = function() {}; /** - * @type {google.maps.StreetViewPanorama} + * @param {google.maps.Point} tileCoord + * @param {number} zoom + * @param {Document} ownerDocument + * @return {Node} */ -google.maps.MapOptions.prototype.streetView; +google.maps.ImageMapType.prototype.getTile = function(tileCoord, zoom, ownerDocument) {}; /** - * @type {boolean} + * @param {Node} tile + * @return {undefined} */ -google.maps.MapOptions.prototype.streetViewControl; +google.maps.ImageMapType.prototype.releaseTile = function(tile) {}; /** - * @type {(google.maps.StreetViewControlOptions|Object.)} + * @param {number} opacity + * @return {undefined} */ -google.maps.MapOptions.prototype.streetViewControlOptions; +google.maps.ImageMapType.prototype.setOpacity = function(opacity) {}; /** - * @type {Array.} + * @interface */ -google.maps.MapOptions.prototype.styles; +google.maps.ImageMapTypeOptions = function() {}; /** - * @type {number} + * @type {string} */ -google.maps.MapOptions.prototype.tilt; +google.maps.ImageMapTypeOptions.prototype.alt; /** * @type {number} */ -google.maps.MapOptions.prototype.zoom; +google.maps.ImageMapTypeOptions.prototype.maxZoom; /** - * @type {boolean} + * @type {number} */ -google.maps.MapOptions.prototype.zoomControl; +google.maps.ImageMapTypeOptions.prototype.minZoom; /** - * @type {(google.maps.ZoomControlOptions|Object.)} + * @type {string} */ -google.maps.MapOptions.prototype.zoomControlOptions; +google.maps.ImageMapTypeOptions.prototype.name; /** - * @constructor + * @type {number} */ -google.maps.MapPanes = function() {}; +google.maps.ImageMapTypeOptions.prototype.opacity; /** - * @type {Node} + * @type {google.maps.Size} */ -google.maps.MapPanes.prototype.floatPane; +google.maps.ImageMapTypeOptions.prototype.tileSize; /** - * @type {Node} + * @param {google.maps.Point} coordinate + * @param {number} zoom + * @return {string} */ -google.maps.MapPanes.prototype.floatShadow; +google.maps.ImageMapTypeOptions.prototype.getTileUrl = function(coordinate, zoom) {}; /** - * @type {Node} + * @param {(google.maps.InfoWindowOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.MapPanes.prototype.mapPane; +google.maps.InfoWindow = function(opt_opts) {}; /** - * @type {Node} + * @return {undefined} */ -google.maps.MapPanes.prototype.overlayImage; +google.maps.InfoWindow.prototype.close = function() {}; /** - * @type {Node} + * @nosideeffects + * @return {string|Node} */ -google.maps.MapPanes.prototype.overlayLayer; +google.maps.InfoWindow.prototype.getContent = function() {}; /** - * @type {Node} + * @nosideeffects + * @return {google.maps.LatLng} */ -google.maps.MapPanes.prototype.overlayMouseTarget; +google.maps.InfoWindow.prototype.getPosition = function() {}; /** - * @type {Node} + * @nosideeffects + * @return {number} */ -google.maps.MapPanes.prototype.overlayShadow; +google.maps.InfoWindow.prototype.getZIndex = function() {}; /** - * @constructor + * @param {(google.maps.Map|google.maps.StreetViewPanorama)=} opt_map + * @param {google.maps.MVCObject=} opt_anchor + * @return {undefined} */ -google.maps.MapType = function() {}; +google.maps.InfoWindow.prototype.open = function(opt_map, opt_anchor) {}; /** - * @type {string} + * @param {string|Node} content + * @return {undefined} */ -google.maps.MapType.prototype.alt; +google.maps.InfoWindow.prototype.setContent = function(content) {}; /** - * @param {google.maps.Point} tileCoord - * @param {number} zoom - * @param {Node} ownerDocument - * @return {Node} + * @param {google.maps.InfoWindowOptions|Object.} options + * @return {undefined} */ -google.maps.MapType.prototype.getTile = function(tileCoord, zoom, ownerDocument) {}; +google.maps.InfoWindow.prototype.setOptions = function(options) {}; /** - * @type {number} + * @param {google.maps.LatLng} position + * @return {undefined} */ -google.maps.MapType.prototype.maxZoom; +google.maps.InfoWindow.prototype.setPosition = function(position) {}; /** - * @type {number} + * @param {number} zIndex + * @return {undefined} */ -google.maps.MapType.prototype.minZoom; +google.maps.InfoWindow.prototype.setZIndex = function(zIndex) {}; /** - * @type {string} + * @interface */ -google.maps.MapType.prototype.name; +google.maps.InfoWindowOptions = function() {}; /** - * @type {?google.maps.Projection} + * @type {string|Node} */ -google.maps.MapType.prototype.projection; +google.maps.InfoWindowOptions.prototype.content; /** - * @type {number} + * @type {boolean} */ -google.maps.MapType.prototype.radius; +google.maps.InfoWindowOptions.prototype.disableAutoPan; /** - * @param {Node} tile - * @return {undefined} + * @type {number} */ -google.maps.MapType.prototype.releaseTile = function(tile) {}; +google.maps.InfoWindowOptions.prototype.maxWidth; /** * @type {google.maps.Size} */ -google.maps.MapType.prototype.tileSize; +google.maps.InfoWindowOptions.prototype.pixelOffset; /** - * @constructor + * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.MapTypeControlOptions = function() {}; +google.maps.InfoWindowOptions.prototype.position; /** - * @type {Array.|Array.} + * @type {number} */ -google.maps.MapTypeControlOptions.prototype.mapTypeIds; +google.maps.InfoWindowOptions.prototype.zIndex; /** - * @type {google.maps.ControlPosition} + * @constructor */ -google.maps.MapTypeControlOptions.prototype.position; +google.maps.KmlAuthor = function() {}; /** - * @type {google.maps.MapTypeControlStyle} + * @type {string} */ -google.maps.MapTypeControlOptions.prototype.style; +google.maps.KmlAuthor.prototype.email; /** - * @enum {string} + * @type {string} */ -google.maps.MapTypeControlStyle = { - DEFAULT: '', - HORIZONTAL_BAR: '', - DROPDOWN_MENU: '' -}; +google.maps.KmlAuthor.prototype.name; /** - * @enum {string} + * @type {string} */ -google.maps.MapTypeId = { - TERRAIN: '', - SATELLITE: '', - HYBRID: '', - ROADMAP: '' -}; +google.maps.KmlAuthor.prototype.uri; /** - * @extends {google.maps.MVCObject} * @constructor */ -google.maps.MapTypeRegistry = function() {}; +google.maps.KmlFeatureData = function() {}; /** - * @param {string} id - * @param {google.maps.MapType} mapType - * @return {undefined} + * @type {google.maps.KmlAuthor} */ -google.maps.MapTypeRegistry.prototype.set = function(id, mapType) {}; +google.maps.KmlFeatureData.prototype.author; /** - * @constructor + * @type {string} */ -google.maps.MapTypeStyle = function() {}; +google.maps.KmlFeatureData.prototype.description; /** - * @type {google.maps.MapTypeStyleElementType} + * @type {string} */ -google.maps.MapTypeStyle.prototype.elementType; +google.maps.KmlFeatureData.prototype.id; /** - * @type {google.maps.MapTypeStyleFeatureType} + * @type {string} */ -google.maps.MapTypeStyle.prototype.featureType; +google.maps.KmlFeatureData.prototype.infoWindowHtml; /** - * @type {Array.} + * @type {string} */ -google.maps.MapTypeStyle.prototype.stylers; +google.maps.KmlFeatureData.prototype.name; /** - * @enum {string} + * @type {string} */ -google.maps.MapTypeStyleElementType = { - -}; +google.maps.KmlFeatureData.prototype.snippet; /** - * @enum {string} + * @param {(google.maps.KmlLayerOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.MapTypeStyleFeatureType = { - -}; +google.maps.KmlLayer = function(opt_opts) {}; /** - * @constructor + * @nosideeffects + * @return {google.maps.LatLngBounds} */ -google.maps.MapTypeStyler = function() {}; +google.maps.KmlLayer.prototype.getDefaultViewport = function() {}; /** - * @type {number} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.MapTypeStyler.prototype.gamma; +google.maps.KmlLayer.prototype.getMap = function() {}; /** - * @type {string} + * @nosideeffects + * @return {google.maps.KmlLayerMetadata} */ -google.maps.MapTypeStyler.prototype.hue; +google.maps.KmlLayer.prototype.getMetadata = function() {}; /** - * @type {boolean} + * @nosideeffects + * @return {google.maps.KmlLayerStatus} */ -google.maps.MapTypeStyler.prototype.invert_lightness; +google.maps.KmlLayer.prototype.getStatus = function() {}; /** - * @type {number} + * @nosideeffects + * @return {string} */ -google.maps.MapTypeStyler.prototype.lightness; +google.maps.KmlLayer.prototype.getUrl = function() {}; /** - * @type {number} + * @nosideeffects + * @return {number} */ -google.maps.MapTypeStyler.prototype.saturation; +google.maps.KmlLayer.prototype.getZIndex = function() {}; /** - * @type {string} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.MapTypeStyler.prototype.visibility; +google.maps.KmlLayer.prototype.setMap = function(map) {}; /** - * @constructor + * @param {string} url + * @return {undefined} */ -google.maps.MapsEventListener = function() {}; +google.maps.KmlLayer.prototype.setUrl = function(url) {}; /** - * @param {(google.maps.MarkerOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @param {number} zIndex + * @return {undefined} */ -google.maps.Marker = function(opt_opts) {}; +google.maps.KmlLayer.prototype.setZIndex = function(zIndex) {}; /** - * @constant - * @type {number|string} + * @constructor */ -google.maps.Marker.MAX_ZINDEX; +google.maps.KmlLayerMetadata = function() {}; /** - * @nosideeffects - * @return {?google.maps.Animation} + * @type {google.maps.KmlAuthor} */ -google.maps.Marker.prototype.getAnimation = function() {}; +google.maps.KmlLayerMetadata.prototype.author; /** - * @nosideeffects - * @return {boolean} + * @type {string} */ -google.maps.Marker.prototype.getClickable = function() {}; +google.maps.KmlLayerMetadata.prototype.description; /** - * @nosideeffects - * @return {string} + * @type {boolean} */ -google.maps.Marker.prototype.getCursor = function() {}; +google.maps.KmlLayerMetadata.prototype.hasScreenOverlays; /** - * @nosideeffects - * @return {boolean} + * @type {string} */ -google.maps.Marker.prototype.getDraggable = function() {}; +google.maps.KmlLayerMetadata.prototype.name; /** - * @nosideeffects - * @return {boolean} + * @type {string} */ -google.maps.Marker.prototype.getFlat = function() {}; +google.maps.KmlLayerMetadata.prototype.snippet; /** - * @nosideeffects - * @return {string|google.maps.MarkerImage} + * @interface */ -google.maps.Marker.prototype.getIcon = function() {}; +google.maps.KmlLayerOptions = function() {}; /** - * @nosideeffects - * @return {google.maps.Map|google.maps.StreetViewPanorama} + * @type {boolean} */ -google.maps.Marker.prototype.getMap = function() {}; +google.maps.KmlLayerOptions.prototype.clickable; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @type {google.maps.Map} */ -google.maps.Marker.prototype.getPosition = function() {}; +google.maps.KmlLayerOptions.prototype.map; /** - * @nosideeffects - * @return {string|google.maps.MarkerImage} + * @type {boolean} */ -google.maps.Marker.prototype.getShadow = function() {}; +google.maps.KmlLayerOptions.prototype.preserveViewport; /** - * @nosideeffects - * @return {google.maps.MarkerShape} + * @type {boolean} */ -google.maps.Marker.prototype.getShape = function() {}; +google.maps.KmlLayerOptions.prototype.screenOverlays; /** - * @nosideeffects - * @return {string} + * @type {boolean} */ -google.maps.Marker.prototype.getTitle = function() {}; +google.maps.KmlLayerOptions.prototype.suppressInfoWindows; /** - * @nosideeffects - * @return {boolean} + * @type {string} */ -google.maps.Marker.prototype.getVisible = function() {}; +google.maps.KmlLayerOptions.prototype.url; /** - * @nosideeffects - * @return {number} + * @type {number} */ -google.maps.Marker.prototype.getZIndex = function() {}; +google.maps.KmlLayerOptions.prototype.zIndex; /** - * @param {?google.maps.Animation} animation - * @return {undefined} + * @enum {number|string} */ -google.maps.Marker.prototype.setAnimation = function(animation) {}; +google.maps.KmlLayerStatus = { + DOCUMENT_NOT_FOUND: '', + DOCUMENT_TOO_LARGE: '', + FETCH_ERROR: '', + INVALID_DOCUMENT: '', + INVALID_REQUEST: '', + LIMITS_EXCEEDED: '', + OK: '', + TIMED_OUT: '', + UNKNOWN: '' +}; /** - * @param {boolean} flag - * @return {undefined} + * @constructor */ -google.maps.Marker.prototype.setClickable = function(flag) {}; +google.maps.KmlMouseEvent = function() {}; /** - * @param {string} cursor - * @return {undefined} + * @type {google.maps.KmlFeatureData} */ -google.maps.Marker.prototype.setCursor = function(cursor) {}; +google.maps.KmlMouseEvent.prototype.featureData; /** - * @param {boolean} flag - * @return {undefined} + * @type {google.maps.LatLng} */ -google.maps.Marker.prototype.setDraggable = function(flag) {}; +google.maps.KmlMouseEvent.prototype.latLng; + +/** + * @type {google.maps.Size} + */ +google.maps.KmlMouseEvent.prototype.pixelOffset; + +/** + * @param {number} lat + * @param {number} lng + * @param {boolean=} opt_noWrap + * @constructor + */ +google.maps.LatLng = function(lat, lng, opt_noWrap) {}; + +/** + * @param {google.maps.LatLng} other + * @return {boolean} + */ +google.maps.LatLng.prototype.equals = function(other) {}; + +/** + * @return {number} + */ +google.maps.LatLng.prototype.lat = function() {}; + +/** + * @return {number} + */ +google.maps.LatLng.prototype.lng = function() {}; + +/** + * @return {string} + */ +google.maps.LatLng.prototype.toString = function() {}; + +/** + * @param {number=} opt_precision + * @return {string} + */ +google.maps.LatLng.prototype.toUrlValue = function(opt_precision) {}; + +/** + * @param {google.maps.LatLng=} opt_sw + * @param {google.maps.LatLng=} opt_ne + * @constructor + */ +google.maps.LatLngBounds = function(opt_sw, opt_ne) {}; + +/** + * @param {google.maps.LatLng} latLng + * @return {boolean} + */ +google.maps.LatLngBounds.prototype.contains = function(latLng) {}; + +/** + * @param {google.maps.LatLngBounds} other + * @return {boolean} + */ +google.maps.LatLngBounds.prototype.equals = function(other) {}; + +/** + * @param {google.maps.LatLng} point + * @return {google.maps.LatLngBounds} + */ +google.maps.LatLngBounds.prototype.extend = function(point) {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.LatLngBounds.prototype.getCenter = function() {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.LatLngBounds.prototype.getNorthEast = function() {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.LatLngBounds.prototype.getSouthWest = function() {}; + +/** + * @param {google.maps.LatLngBounds} other + * @return {boolean} + */ +google.maps.LatLngBounds.prototype.intersects = function(other) {}; + +/** + * @return {boolean} + */ +google.maps.LatLngBounds.prototype.isEmpty = function() {}; + +/** + * @return {google.maps.LatLng} + */ +google.maps.LatLngBounds.prototype.toSpan = function() {}; + +/** + * @return {string} + */ +google.maps.LatLngBounds.prototype.toString = function() {}; + +/** + * @param {number=} opt_precision + * @return {string} + */ +google.maps.LatLngBounds.prototype.toUrlValue = function(opt_precision) {}; + +/** + * @param {google.maps.LatLngBounds} other + * @return {google.maps.LatLngBounds} + */ +google.maps.LatLngBounds.prototype.union = function(other) {}; + +/** + * @interface + */ +google.maps.LatLngLiteral = function() {}; + +/** + * @type {number} + */ +google.maps.LatLngLiteral.prototype.lat; + +/** + * @type {number} + */ +google.maps.LatLngLiteral.prototype.lng; + +/** + * @interface + */ +google.maps.LocationElevationRequest = function() {}; + +/** + * @type {Array} + */ +google.maps.LocationElevationRequest.prototype.locations; + +/** + * @param {Array=} opt_array + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.MVCArray = function(opt_array) {}; + +/** + * @return {undefined} + */ +google.maps.MVCArray.prototype.clear = function() {}; + +/** + * @param {function(?, number)} callback + * @return {undefined} + */ +google.maps.MVCArray.prototype.forEach = function(callback) {}; + +/** + * @nosideeffects + * @return {Array} + */ +google.maps.MVCArray.prototype.getArray = function() {}; + +/** + * @param {number} i + * @return {?} + */ +google.maps.MVCArray.prototype.getAt = function(i) {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.MVCArray.prototype.getLength = function() {}; + +/** + * @param {number} i + * @param {?} elem + * @return {undefined} + */ +google.maps.MVCArray.prototype.insertAt = function(i, elem) {}; + +/** + * @return {?} + */ +google.maps.MVCArray.prototype.pop = function() {}; + +/** + * @param {?} elem + * @return {number} + */ +google.maps.MVCArray.prototype.push = function(elem) {}; + +/** + * @param {number} i + * @return {?} + */ +google.maps.MVCArray.prototype.removeAt = function(i) {}; + +/** + * @param {number} i + * @param {?} elem + * @return {undefined} + */ +google.maps.MVCArray.prototype.setAt = function(i, elem) {}; + +/** + * @constructor + */ +google.maps.MVCObject = function() {}; + +/** + * @param {string} eventName + * @param {!Function} handler + * @return {google.maps.MapsEventListener} + */ +google.maps.MVCObject.prototype.addListener = function(eventName, handler) {}; + +/** + * @param {string} key + * @param {google.maps.MVCObject} target + * @param {?string=} opt_targetKey + * @param {boolean=} opt_noNotify + * @return {undefined} + */ +google.maps.MVCObject.prototype.bindTo = function(key, target, opt_targetKey, opt_noNotify) {}; + +/** + * @param {string} key + * @return {undefined} + */ +google.maps.MVCObject.prototype.changed = function(key) {}; + +/** + * @param {string} key + * @return {?} + */ +google.maps.MVCObject.prototype.get = function(key) {}; + +/** + * @param {string} key + * @return {undefined} + */ +google.maps.MVCObject.prototype.notify = function(key) {}; + +/** + * @param {string} key + * @param {?} value + * @return {undefined} + */ +google.maps.MVCObject.prototype.set = function(key, value) {}; + +/** + * @param {Object|undefined} values + * @return {undefined} + */ +google.maps.MVCObject.prototype.setValues = function(values) {}; + +/** + * @param {string} key + * @return {undefined} + */ +google.maps.MVCObject.prototype.unbind = function(key) {}; + +/** + * @return {undefined} + */ +google.maps.MVCObject.prototype.unbindAll = function() {}; + +/** + * @param {Node} mapDiv + * @param {(google.maps.MapOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.Map = function(mapDiv, opt_opts) {}; + +/** + * @type {Array>} + */ +google.maps.Map.prototype.controls; + +/** + * @type {google.maps.Data} + */ +google.maps.Map.prototype.data; + +/** + * @type {google.maps.MapTypeRegistry} + */ +google.maps.Map.prototype.mapTypes; + +/** + * @type {google.maps.MVCArray} + */ +google.maps.Map.prototype.overlayMapTypes; + +/** + * @param {google.maps.LatLngBounds} bounds + * @return {undefined} + */ +google.maps.Map.prototype.fitBounds = function(bounds) {}; + +/** + * @nosideeffects + * @return {google.maps.LatLngBounds} + */ +google.maps.Map.prototype.getBounds = function() {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.Map.prototype.getCenter = function() {}; + +/** + * @nosideeffects + * @return {Node} + */ +google.maps.Map.prototype.getDiv = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.Map.prototype.getHeading = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MapTypeId|string} + */ +google.maps.Map.prototype.getMapTypeId = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Projection} + */ +google.maps.Map.prototype.getProjection = function() {}; + +/** + * @nosideeffects + * @return {google.maps.StreetViewPanorama} + */ +google.maps.Map.prototype.getStreetView = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.Map.prototype.getTilt = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.Map.prototype.getZoom = function() {}; + +/** + * @param {number} x + * @param {number} y + * @return {undefined} + */ +google.maps.Map.prototype.panBy = function(x, y) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latLng + * @return {undefined} + */ +google.maps.Map.prototype.panTo = function(latLng) {}; + +/** + * @param {google.maps.LatLngBounds} latLngBounds + * @return {undefined} + */ +google.maps.Map.prototype.panToBounds = function(latLngBounds) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latlng + * @return {undefined} + */ +google.maps.Map.prototype.setCenter = function(latlng) {}; + +/** + * @param {number} heading + * @return {undefined} + */ +google.maps.Map.prototype.setHeading = function(heading) {}; + +/** + * @param {google.maps.MapTypeId|string} mapTypeId + * @return {undefined} + */ +google.maps.Map.prototype.setMapTypeId = function(mapTypeId) {}; + +/** + * @param {google.maps.MapOptions|Object.} options + * @return {undefined} + */ +google.maps.Map.prototype.setOptions = function(options) {}; + +/** + * @param {google.maps.StreetViewPanorama} panorama + * @return {undefined} + */ +google.maps.Map.prototype.setStreetView = function(panorama) {}; + +/** + * @param {number} tilt + * @return {undefined} + */ +google.maps.Map.prototype.setTilt = function(tilt) {}; + +/** + * @param {number} zoom + * @return {undefined} + */ +google.maps.Map.prototype.setZoom = function(zoom) {}; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.MapCanvasProjection = function() {}; + +/** + * @param {google.maps.Point} pixel + * @param {boolean=} opt_nowrap + * @return {google.maps.LatLng} + */ +google.maps.MapCanvasProjection.prototype.fromContainerPixelToLatLng = function(pixel, opt_nowrap) {}; + +/** + * @param {google.maps.Point} pixel + * @param {boolean=} opt_nowrap + * @return {google.maps.LatLng} + */ +google.maps.MapCanvasProjection.prototype.fromDivPixelToLatLng = function(pixel, opt_nowrap) {}; + +/** + * @param {google.maps.LatLng} latLng + * @return {google.maps.Point} + */ +google.maps.MapCanvasProjection.prototype.fromLatLngToContainerPixel = function(latLng) {}; + +/** + * @param {google.maps.LatLng} latLng + * @return {google.maps.Point} + */ +google.maps.MapCanvasProjection.prototype.fromLatLngToDivPixel = function(latLng) {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.MapCanvasProjection.prototype.getWorldWidth = function() {}; + +/** + * @interface + */ +google.maps.MapOptions = function() {}; + +/** + * @type {string} + */ +google.maps.MapOptions.prototype.backgroundColor; + +/** + * @type {google.maps.LatLng} + */ +google.maps.MapOptions.prototype.center; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.disableDefaultUI; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.disableDoubleClickZoom; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.draggable; + +/** + * @type {string} + */ +google.maps.MapOptions.prototype.draggableCursor; + +/** + * @type {string} + */ +google.maps.MapOptions.prototype.draggingCursor; + +/** + * @type {number} + */ +google.maps.MapOptions.prototype.heading; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.keyboardShortcuts; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.mapMaker; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.mapTypeControl; + +/** + * @type {google.maps.MapTypeControlOptions|Object.} + */ +google.maps.MapOptions.prototype.mapTypeControlOptions; + +/** + * @type {google.maps.MapTypeId} + */ +google.maps.MapOptions.prototype.mapTypeId; + +/** + * @type {number} + */ +google.maps.MapOptions.prototype.maxZoom; + +/** + * @type {number} + */ +google.maps.MapOptions.prototype.minZoom; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.noClear; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.overviewMapControl; + +/** + * @type {google.maps.OverviewMapControlOptions|Object.} + */ +google.maps.MapOptions.prototype.overviewMapControlOptions; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.panControl; + +/** + * @type {google.maps.PanControlOptions|Object.} + */ +google.maps.MapOptions.prototype.panControlOptions; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.rotateControl; + +/** + * @type {google.maps.RotateControlOptions|Object.} + */ +google.maps.MapOptions.prototype.rotateControlOptions; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.scaleControl; + +/** + * @type {google.maps.ScaleControlOptions|Object.} + */ +google.maps.MapOptions.prototype.scaleControlOptions; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.scrollwheel; + +/** + * @type {google.maps.StreetViewPanorama} + */ +google.maps.MapOptions.prototype.streetView; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.streetViewControl; + +/** + * @type {google.maps.StreetViewControlOptions|Object.} + */ +google.maps.MapOptions.prototype.streetViewControlOptions; + +/** + * @type {Array} + */ +google.maps.MapOptions.prototype.styles; + +/** + * @type {number} + */ +google.maps.MapOptions.prototype.tilt; + +/** + * @type {number} + */ +google.maps.MapOptions.prototype.zoom; + +/** + * @type {boolean} + */ +google.maps.MapOptions.prototype.zoomControl; + +/** + * @type {google.maps.ZoomControlOptions|Object.} + */ +google.maps.MapOptions.prototype.zoomControlOptions; + +/** + * @constructor + */ +google.maps.MapPanes = function() {}; + +/** + * @type {Node} + */ +google.maps.MapPanes.prototype.floatPane; + +/** + * @type {Node} + */ +google.maps.MapPanes.prototype.mapPane; + +/** + * @type {Node} + */ +google.maps.MapPanes.prototype.markerLayer; + +/** + * @type {Node} + */ +google.maps.MapPanes.prototype.overlayLayer; + +/** + * @type {Node} + */ +google.maps.MapPanes.prototype.overlayMouseTarget; + +/** + * @interface + */ +google.maps.MapType = function() {}; + +/** + * @type {string} + */ +google.maps.MapType.prototype.alt; + +/** + * @type {number} + */ +google.maps.MapType.prototype.maxZoom; + +/** + * @type {number} + */ +google.maps.MapType.prototype.minZoom; + +/** + * @type {string} + */ +google.maps.MapType.prototype.name; + +/** + * @type {google.maps.Projection} + */ +google.maps.MapType.prototype.projection; + +/** + * @type {number} + */ +google.maps.MapType.prototype.radius; + +/** + * @type {google.maps.Size} + */ +google.maps.MapType.prototype.tileSize; + +/** + * @param {google.maps.Point} tileCoord + * @param {number} zoom + * @param {Document} ownerDocument + * @return {Node} + */ +google.maps.MapType.prototype.getTile = function(tileCoord, zoom, ownerDocument) {}; + +/** + * @param {Node} tile + * @return {undefined} + */ +google.maps.MapType.prototype.releaseTile = function(tile) {}; + +/** + * @interface + */ +google.maps.MapTypeControlOptions = function() {}; + +/** + * @type {Array|Array} + */ +google.maps.MapTypeControlOptions.prototype.mapTypeIds; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.MapTypeControlOptions.prototype.position; + +/** + * @type {google.maps.MapTypeControlStyle} + */ +google.maps.MapTypeControlOptions.prototype.style; + +/** + * @enum {number|string} + */ +google.maps.MapTypeControlStyle = { + DEFAULT: '', + DROPDOWN_MENU: '', + HORIZONTAL_BAR: '' +}; + +/** + * @enum {number|string} + */ +google.maps.MapTypeId = { + HYBRID: '', + ROADMAP: '', + SATELLITE: '', + TERRAIN: '' +}; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.MapTypeRegistry = function() {}; + +/** + * @param {string} id + * @param {google.maps.MapType|undefined} mapType + * @return {undefined} + * @override + */ +google.maps.MapTypeRegistry.prototype.set = function(id, mapType) {}; + +/** + * @interface + */ +google.maps.MapTypeStyle = function() {}; + +/** + * @type {string} + */ +google.maps.MapTypeStyle.prototype.elementType; + +/** + * @type {string} + */ +google.maps.MapTypeStyle.prototype.featureType; + +/** + * @type {Array} + */ +google.maps.MapTypeStyle.prototype.stylers; + +/** + * @interface + */ +google.maps.MapTypeStyler = function() {}; + +/** + * @type {string} + */ +google.maps.MapTypeStyler.prototype.color; + +/** + * @type {number} + */ +google.maps.MapTypeStyler.prototype.gamma; + +/** + * @type {string} + */ +google.maps.MapTypeStyler.prototype.hue; + +/** + * @type {boolean} + */ +google.maps.MapTypeStyler.prototype.invert_lightness; + +/** + * @type {number} + */ +google.maps.MapTypeStyler.prototype.lightness; + +/** + * @type {number} + */ +google.maps.MapTypeStyler.prototype.saturation; + +/** + * @type {string} + */ +google.maps.MapTypeStyler.prototype.visibility; + +/** + * @type {number} + */ +google.maps.MapTypeStyler.prototype.weight; + +/** + * @constructor + */ +google.maps.MapsEventListener = function() {}; + +/** + * @param {(google.maps.MarkerOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.Marker = function(opt_opts) {}; + +/** + * @nosideeffects + * @return {?google.maps.Animation} + */ +google.maps.Marker.prototype.getAnimation = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Attribution} + */ +google.maps.Marker.prototype.getAttribution = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Marker.prototype.getClickable = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.Marker.prototype.getCursor = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Marker.prototype.getDraggable = function() {}; + +/** + * @nosideeffects + * @return {string|google.maps.Icon|google.maps.Symbol} + */ +google.maps.Marker.prototype.getIcon = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map|google.maps.StreetViewPanorama} + */ +google.maps.Marker.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.Marker.prototype.getOpacity = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Place} + */ +google.maps.Marker.prototype.getPlace = function() {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.Marker.prototype.getPosition = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MarkerShape} + */ +google.maps.Marker.prototype.getShape = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.Marker.prototype.getTitle = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Marker.prototype.getVisible = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.Marker.prototype.getZIndex = function() {}; + +/** + * @param {?google.maps.Animation} animation + * @return {undefined} + */ +google.maps.Marker.prototype.setAnimation = function(animation) {}; + +/** + * @param {google.maps.Attribution} attribution + * @return {undefined} + */ +google.maps.Marker.prototype.setAttribution = function(attribution) {}; + +/** + * @param {boolean} flag + * @return {undefined} + */ +google.maps.Marker.prototype.setClickable = function(flag) {}; + +/** + * @param {string} cursor + * @return {undefined} + */ +google.maps.Marker.prototype.setCursor = function(cursor) {}; + +/** + * @param {?boolean} flag + * @return {undefined} + */ +google.maps.Marker.prototype.setDraggable = function(flag) {}; + +/** + * @param {string|google.maps.Icon|google.maps.Symbol} icon + * @return {undefined} + */ +google.maps.Marker.prototype.setIcon = function(icon) {}; + +/** + * @param {google.maps.Map|google.maps.StreetViewPanorama} map + * @return {undefined} + */ +google.maps.Marker.prototype.setMap = function(map) {}; + +/** + * @param {number} opacity + * @return {undefined} + */ +google.maps.Marker.prototype.setOpacity = function(opacity) {}; + +/** + * @param {google.maps.MarkerOptions|Object.} options + * @return {undefined} + */ +google.maps.Marker.prototype.setOptions = function(options) {}; + +/** + * @param {google.maps.Place} place + * @return {undefined} + */ +google.maps.Marker.prototype.setPlace = function(place) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latlng + * @return {undefined} + */ +google.maps.Marker.prototype.setPosition = function(latlng) {}; + +/** + * @param {google.maps.MarkerShape} shape + * @return {undefined} + */ +google.maps.Marker.prototype.setShape = function(shape) {}; + +/** + * @param {string} title + * @return {undefined} + */ +google.maps.Marker.prototype.setTitle = function(title) {}; + +/** + * @param {boolean} visible + * @return {undefined} + */ +google.maps.Marker.prototype.setVisible = function(visible) {}; + +/** + * @param {number} zIndex + * @return {undefined} + */ +google.maps.Marker.prototype.setZIndex = function(zIndex) {}; + +/** + * @constant + * @type {number|string} + */ +google.maps.Marker.MAX_ZINDEX; + +/** + * @interface + */ +google.maps.MarkerOptions = function() {}; + +/** + * @type {google.maps.Point} + */ +google.maps.MarkerOptions.prototype.anchorPoint; + +/** + * @type {google.maps.Animation} + */ +google.maps.MarkerOptions.prototype.animation; + +/** + * @type {google.maps.Attribution} + */ +google.maps.MarkerOptions.prototype.attribution; + +/** + * @type {boolean} + */ +google.maps.MarkerOptions.prototype.clickable; + +/** + * @type {boolean} + */ +google.maps.MarkerOptions.prototype.crossOnDrag; + +/** + * @type {string} + */ +google.maps.MarkerOptions.prototype.cursor; + +/** + * @type {boolean} + */ +google.maps.MarkerOptions.prototype.draggable; + +/** + * @type {string|google.maps.Icon|google.maps.Symbol} + */ +google.maps.MarkerOptions.prototype.icon; + +/** + * @type {google.maps.Map|google.maps.StreetViewPanorama} + */ +google.maps.MarkerOptions.prototype.map; + +/** + * @type {number} + */ +google.maps.MarkerOptions.prototype.opacity; + +/** + * @type {boolean} + */ +google.maps.MarkerOptions.prototype.optimized; + +/** + * @type {google.maps.Place} + */ +google.maps.MarkerOptions.prototype.place; + +/** + * @type {google.maps.LatLng} + */ +google.maps.MarkerOptions.prototype.position; + +/** + * @type {google.maps.MarkerShape} + */ +google.maps.MarkerOptions.prototype.shape; + +/** + * @type {string} + */ +google.maps.MarkerOptions.prototype.title; + +/** + * @type {boolean} + */ +google.maps.MarkerOptions.prototype.visible; + +/** + * @type {number} + */ +google.maps.MarkerOptions.prototype.zIndex; + +/** + * @interface + */ +google.maps.MarkerShape = function() {}; + +/** + * @type {Array} + */ +google.maps.MarkerShape.prototype.coords; + +/** + * @type {string} + */ +google.maps.MarkerShape.prototype.type; + +/** + * @interface + */ +google.maps.MaxZoomResult = function() {}; + +/** + * @type {google.maps.MaxZoomStatus} + */ +google.maps.MaxZoomResult.prototype.status; + +/** + * @type {number} + */ +google.maps.MaxZoomResult.prototype.zoom; + +/** + * @constructor + */ +google.maps.MaxZoomService = function() {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latlng + * @param {function(google.maps.MaxZoomResult)} callback + * @return {undefined} + */ +google.maps.MaxZoomService.prototype.getMaxZoomAtLatLng = function(latlng, callback) {}; + +/** + * @enum {number|string} + */ +google.maps.MaxZoomStatus = { + ERROR: '', + OK: '' +}; + +/** + * @constructor + */ +google.maps.MouseEvent = function() {}; + +/** + * @type {google.maps.LatLng} + */ +google.maps.MouseEvent.prototype.latLng; + +/** + * @return {undefined} + */ +google.maps.MouseEvent.prototype.stop = function() {}; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.OverlayView = function() {}; + +/** + * @return {undefined} + */ +google.maps.OverlayView.prototype.draw = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map|google.maps.StreetViewPanorama} + */ +google.maps.OverlayView.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MapPanes} + */ +google.maps.OverlayView.prototype.getPanes = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MapCanvasProjection} + */ +google.maps.OverlayView.prototype.getProjection = function() {}; + +/** + * @return {undefined} + */ +google.maps.OverlayView.prototype.onAdd = function() {}; + +/** + * @return {undefined} + */ +google.maps.OverlayView.prototype.onRemove = function() {}; + +/** + * @param {google.maps.Map|google.maps.StreetViewPanorama} map + * @return {undefined} + */ +google.maps.OverlayView.prototype.setMap = function(map) {}; + +/** + * @interface + */ +google.maps.OverviewMapControlOptions = function() {}; + +/** + * @type {boolean} + */ +google.maps.OverviewMapControlOptions.prototype.opened; + +/** + * @interface + */ +google.maps.PanControlOptions = function() {}; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.PanControlOptions.prototype.position; + +/** + * @interface + */ +google.maps.PathElevationRequest = function() {}; + +/** + * @type {Array} + */ +google.maps.PathElevationRequest.prototype.path; + +/** + * @type {number} + */ +google.maps.PathElevationRequest.prototype.samples; + +/** + * @interface + */ +google.maps.Place = function() {}; + +/** + * @type {google.maps.LatLng|google.maps.LatLngLiteral} + */ +google.maps.Place.prototype.location; + +/** + * @type {string} + */ +google.maps.Place.prototype.placeId; + +/** + * @type {string} + */ +google.maps.Place.prototype.query; + +/** + * @param {number} x + * @param {number} y + * @constructor + */ +google.maps.Point = function(x, y) {}; + +/** + * @type {number} + */ +google.maps.Point.prototype.x; + +/** + * @type {number} + */ +google.maps.Point.prototype.y; + +/** + * @param {google.maps.Point} other + * @return {boolean} + */ +google.maps.Point.prototype.equals = function(other) {}; + +/** + * @return {string} + */ +google.maps.Point.prototype.toString = function() {}; + +/** + * @extends {google.maps.MouseEvent} + * @constructor + */ +google.maps.PolyMouseEvent = function() {}; + +/** + * @type {number} + */ +google.maps.PolyMouseEvent.prototype.edge; + +/** + * @type {number} + */ +google.maps.PolyMouseEvent.prototype.path; + +/** + * @type {number} + */ +google.maps.PolyMouseEvent.prototype.vertex; + +/** + * @param {(google.maps.PolygonOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.Polygon = function(opt_opts) {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polygon.prototype.getDraggable = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polygon.prototype.getEditable = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.Polygon.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MVCArray} + */ +google.maps.Polygon.prototype.getPath = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MVCArray>} + */ +google.maps.Polygon.prototype.getPaths = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polygon.prototype.getVisible = function() {}; + +/** + * @param {boolean} draggable + * @return {undefined} + */ +google.maps.Polygon.prototype.setDraggable = function(draggable) {}; + +/** + * @param {boolean} editable + * @return {undefined} + */ +google.maps.Polygon.prototype.setEditable = function(editable) {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.Polygon.prototype.setMap = function(map) {}; + +/** + * @param {google.maps.PolygonOptions|Object.} options + * @return {undefined} + */ +google.maps.Polygon.prototype.setOptions = function(options) {}; + +/** + * @param {google.maps.MVCArray|Array} path + * @return {undefined} + */ +google.maps.Polygon.prototype.setPath = function(path) {}; + +/** + * @param {google.maps.MVCArray>|google.maps.MVCArray|Array>|Array} paths + * @return {undefined} + */ +google.maps.Polygon.prototype.setPaths = function(paths) {}; + +/** + * @param {boolean} visible + * @return {undefined} + */ +google.maps.Polygon.prototype.setVisible = function(visible) {}; + +/** + * @interface + */ +google.maps.PolygonOptions = function() {}; + +/** + * @type {boolean} + */ +google.maps.PolygonOptions.prototype.clickable; + +/** + * @type {boolean} + */ +google.maps.PolygonOptions.prototype.draggable; + +/** + * @type {boolean} + */ +google.maps.PolygonOptions.prototype.editable; + +/** + * @type {string} + */ +google.maps.PolygonOptions.prototype.fillColor; + +/** + * @type {number} + */ +google.maps.PolygonOptions.prototype.fillOpacity; + +/** + * @type {boolean} + */ +google.maps.PolygonOptions.prototype.geodesic; + +/** + * @type {google.maps.Map} + */ +google.maps.PolygonOptions.prototype.map; + +/** + * @type {google.maps.MVCArray>|google.maps.MVCArray|Array>|Array} + */ +google.maps.PolygonOptions.prototype.paths; + +/** + * @type {string} + */ +google.maps.PolygonOptions.prototype.strokeColor; + +/** + * @type {number} + */ +google.maps.PolygonOptions.prototype.strokeOpacity; + +/** + * @type {google.maps.StrokePosition} + */ +google.maps.PolygonOptions.prototype.strokePosition; + +/** + * @type {number} + */ +google.maps.PolygonOptions.prototype.strokeWeight; + +/** + * @type {boolean} + */ +google.maps.PolygonOptions.prototype.visible; + +/** + * @type {number} + */ +google.maps.PolygonOptions.prototype.zIndex; + +/** + * @param {(google.maps.PolylineOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.Polyline = function(opt_opts) {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polyline.prototype.getDraggable = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polyline.prototype.getEditable = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.Polyline.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {google.maps.MVCArray} + */ +google.maps.Polyline.prototype.getPath = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Polyline.prototype.getVisible = function() {}; + +/** + * @param {boolean} draggable + * @return {undefined} + */ +google.maps.Polyline.prototype.setDraggable = function(draggable) {}; + +/** + * @param {boolean} editable + * @return {undefined} + */ +google.maps.Polyline.prototype.setEditable = function(editable) {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.Polyline.prototype.setMap = function(map) {}; + +/** + * @param {google.maps.PolylineOptions|Object.} options + * @return {undefined} + */ +google.maps.Polyline.prototype.setOptions = function(options) {}; + +/** + * @param {google.maps.MVCArray|Array} path + * @return {undefined} + */ +google.maps.Polyline.prototype.setPath = function(path) {}; + +/** + * @param {boolean} visible + * @return {undefined} + */ +google.maps.Polyline.prototype.setVisible = function(visible) {}; + +/** + * @interface + */ +google.maps.PolylineOptions = function() {}; + +/** + * @type {boolean} + */ +google.maps.PolylineOptions.prototype.clickable; + +/** + * @type {boolean} + */ +google.maps.PolylineOptions.prototype.draggable; + +/** + * @type {boolean} + */ +google.maps.PolylineOptions.prototype.editable; + +/** + * @type {boolean} + */ +google.maps.PolylineOptions.prototype.geodesic; + +/** + * @type {Array} + */ +google.maps.PolylineOptions.prototype.icons; + +/** + * @type {google.maps.Map} + */ +google.maps.PolylineOptions.prototype.map; + +/** + * @type {google.maps.MVCArray|Array} + */ +google.maps.PolylineOptions.prototype.path; + +/** + * @type {string} + */ +google.maps.PolylineOptions.prototype.strokeColor; + +/** + * @type {number} + */ +google.maps.PolylineOptions.prototype.strokeOpacity; + +/** + * @type {number} + */ +google.maps.PolylineOptions.prototype.strokeWeight; + +/** + * @type {boolean} + */ +google.maps.PolylineOptions.prototype.visible; + +/** + * @type {number} + */ +google.maps.PolylineOptions.prototype.zIndex; + +/** + * @interface + */ +google.maps.Projection = function() {}; + +/** + * @param {google.maps.LatLng} latLng + * @param {google.maps.Point=} opt_point + * @return {google.maps.Point} + */ +google.maps.Projection.prototype.fromLatLngToPoint = function(latLng, opt_point) {}; + +/** + * @param {google.maps.Point} pixel + * @param {boolean=} opt_nowrap + * @return {google.maps.LatLng} + */ +google.maps.Projection.prototype.fromPointToLatLng = function(pixel, opt_nowrap) {}; + +/** + * @param {(google.maps.RectangleOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.Rectangle = function(opt_opts) {}; + +/** + * @nosideeffects + * @return {google.maps.LatLngBounds} + */ +google.maps.Rectangle.prototype.getBounds = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Rectangle.prototype.getDraggable = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Rectangle.prototype.getEditable = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.Rectangle.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.Rectangle.prototype.getVisible = function() {}; + +/** + * @param {google.maps.LatLngBounds} bounds + * @return {undefined} + */ +google.maps.Rectangle.prototype.setBounds = function(bounds) {}; + +/** + * @param {boolean} draggable + * @return {undefined} + */ +google.maps.Rectangle.prototype.setDraggable = function(draggable) {}; + +/** + * @param {boolean} editable + * @return {undefined} + */ +google.maps.Rectangle.prototype.setEditable = function(editable) {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.Rectangle.prototype.setMap = function(map) {}; + +/** + * @param {google.maps.RectangleOptions|Object.} options + * @return {undefined} + */ +google.maps.Rectangle.prototype.setOptions = function(options) {}; + +/** + * @param {boolean} visible + * @return {undefined} + */ +google.maps.Rectangle.prototype.setVisible = function(visible) {}; + +/** + * @interface + */ +google.maps.RectangleOptions = function() {}; + +/** + * @type {google.maps.LatLngBounds} + */ +google.maps.RectangleOptions.prototype.bounds; + +/** + * @type {boolean} + */ +google.maps.RectangleOptions.prototype.clickable; + +/** + * @type {boolean} + */ +google.maps.RectangleOptions.prototype.draggable; + +/** + * @type {boolean} + */ +google.maps.RectangleOptions.prototype.editable; + +/** + * @type {string} + */ +google.maps.RectangleOptions.prototype.fillColor; + +/** + * @type {number} + */ +google.maps.RectangleOptions.prototype.fillOpacity; + +/** + * @type {google.maps.Map} + */ +google.maps.RectangleOptions.prototype.map; + +/** + * @type {string} + */ +google.maps.RectangleOptions.prototype.strokeColor; + +/** + * @type {number} + */ +google.maps.RectangleOptions.prototype.strokeOpacity; + +/** + * @type {google.maps.StrokePosition} + */ +google.maps.RectangleOptions.prototype.strokePosition; + +/** + * @type {number} + */ +google.maps.RectangleOptions.prototype.strokeWeight; + +/** + * @type {boolean} + */ +google.maps.RectangleOptions.prototype.visible; + +/** + * @type {number} + */ +google.maps.RectangleOptions.prototype.zIndex; + +/** + * @interface + */ +google.maps.RotateControlOptions = function() {}; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.RotateControlOptions.prototype.position; + +/** + * @param {Node} container + * @param {(google.maps.SaveWidgetOptions|Object.)=} opt_opts + * @constructor + */ +google.maps.SaveWidget = function(container, opt_opts) {}; + +/** + * @nosideeffects + * @return {google.maps.Attribution} + */ +google.maps.SaveWidget.prototype.getAttribution = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Place} + */ +google.maps.SaveWidget.prototype.getPlace = function() {}; + +/** + * @param {google.maps.Attribution} attribution + * @return {undefined} + */ +google.maps.SaveWidget.prototype.setAttribution = function(attribution) {}; + +/** + * @param {google.maps.SaveWidgetOptions|Object.} opts + * @return {undefined} + */ +google.maps.SaveWidget.prototype.setOptions = function(opts) {}; + +/** + * @param {google.maps.Place} place + * @return {undefined} + */ +google.maps.SaveWidget.prototype.setPlace = function(place) {}; + +/** + * @interface + */ +google.maps.SaveWidgetOptions = function() {}; + +/** + * @type {google.maps.Attribution} + */ +google.maps.SaveWidgetOptions.prototype.attribution; + +/** + * @type {google.maps.Place} + */ +google.maps.SaveWidgetOptions.prototype.place; + +/** + * @interface + */ +google.maps.ScaleControlOptions = function() {}; + +/** + * @type {google.maps.ScaleControlStyle} + */ +google.maps.ScaleControlOptions.prototype.style; + +/** + * @enum {number|string} + */ +google.maps.ScaleControlStyle = { + DEFAULT: '' +}; + +/** + * @param {number} width + * @param {number} height + * @param {string=} opt_widthUnit + * @param {string=} opt_heightUnit + * @constructor + */ +google.maps.Size = function(width, height, opt_widthUnit, opt_heightUnit) {}; + +/** + * @type {number} + */ +google.maps.Size.prototype.height; + +/** + * @type {number} + */ +google.maps.Size.prototype.width; + +/** + * @param {google.maps.Size} other + * @return {boolean} + */ +google.maps.Size.prototype.equals = function(other) {}; + +/** + * @return {string} + */ +google.maps.Size.prototype.toString = function() {}; + +/** + * @interface + */ +google.maps.StreetViewAddressControlOptions = function() {}; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.StreetViewAddressControlOptions.prototype.position; + +/** + * @interface + */ +google.maps.StreetViewControlOptions = function() {}; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.StreetViewControlOptions.prototype.position; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.StreetViewCoverageLayer = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.StreetViewCoverageLayer.prototype.getMap = function() {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.StreetViewCoverageLayer.prototype.setMap = function(map) {}; + +/** + * @interface + */ +google.maps.StreetViewLink = function() {}; + +/** + * @type {string} + */ +google.maps.StreetViewLink.prototype.description; + +/** + * @type {number} + */ +google.maps.StreetViewLink.prototype.heading; + +/** + * @type {string} + */ +google.maps.StreetViewLink.prototype.pano; + +/** + * @interface + */ +google.maps.StreetViewLocation = function() {}; + +/** + * @type {string} + */ +google.maps.StreetViewLocation.prototype.description; + +/** + * @type {google.maps.LatLng} + */ +google.maps.StreetViewLocation.prototype.latLng; + +/** + * @type {string} + */ +google.maps.StreetViewLocation.prototype.pano; + +/** + * @type {string} + */ +google.maps.StreetViewLocation.prototype.shortDescription; + +/** + * @param {Node} container + * @param {(google.maps.StreetViewPanoramaOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.StreetViewPanorama = function(container, opt_opts) {}; + +/** + * @type {Array>} + */ +google.maps.StreetViewPanorama.prototype.controls; + +/** + * @nosideeffects + * @return {Array} + */ +google.maps.StreetViewPanorama.prototype.getLinks = function() {}; + +/** + * @nosideeffects + * @return {google.maps.StreetViewLocation} + */ +google.maps.StreetViewPanorama.prototype.getLocation = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.StreetViewPanorama.prototype.getPano = function() {}; + +/** + * @nosideeffects + * @return {google.maps.StreetViewPov} + */ +google.maps.StreetViewPanorama.prototype.getPhotographerPov = function() {}; + +/** + * @nosideeffects + * @return {google.maps.LatLng} + */ +google.maps.StreetViewPanorama.prototype.getPosition = function() {}; + +/** + * @nosideeffects + * @return {google.maps.StreetViewPov} + */ +google.maps.StreetViewPanorama.prototype.getPov = function() {}; + +/** + * @nosideeffects + * @return {google.maps.StreetViewStatus} + */ +google.maps.StreetViewPanorama.prototype.getStatus = function() {}; + +/** + * @nosideeffects + * @return {boolean} + */ +google.maps.StreetViewPanorama.prototype.getVisible = function() {}; + +/** + * @nosideeffects + * @return {number} + */ +google.maps.StreetViewPanorama.prototype.getZoom = function() {}; + +/** + * @param {function(string):google.maps.StreetViewPanoramaData} provider + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.registerPanoProvider = function(provider) {}; + +/** + * @param {Array} links + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setLinks = function(links) {}; + +/** + * @param {google.maps.StreetViewPanoramaOptions|Object.} options + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setOptions = function(options) {}; + +/** + * @param {string} pano + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setPano = function(pano) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latLng + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setPosition = function(latLng) {}; + +/** + * @param {google.maps.StreetViewPov} pov + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setPov = function(pov) {}; /** * @param {boolean} flag * @return {undefined} */ -google.maps.Marker.prototype.setFlat = function(flag) {}; +google.maps.StreetViewPanorama.prototype.setVisible = function(flag) {}; + +/** + * @param {number} zoom + * @return {undefined} + */ +google.maps.StreetViewPanorama.prototype.setZoom = function(zoom) {}; + +/** + * @interface + */ +google.maps.StreetViewPanoramaData = function() {}; + +/** + * @type {string} + */ +google.maps.StreetViewPanoramaData.prototype.copyright; + +/** + * @type {string} + */ +google.maps.StreetViewPanoramaData.prototype.imageDate; + +/** + * @type {Array} + */ +google.maps.StreetViewPanoramaData.prototype.links; + +/** + * @type {google.maps.StreetViewLocation} + */ +google.maps.StreetViewPanoramaData.prototype.location; + +/** + * @type {google.maps.StreetViewTileData} + */ +google.maps.StreetViewPanoramaData.prototype.tiles; + +/** + * @interface + */ +google.maps.StreetViewPanoramaOptions = function() {}; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.addressControl; + +/** + * @type {google.maps.StreetViewAddressControlOptions|Object.} + */ +google.maps.StreetViewPanoramaOptions.prototype.addressControlOptions; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.clickToGo; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.disableDefaultUI; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.disableDoubleClickZoom; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.enableCloseButton; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.imageDateControl; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.linksControl; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.panControl; + +/** + * @type {google.maps.PanControlOptions|Object.} + */ +google.maps.StreetViewPanoramaOptions.prototype.panControlOptions; + +/** + * @type {string} + */ +google.maps.StreetViewPanoramaOptions.prototype.pano; + +/** + * @type {google.maps.LatLng|google.maps.LatLngLiteral} + */ +google.maps.StreetViewPanoramaOptions.prototype.position; + +/** + * @type {google.maps.StreetViewPov} + */ +google.maps.StreetViewPanoramaOptions.prototype.pov; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.scrollwheel; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.visible; + +/** + * @type {boolean} + */ +google.maps.StreetViewPanoramaOptions.prototype.zoomControl; + +/** + * @type {google.maps.ZoomControlOptions|Object.} + */ +google.maps.StreetViewPanoramaOptions.prototype.zoomControlOptions; + +/** + * @param {string} panoId + * @return {google.maps.StreetViewPanoramaData} + */ +google.maps.StreetViewPanoramaOptions.prototype.panoProvider = function(panoId) {}; + +/** + * @constructor + */ +google.maps.StreetViewPov = function() {}; + +/** + * @type {number} + */ +google.maps.StreetViewPov.prototype.heading; + +/** + * @type {number} + */ +google.maps.StreetViewPov.prototype.pitch; + +/** + * @constructor + */ +google.maps.StreetViewService = function() {}; + +/** + * @param {string} pano + * @param {function(google.maps.StreetViewPanoramaData, google.maps.StreetViewStatus)} callback + * @return {undefined} + */ +google.maps.StreetViewService.prototype.getPanoramaById = function(pano, callback) {}; + +/** + * @param {google.maps.LatLng|google.maps.LatLngLiteral} latlng + * @param {number} radius + * @param {function(google.maps.StreetViewPanoramaData, google.maps.StreetViewStatus)} callback + * @return {undefined} + */ +google.maps.StreetViewService.prototype.getPanoramaByLocation = function(latlng, radius, callback) {}; + +/** + * @enum {number|string} + */ +google.maps.StreetViewStatus = { + OK: '', + UNKNOWN_ERROR: '', + ZERO_RESULTS: '' +}; + +/** + * @interface + */ +google.maps.StreetViewTileData = function() {}; + +/** + * @type {number} + */ +google.maps.StreetViewTileData.prototype.centerHeading; + +/** + * @type {google.maps.Size} + */ +google.maps.StreetViewTileData.prototype.tileSize; + +/** + * @type {google.maps.Size} + */ +google.maps.StreetViewTileData.prototype.worldSize; + +/** + * @param {string} pano + * @param {number} tileZoom + * @param {number} tileX + * @param {number} tileY + * @return {string} + */ +google.maps.StreetViewTileData.prototype.getTileUrl = function(pano, tileZoom, tileX, tileY) {}; + +/** + * @enum {number|string} + */ +google.maps.StrokePosition = { + CENTER: '', + INSIDE: '', + OUTSIDE: '' +}; + +/** + * @param {Array} styles + * @param {(google.maps.StyledMapTypeOptions|Object.)=} opt_options + * @implements {google.maps.MapType} + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.StyledMapType = function(styles, opt_options) {}; + +/** + * @type {string} + */ +google.maps.StyledMapType.prototype.alt; + +/** + * @type {number} + */ +google.maps.StyledMapType.prototype.maxZoom; + +/** + * @type {number} + */ +google.maps.StyledMapType.prototype.minZoom; + +/** + * @type {string} + */ +google.maps.StyledMapType.prototype.name; + +/** + * @type {google.maps.Projection} + */ +google.maps.StyledMapType.prototype.projection; + +/** + * @type {number} + */ +google.maps.StyledMapType.prototype.radius; + +/** + * @type {google.maps.Size} + */ +google.maps.StyledMapType.prototype.tileSize; + +/** + * @param {google.maps.Point} tileCoord + * @param {number} zoom + * @param {Document} ownerDocument + * @return {Node} + */ +google.maps.StyledMapType.prototype.getTile = function(tileCoord, zoom, ownerDocument) {}; + +/** + * @param {Node} tile + * @return {undefined} + */ +google.maps.StyledMapType.prototype.releaseTile = function(tile) {}; + +/** + * @interface + */ +google.maps.StyledMapTypeOptions = function() {}; + +/** + * @type {string} + */ +google.maps.StyledMapTypeOptions.prototype.alt; + +/** + * @type {number} + */ +google.maps.StyledMapTypeOptions.prototype.maxZoom; + +/** + * @type {number} + */ +google.maps.StyledMapTypeOptions.prototype.minZoom; + +/** + * @type {string} + */ +google.maps.StyledMapTypeOptions.prototype.name; + +/** + * @interface + */ +google.maps.Symbol = function() {}; + +/** + * @type {google.maps.Point} + */ +google.maps.Symbol.prototype.anchor; + +/** + * @type {string} + */ +google.maps.Symbol.prototype.fillColor; + +/** + * @type {number} + */ +google.maps.Symbol.prototype.fillOpacity; + +/** + * @type {google.maps.SymbolPath|string} + */ +google.maps.Symbol.prototype.path; + +/** + * @type {number} + */ +google.maps.Symbol.prototype.rotation; + +/** + * @type {number} + */ +google.maps.Symbol.prototype.scale; + +/** + * @type {string} + */ +google.maps.Symbol.prototype.strokeColor; + +/** + * @type {number} + */ +google.maps.Symbol.prototype.strokeOpacity; + +/** + * @type {number} + */ +google.maps.Symbol.prototype.strokeWeight; + +/** + * @enum {number|string} + */ +google.maps.SymbolPath = { + BACKWARD_CLOSED_ARROW: '', + BACKWARD_OPEN_ARROW: '', + CIRCLE: '', + FORWARD_CLOSED_ARROW: '', + FORWARD_OPEN_ARROW: '' +}; + +/** + * @interface + */ +google.maps.Time = function() {}; + +/** + * @type {string} + */ +google.maps.Time.prototype.text; + +/** + * @type {string} + */ +google.maps.Time.prototype.time_zone; + +/** + * @type {Date} + */ +google.maps.Time.prototype.value; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.TrafficLayer = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.TrafficLayer.prototype.getMap = function() {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.TrafficLayer.prototype.setMap = function(map) {}; + +/** + * @interface + */ +google.maps.TransitAgency = function() {}; + +/** + * @type {string} + */ +google.maps.TransitAgency.prototype.name; + +/** + * @type {string} + */ +google.maps.TransitAgency.prototype.phone; + +/** + * @type {string} + */ +google.maps.TransitAgency.prototype.url; + +/** + * @interface + */ +google.maps.TransitDetails = function() {}; + +/** + * @type {google.maps.TransitStop} + */ +google.maps.TransitDetails.prototype.arrival_stop; + +/** + * @type {google.maps.Time} + */ +google.maps.TransitDetails.prototype.arrival_time; + +/** + * @type {google.maps.TransitStop} + */ +google.maps.TransitDetails.prototype.departure_stop; + +/** + * @type {google.maps.Time} + */ +google.maps.TransitDetails.prototype.departure_time; + +/** + * @type {string} + */ +google.maps.TransitDetails.prototype.headsign; + +/** + * @type {number} + */ +google.maps.TransitDetails.prototype.headway; + +/** + * @type {google.maps.TransitLine} + */ +google.maps.TransitDetails.prototype.line; + +/** + * @type {number} + */ +google.maps.TransitDetails.prototype.num_stops; + +/** + * @interface + */ +google.maps.TransitFare = function() {}; + +/** + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.TransitLayer = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.TransitLayer.prototype.getMap = function() {}; + +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.TransitLayer.prototype.setMap = function(map) {}; + +/** + * @interface + */ +google.maps.TransitLine = function() {}; + +/** + * @type {Array} + */ +google.maps.TransitLine.prototype.agencies; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.color; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.icon; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.name; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.short_name; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.text_color; + +/** + * @type {string} + */ +google.maps.TransitLine.prototype.url; + +/** + * @type {google.maps.TransitVehicle} + */ +google.maps.TransitLine.prototype.vehicle; + +/** + * @enum {number|string} + */ +google.maps.TransitMode = { + BUS: '', + RAIL: '', + SUBWAY: '', + TRAIN: '', + TRAM: '' +}; + +/** + * @interface + */ +google.maps.TransitOptions = function() {}; + +/** + * @type {Date} + */ +google.maps.TransitOptions.prototype.arrivalTime; + +/** + * @type {Date} + */ +google.maps.TransitOptions.prototype.departureTime; + +/** + * @type {Array} + */ +google.maps.TransitOptions.prototype.modes; + +/** + * @type {google.maps.TransitRoutePreference} + */ +google.maps.TransitOptions.prototype.routingPreference; + +/** + * @enum {number|string} + */ +google.maps.TransitRoutePreference = { + FEWER_TRANSFERS: '', + LESS_WALKING: '' +}; + +/** + * @interface + */ +google.maps.TransitStop = function() {}; + +/** + * @type {google.maps.LatLng} + */ +google.maps.TransitStop.prototype.location; + +/** + * @type {string} + */ +google.maps.TransitStop.prototype.name; + +/** + * @interface + */ +google.maps.TransitVehicle = function() {}; + +/** + * @type {string} + */ +google.maps.TransitVehicle.prototype.icon; + +/** + * @type {string} + */ +google.maps.TransitVehicle.prototype.local_icon; + +/** + * @type {string} + */ +google.maps.TransitVehicle.prototype.name; + +/** + * @type {string} + */ +google.maps.TransitVehicle.prototype.type; + +/** + * @enum {number|string} + */ +google.maps.TravelMode = { + BICYCLING: '', + DRIVING: '', + TRANSIT: '', + WALKING: '' +}; + +/** + * @enum {number|string} + */ +google.maps.UnitSystem = { + IMPERIAL: '', + METRIC: '' +}; + +/** + * @interface + */ +google.maps.ZoomControlOptions = function() {}; + +/** + * @type {google.maps.ControlPosition} + */ +google.maps.ZoomControlOptions.prototype.position; + +/** + * @type {google.maps.ZoomControlStyle} + */ +google.maps.ZoomControlOptions.prototype.style; + +/** + * @enum {number|string} + */ +google.maps.ZoomControlStyle = { + DEFAULT: '', + LARGE: '', + SMALL: '' +}; + +// Namespace +google.maps.adsense = {}; + +/** + * @enum {number|string} + */ +google.maps.adsense.AdFormat = { + BANNER: '', + BUTTON: '', + HALF_BANNER: '', + LARGE_HORIZONTAL_LINK_UNIT: '', + LARGE_RECTANGLE: '', + LARGE_VERTICAL_LINK_UNIT: '', + LEADERBOARD: '', + MEDIUM_RECTANGLE: '', + MEDIUM_VERTICAL_LINK_UNIT: '', + SKYSCRAPER: '', + SMALL_HORIZONTAL_LINK_UNIT: '', + SMALL_RECTANGLE: '', + SMALL_SQUARE: '', + SMALL_VERTICAL_LINK_UNIT: '', + SQUARE: '', + VERTICAL_BANNER: '', + WIDE_SKYSCRAPER: '', + X_LARGE_VERTICAL_LINK_UNIT: '' +}; + +/** + * @param {Node} container + * @param {google.maps.adsense.AdUnitOptions|Object.} opts + * @extends {google.maps.MVCObject} + * @constructor + */ +google.maps.adsense.AdUnit = function(container, opts) {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getBackgroundColor = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getBorderColor = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getChannelNumber = function() {}; + +/** + * @nosideeffects + * @return {Node} + */ +google.maps.adsense.AdUnit.prototype.getContainer = function() {}; + +/** + * @nosideeffects + * @return {google.maps.adsense.AdFormat} + */ +google.maps.adsense.AdUnit.prototype.getFormat = function() {}; + +/** + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.adsense.AdUnit.prototype.getMap = function() {}; + +/** + * @nosideeffects + * @return {google.maps.ControlPosition} + */ +google.maps.adsense.AdUnit.prototype.getPosition = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getPublisherId = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getTextColor = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getTitleColor = function() {}; + +/** + * @nosideeffects + * @return {string} + */ +google.maps.adsense.AdUnit.prototype.getUrlColor = function() {}; /** - * @param {string|google.maps.MarkerImage} icon + * @param {string} backgroundColor * @return {undefined} */ -google.maps.Marker.prototype.setIcon = function(icon) {}; +google.maps.adsense.AdUnit.prototype.setBackgroundColor = function(backgroundColor) {}; /** - * @param {google.maps.Map|google.maps.StreetViewPanorama} map + * @param {string} borderColor * @return {undefined} */ -google.maps.Marker.prototype.setMap = function(map) {}; +google.maps.adsense.AdUnit.prototype.setBorderColor = function(borderColor) {}; /** - * @param {(google.maps.MarkerOptions|Object.)} options + * @param {string} channelNumber * @return {undefined} */ -google.maps.Marker.prototype.setOptions = function(options) {}; +google.maps.adsense.AdUnit.prototype.setChannelNumber = function(channelNumber) {}; /** - * @param {google.maps.LatLng} latlng + * @param {google.maps.adsense.AdFormat} format * @return {undefined} */ -google.maps.Marker.prototype.setPosition = function(latlng) {}; +google.maps.adsense.AdUnit.prototype.setFormat = function(format) {}; /** - * @param {string|google.maps.MarkerImage} shadow + * @param {google.maps.Map} map * @return {undefined} */ -google.maps.Marker.prototype.setShadow = function(shadow) {}; +google.maps.adsense.AdUnit.prototype.setMap = function(map) {}; /** - * @param {google.maps.MarkerShape} shape + * @param {google.maps.ControlPosition} position * @return {undefined} */ -google.maps.Marker.prototype.setShape = function(shape) {}; +google.maps.adsense.AdUnit.prototype.setPosition = function(position) {}; /** - * @param {string} title + * @param {string} textColor * @return {undefined} */ -google.maps.Marker.prototype.setTitle = function(title) {}; +google.maps.adsense.AdUnit.prototype.setTextColor = function(textColor) {}; /** - * @param {boolean} visible + * @param {string} titleColor * @return {undefined} */ -google.maps.Marker.prototype.setVisible = function(visible) {}; +google.maps.adsense.AdUnit.prototype.setTitleColor = function(titleColor) {}; /** - * @param {number} zIndex + * @param {string} urlColor * @return {undefined} */ -google.maps.Marker.prototype.setZIndex = function(zIndex) {}; +google.maps.adsense.AdUnit.prototype.setUrlColor = function(urlColor) {}; /** - * @param {string} url - * @param {google.maps.Size=} opt_size - * @param {google.maps.Point=} opt_origin - * @param {google.maps.Point=} opt_anchor - * @param {google.maps.Size=} opt_scaledSize - * @constructor + * @interface */ -google.maps.MarkerImage = function(url, opt_size, opt_origin, opt_anchor, opt_scaledSize) {}; +google.maps.adsense.AdUnitOptions = function() {}; /** - * @type {google.maps.Point} + * @type {string} */ -google.maps.MarkerImage.prototype.anchor; +google.maps.adsense.AdUnitOptions.prototype.backgroundColor; /** - * @type {google.maps.Point} + * @type {string} */ -google.maps.MarkerImage.prototype.origin; +google.maps.adsense.AdUnitOptions.prototype.borderColor; /** - * @type {google.maps.Size} + * @type {string} */ -google.maps.MarkerImage.prototype.scaledSize; +google.maps.adsense.AdUnitOptions.prototype.channelNumber; /** - * @type {google.maps.Size} + * @type {google.maps.adsense.AdFormat} */ -google.maps.MarkerImage.prototype.size; +google.maps.adsense.AdUnitOptions.prototype.format; /** - * @type {string} + * @type {google.maps.Map} */ -google.maps.MarkerImage.prototype.url; +google.maps.adsense.AdUnitOptions.prototype.map; /** - * @constructor + * @type {google.maps.ControlPosition} */ -google.maps.MarkerOptions = function() {}; +google.maps.adsense.AdUnitOptions.prototype.position; /** - * @type {google.maps.Animation} + * @type {string} */ -google.maps.MarkerOptions.prototype.animation; +google.maps.adsense.AdUnitOptions.prototype.publisherId; /** - * @type {boolean} + * @type {string} */ -google.maps.MarkerOptions.prototype.clickable; +google.maps.adsense.AdUnitOptions.prototype.textColor; /** * @type {string} */ -google.maps.MarkerOptions.prototype.cursor; +google.maps.adsense.AdUnitOptions.prototype.titleColor; /** - * @type {boolean} + * @type {string} */ -google.maps.MarkerOptions.prototype.draggable; +google.maps.adsense.AdUnitOptions.prototype.urlColor; + +// Namespace +google.maps.drawing = {}; /** - * @type {boolean} + * @interface */ -google.maps.MarkerOptions.prototype.flat; +google.maps.drawing.DrawingControlOptions = function() {}; /** - * @type {string|google.maps.MarkerImage} + * @type {Array} */ -google.maps.MarkerOptions.prototype.icon; +google.maps.drawing.DrawingControlOptions.prototype.drawingModes; /** - * @type {google.maps.Map|google.maps.StreetViewPanorama} + * @type {google.maps.ControlPosition} */ -google.maps.MarkerOptions.prototype.map; +google.maps.drawing.DrawingControlOptions.prototype.position; /** - * @type {boolean} + * @param {(google.maps.drawing.DrawingManagerOptions|Object.)=} opt_options + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.MarkerOptions.prototype.optimized; +google.maps.drawing.DrawingManager = function(opt_options) {}; /** - * @type {google.maps.LatLng} + * @nosideeffects + * @return {?google.maps.drawing.OverlayType} */ -google.maps.MarkerOptions.prototype.position; +google.maps.drawing.DrawingManager.prototype.getDrawingMode = function() {}; /** - * @type {boolean} + * @nosideeffects + * @return {google.maps.Map} + */ +google.maps.drawing.DrawingManager.prototype.getMap = function() {}; + +/** + * @param {?google.maps.drawing.OverlayType} drawingMode + * @return {undefined} */ -google.maps.MarkerOptions.prototype.raiseOnDrag; +google.maps.drawing.DrawingManager.prototype.setDrawingMode = function(drawingMode) {}; /** - * @type {string|google.maps.MarkerImage} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.MarkerOptions.prototype.shadow; +google.maps.drawing.DrawingManager.prototype.setMap = function(map) {}; /** - * @type {google.maps.MarkerShape} + * @param {google.maps.drawing.DrawingManagerOptions|Object.} options + * @return {undefined} */ -google.maps.MarkerOptions.prototype.shape; +google.maps.drawing.DrawingManager.prototype.setOptions = function(options) {}; /** - * @type {string} + * @interface */ -google.maps.MarkerOptions.prototype.title; +google.maps.drawing.DrawingManagerOptions = function() {}; + +/** + * @type {google.maps.CircleOptions|Object.} + */ +google.maps.drawing.DrawingManagerOptions.prototype.circleOptions; /** * @type {boolean} */ -google.maps.MarkerOptions.prototype.visible; +google.maps.drawing.DrawingManagerOptions.prototype.drawingControl; /** - * @type {number} + * @type {google.maps.drawing.DrawingControlOptions|Object.} */ -google.maps.MarkerOptions.prototype.zIndex; +google.maps.drawing.DrawingManagerOptions.prototype.drawingControlOptions; /** - * @constructor + * @type {google.maps.drawing.OverlayType} */ -google.maps.MarkerShape = function() {}; +google.maps.drawing.DrawingManagerOptions.prototype.drawingMode; /** - * @type {Array.} + * @type {google.maps.Map} */ -google.maps.MarkerShape.prototype.coords; +google.maps.drawing.DrawingManagerOptions.prototype.map; /** - * @type {string} + * @type {google.maps.MarkerOptions|Object.} */ -google.maps.MarkerShape.prototype.type; +google.maps.drawing.DrawingManagerOptions.prototype.markerOptions; /** - * @constructor + * @type {google.maps.PolygonOptions|Object.} */ -google.maps.MaxZoomResult = function() {}; +google.maps.drawing.DrawingManagerOptions.prototype.polygonOptions; /** - * @type {google.maps.MaxZoomStatus} + * @type {google.maps.PolylineOptions|Object.} */ -google.maps.MaxZoomResult.prototype.status; +google.maps.drawing.DrawingManagerOptions.prototype.polylineOptions; /** - * @type {number} + * @type {google.maps.RectangleOptions|Object.} */ -google.maps.MaxZoomResult.prototype.zoom; +google.maps.drawing.DrawingManagerOptions.prototype.rectangleOptions; /** * @constructor */ -google.maps.MaxZoomService = function() {}; +google.maps.drawing.OverlayCompleteEvent = function() {}; /** - * @param {google.maps.LatLng} latlng - * @param {function(google.maps.MaxZoomResult)} callback - * @return {undefined} + * @type {google.maps.Marker|google.maps.Polygon|google.maps.Polyline|google.maps.Rectangle|google.maps.Circle} */ -google.maps.MaxZoomService.prototype.getMaxZoomAtLatLng = function(latlng, callback) {}; +google.maps.drawing.OverlayCompleteEvent.prototype.overlay; /** - * @enum {string} + * @type {google.maps.drawing.OverlayType} */ -google.maps.MaxZoomStatus = { - OK: '', - ERROR: '' +google.maps.drawing.OverlayCompleteEvent.prototype.type; + +/** + * @enum {number|string} + */ +google.maps.drawing.OverlayType = { + CIRCLE: '', + MARKER: '', + POLYGON: '', + POLYLINE: '', + RECTANGLE: '' }; +// Namespace +google.maps.event = {}; + /** - * @constructor + * @param {Object} instance + * @param {string} eventName + * @param {!Function} handler + * @param {boolean=} opt_capture + * @return {google.maps.MapsEventListener} */ -google.maps.MouseEvent = function() {}; +google.maps.event.addDomListener = function(instance, eventName, handler, opt_capture) {}; /** - * @type {google.maps.LatLng} + * @param {Object} instance + * @param {string} eventName + * @param {!Function} handler + * @param {boolean=} opt_capture + * @return {google.maps.MapsEventListener} */ -google.maps.MouseEvent.prototype.latLng; +google.maps.event.addDomListenerOnce = function(instance, eventName, handler, opt_capture) {}; /** - * @extends {google.maps.MVCObject} - * @constructor + * @param {Object} instance + * @param {string} eventName + * @param {!Function} handler + * @return {google.maps.MapsEventListener} */ -google.maps.OverlayView = function() {}; +google.maps.event.addListener = function(instance, eventName, handler) {}; + +/** + * @param {Object} instance + * @param {string} eventName + * @param {!Function} handler + * @return {google.maps.MapsEventListener} + */ +google.maps.event.addListenerOnce = function(instance, eventName, handler) {}; /** + * @param {Object} instance * @return {undefined} */ -google.maps.OverlayView.prototype.draw = function() {}; +google.maps.event.clearInstanceListeners = function(instance) {}; /** - * @nosideeffects - * @return {google.maps.Map} + * @param {Object} instance + * @param {string} eventName + * @return {undefined} */ -google.maps.OverlayView.prototype.getMap = function() {}; +google.maps.event.clearListeners = function(instance, eventName) {}; /** - * @nosideeffects - * @return {google.maps.MapPanes} + * @param {google.maps.MapsEventListener} listener + * @return {undefined} */ -google.maps.OverlayView.prototype.getPanes = function() {}; +google.maps.event.removeListener = function(listener) {}; + +/** + * @param {Object} instance + * @param {string} eventName + * @param {...*} var_args + * @return {undefined} + */ +google.maps.event.trigger = function(instance, eventName, var_args) {}; + +// Namespace +google.maps.geometry = {}; + +// Namespace +google.maps.geometry.encoding = {}; + +/** + * @param {string} encodedPath + * @return {Array} + */ +google.maps.geometry.encoding.decodePath = function(encodedPath) {}; /** - * @nosideeffects - * @return {google.maps.MapCanvasProjection} + * @param {Array|google.maps.MVCArray} path + * @return {string} */ -google.maps.OverlayView.prototype.getProjection = function() {}; +google.maps.geometry.encoding.encodePath = function(path) {}; + +// Namespace +google.maps.geometry.poly = {}; /** - * @return {undefined} + * @param {google.maps.LatLng} point + * @param {google.maps.Polygon} polygon + * @return {boolean} */ -google.maps.OverlayView.prototype.onAdd = function() {}; +google.maps.geometry.poly.containsLocation = function(point, polygon) {}; /** - * @return {undefined} + * @param {google.maps.LatLng} point + * @param {google.maps.Polygon|google.maps.Polyline} poly + * @param {number=} opt_tolerance + * @return {boolean} */ -google.maps.OverlayView.prototype.onRemove = function() {}; +google.maps.geometry.poly.isLocationOnEdge = function(point, poly, opt_tolerance) {}; + +// Namespace +google.maps.geometry.spherical = {}; /** - * @param {google.maps.Map|google.maps.StreetViewPanorama} map - * @return {undefined} + * @param {Array|google.maps.MVCArray} path + * @param {number=} opt_radius + * @return {number} */ -google.maps.OverlayView.prototype.setMap = function(map) {}; +google.maps.geometry.spherical.computeArea = function(path, opt_radius) {}; /** - * @constructor + * @param {google.maps.LatLng} from + * @param {google.maps.LatLng} to + * @param {number=} opt_radius + * @return {number} */ -google.maps.OverviewMapControlOptions = function() {}; +google.maps.geometry.spherical.computeDistanceBetween = function(from, to, opt_radius) {}; /** - * @type {boolean} + * @param {google.maps.LatLng} from + * @param {google.maps.LatLng} to + * @return {number} */ -google.maps.OverviewMapControlOptions.prototype.opened; +google.maps.geometry.spherical.computeHeading = function(from, to) {}; /** - * @constructor + * @param {Array|google.maps.MVCArray} path + * @param {number=} opt_radius + * @return {number} */ -google.maps.PanControlOptions = function() {}; +google.maps.geometry.spherical.computeLength = function(path, opt_radius) {}; /** - * @type {google.maps.ControlPosition} + * @param {google.maps.LatLng} from + * @param {number} distance + * @param {number} heading + * @param {number=} opt_radius + * @return {google.maps.LatLng} */ -google.maps.PanControlOptions.prototype.position; +google.maps.geometry.spherical.computeOffset = function(from, distance, heading, opt_radius) {}; /** - * @constructor + * @param {google.maps.LatLng} to + * @param {number} distance + * @param {number} heading + * @param {number=} opt_radius + * @return {google.maps.LatLng} */ -google.maps.PathElevationRequest = function() {}; +google.maps.geometry.spherical.computeOffsetOrigin = function(to, distance, heading, opt_radius) {}; /** - * @type {Array.} + * @param {Array|google.maps.MVCArray} loop + * @param {number=} opt_radius + * @return {number} */ -google.maps.PathElevationRequest.prototype.path; +google.maps.geometry.spherical.computeSignedArea = function(loop, opt_radius) {}; /** - * @type {number} + * @param {google.maps.LatLng} from + * @param {google.maps.LatLng} to + * @param {number} fraction + * @return {google.maps.LatLng} */ -google.maps.PathElevationRequest.prototype.samples; +google.maps.geometry.spherical.interpolate = function(from, to, fraction) {}; + +// Namespace +google.maps.panoramio = {}; /** - * @param {number} x - * @param {number} y - * @constructor + * @interface */ -google.maps.Point = function(x, y) {}; +google.maps.panoramio.PanoramioFeature = function() {}; /** - * @param {google.maps.Point} other - * @return {boolean} + * @type {string} */ -google.maps.Point.prototype.equals = function(other) {}; +google.maps.panoramio.PanoramioFeature.prototype.author; /** - * @return {string} + * @type {string} */ -google.maps.Point.prototype.toString = function() {}; +google.maps.panoramio.PanoramioFeature.prototype.photoId; /** - * @type {number} + * @type {string} */ -google.maps.Point.prototype.x; +google.maps.panoramio.PanoramioFeature.prototype.title; /** - * @type {number} + * @type {string} */ -google.maps.Point.prototype.y; +google.maps.panoramio.PanoramioFeature.prototype.url; /** - * @param {(google.maps.PolygonOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @type {string} */ -google.maps.Polygon = function(opt_opts) {}; +google.maps.panoramio.PanoramioFeature.prototype.userId; /** - * @nosideeffects - * @return {boolean} + * @param {(google.maps.panoramio.PanoramioLayerOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.Polygon.prototype.getEditable = function() {}; +google.maps.panoramio.PanoramioLayer = function(opt_opts) {}; /** * @nosideeffects * @return {google.maps.Map} */ -google.maps.Polygon.prototype.getMap = function() {}; +google.maps.panoramio.PanoramioLayer.prototype.getMap = function() {}; /** * @nosideeffects - * @return {google.maps.MVCArray.} + * @return {string} */ -google.maps.Polygon.prototype.getPath = function() {}; +google.maps.panoramio.PanoramioLayer.prototype.getTag = function() {}; /** * @nosideeffects - * @return {google.maps.MVCArray.>} - */ -google.maps.Polygon.prototype.getPaths = function() {}; - -/** - * @param {boolean} editable - * @return {undefined} + * @return {string} */ -google.maps.Polygon.prototype.setEditable = function(editable) {}; +google.maps.panoramio.PanoramioLayer.prototype.getUserId = function() {}; /** * @param {google.maps.Map} map * @return {undefined} */ -google.maps.Polygon.prototype.setMap = function(map) {}; +google.maps.panoramio.PanoramioLayer.prototype.setMap = function(map) {}; /** - * @param {(google.maps.PolygonOptions|Object.)} options + * @param {google.maps.panoramio.PanoramioLayerOptions|Object.} options * @return {undefined} */ -google.maps.Polygon.prototype.setOptions = function(options) {}; +google.maps.panoramio.PanoramioLayer.prototype.setOptions = function(options) {}; /** - * @param {google.maps.MVCArray.|Array.} path + * @param {string} tag * @return {undefined} */ -google.maps.Polygon.prototype.setPath = function(path) {}; +google.maps.panoramio.PanoramioLayer.prototype.setTag = function(tag) {}; /** - * @param {google.maps.MVCArray.>|google.maps.MVCArray.|Array.>|Array.} paths + * @param {string} userId * @return {undefined} */ -google.maps.Polygon.prototype.setPaths = function(paths) {}; +google.maps.panoramio.PanoramioLayer.prototype.setUserId = function(userId) {}; /** - * @constructor + * @interface */ -google.maps.PolygonOptions = function() {}; +google.maps.panoramio.PanoramioLayerOptions = function() {}; /** * @type {boolean} */ -google.maps.PolygonOptions.prototype.clickable; +google.maps.panoramio.PanoramioLayerOptions.prototype.clickable; /** - * @type {string} + * @type {google.maps.Map} */ -google.maps.PolygonOptions.prototype.fillColor; +google.maps.panoramio.PanoramioLayerOptions.prototype.map; /** - * @type {number} + * @type {boolean} */ -google.maps.PolygonOptions.prototype.fillOpacity; +google.maps.panoramio.PanoramioLayerOptions.prototype.suppressInfoWindows; /** - * @type {boolean} + * @type {string} */ -google.maps.PolygonOptions.prototype.geodesic; +google.maps.panoramio.PanoramioLayerOptions.prototype.tag; /** - * @type {google.maps.Map} + * @type {string} */ -google.maps.PolygonOptions.prototype.map; +google.maps.panoramio.PanoramioLayerOptions.prototype.userId; /** - * @type {google.maps.MVCArray.>|google.maps.MVCArray.|Array.>|Array.} + * @interface */ -google.maps.PolygonOptions.prototype.paths; +google.maps.panoramio.PanoramioMouseEvent = function() {}; /** - * @type {string} + * @type {google.maps.panoramio.PanoramioFeature} */ -google.maps.PolygonOptions.prototype.strokeColor; +google.maps.panoramio.PanoramioMouseEvent.prototype.featureDetails; /** - * @type {number} + * @type {string} */ -google.maps.PolygonOptions.prototype.strokeOpacity; +google.maps.panoramio.PanoramioMouseEvent.prototype.infoWindowHtml; /** - * @type {number} + * @type {google.maps.LatLng} */ -google.maps.PolygonOptions.prototype.strokeWeight; +google.maps.panoramio.PanoramioMouseEvent.prototype.latLng; /** - * @type {number} + * @type {google.maps.Size} */ -google.maps.PolygonOptions.prototype.zIndex; +google.maps.panoramio.PanoramioMouseEvent.prototype.pixelOffset; + +// Namespace +google.maps.places = {}; /** - * @param {(google.maps.PolylineOptions|Object.)=} opt_opts + * @param {HTMLInputElement} inputField + * @param {(google.maps.places.AutocompleteOptions|Object.)=} opt_opts * @extends {google.maps.MVCObject} * @constructor */ -google.maps.Polyline = function(opt_opts) {}; - -/** - * @nosideeffects - * @return {boolean} - */ -google.maps.Polyline.prototype.getEditable = function() {}; +google.maps.places.Autocomplete = function(inputField, opt_opts) {}; /** * @nosideeffects - * @return {google.maps.Map} + * @return {google.maps.LatLngBounds} */ -google.maps.Polyline.prototype.getMap = function() {}; +google.maps.places.Autocomplete.prototype.getBounds = function() {}; /** * @nosideeffects - * @return {google.maps.MVCArray.} - */ -google.maps.Polyline.prototype.getPath = function() {}; - -/** - * @param {boolean} editable - * @return {undefined} + * @return {google.maps.places.PlaceResult} */ -google.maps.Polyline.prototype.setEditable = function(editable) {}; +google.maps.places.Autocomplete.prototype.getPlace = function() {}; /** - * @param {google.maps.Map} map + * @param {google.maps.LatLngBounds} bounds * @return {undefined} */ -google.maps.Polyline.prototype.setMap = function(map) {}; +google.maps.places.Autocomplete.prototype.setBounds = function(bounds) {}; /** - * @param {(google.maps.PolylineOptions|Object.)} options + * @param {google.maps.places.ComponentRestrictions} restrictions * @return {undefined} */ -google.maps.Polyline.prototype.setOptions = function(options) {}; +google.maps.places.Autocomplete.prototype.setComponentRestrictions = function(restrictions) {}; /** - * @param {google.maps.MVCArray.|Array.} path + * @param {Array} types * @return {undefined} */ -google.maps.Polyline.prototype.setPath = function(path) {}; +google.maps.places.Autocomplete.prototype.setTypes = function(types) {}; /** - * @constructor + * @interface */ -google.maps.PolylineOptions = function() {}; +google.maps.places.AutocompleteOptions = function() {}; /** - * @type {boolean} + * @type {google.maps.LatLngBounds} */ -google.maps.PolylineOptions.prototype.clickable; +google.maps.places.AutocompleteOptions.prototype.bounds; /** - * @type {boolean} + * @type {google.maps.places.ComponentRestrictions} */ -google.maps.PolylineOptions.prototype.geodesic; +google.maps.places.AutocompleteOptions.prototype.componentRestrictions; /** - * @type {google.maps.Map} + * @type {Array} */ -google.maps.PolylineOptions.prototype.map; +google.maps.places.AutocompleteOptions.prototype.types; /** - * @type {google.maps.MVCArray.|Array.} + * @interface */ -google.maps.PolylineOptions.prototype.path; +google.maps.places.AutocompletePrediction = function() {}; /** * @type {string} */ -google.maps.PolylineOptions.prototype.strokeColor; - -/** - * @type {number} - */ -google.maps.PolylineOptions.prototype.strokeOpacity; - -/** - * @type {number} - */ -google.maps.PolylineOptions.prototype.strokeWeight; +google.maps.places.AutocompletePrediction.prototype.description; /** - * @type {number} + * @type {Array} */ -google.maps.PolylineOptions.prototype.zIndex; +google.maps.places.AutocompletePrediction.prototype.matched_substrings; /** - * @constructor + * @type {string} */ -google.maps.Projection = function() {}; +google.maps.places.AutocompletePrediction.prototype.place_id; /** - * @param {google.maps.LatLng} latLng - * @param {google.maps.Point=} opt_point - * @return {google.maps.Point} + * @type {Array} */ -google.maps.Projection.prototype.fromLatLngToPoint = function(latLng, opt_point) {}; +google.maps.places.AutocompletePrediction.prototype.terms; /** - * @param {google.maps.Point} pixel - * @param {boolean=} opt_nowrap - * @return {google.maps.LatLng} + * @type {Array} */ -google.maps.Projection.prototype.fromPointToLatLng = function(pixel, opt_nowrap) {}; +google.maps.places.AutocompletePrediction.prototype.types; /** - * @param {(google.maps.RectangleOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} * @constructor */ -google.maps.Rectangle = function(opt_opts) {}; - -/** - * @nosideeffects - * @return {google.maps.LatLngBounds} - */ -google.maps.Rectangle.prototype.getBounds = function() {}; - -/** - * @nosideeffects - * @return {boolean} - */ -google.maps.Rectangle.prototype.getEditable = function() {}; - -/** - * @nosideeffects - * @return {google.maps.Map} - */ -google.maps.Rectangle.prototype.getMap = function() {}; +google.maps.places.AutocompleteService = function() {}; /** - * @param {google.maps.LatLngBounds} bounds + * @param {google.maps.places.AutocompletionRequest|Object.} request + * @param {function(Array, google.maps.places.PlacesServiceStatus)} callback * @return {undefined} */ -google.maps.Rectangle.prototype.setBounds = function(bounds) {}; +google.maps.places.AutocompleteService.prototype.getPlacePredictions = function(request, callback) {}; /** - * @param {boolean} editable + * @param {google.maps.places.QueryAutocompletionRequest|Object.} request + * @param {function(Array, google.maps.places.PlacesServiceStatus)} callback * @return {undefined} */ -google.maps.Rectangle.prototype.setEditable = function(editable) {}; +google.maps.places.AutocompleteService.prototype.getQueryPredictions = function(request, callback) {}; /** - * @param {google.maps.Map} map - * @return {undefined} + * @interface */ -google.maps.Rectangle.prototype.setMap = function(map) {}; +google.maps.places.AutocompletionRequest = function() {}; /** - * @param {(google.maps.RectangleOptions|Object.)} options - * @return {undefined} + * @type {google.maps.LatLngBounds} */ -google.maps.Rectangle.prototype.setOptions = function(options) {}; +google.maps.places.AutocompletionRequest.prototype.bounds; /** - * @constructor + * @type {google.maps.places.ComponentRestrictions} */ -google.maps.RectangleOptions = function() {}; +google.maps.places.AutocompletionRequest.prototype.componentRestrictions; /** - * @type {google.maps.LatLngBounds} + * @type {string} */ -google.maps.RectangleOptions.prototype.bounds; +google.maps.places.AutocompletionRequest.prototype.input; /** - * @type {boolean} + * @type {google.maps.LatLng} */ -google.maps.RectangleOptions.prototype.clickable; +google.maps.places.AutocompletionRequest.prototype.location; /** - * @type {string} + * @type {number} */ -google.maps.RectangleOptions.prototype.fillColor; +google.maps.places.AutocompletionRequest.prototype.offset; /** * @type {number} */ -google.maps.RectangleOptions.prototype.fillOpacity; +google.maps.places.AutocompletionRequest.prototype.radius; /** - * @type {google.maps.Map} + * @type {Array} */ -google.maps.RectangleOptions.prototype.map; +google.maps.places.AutocompletionRequest.prototype.types; + +/** + * @interface + */ +google.maps.places.ComponentRestrictions = function() {}; /** * @type {string} */ -google.maps.RectangleOptions.prototype.strokeColor; +google.maps.places.ComponentRestrictions.prototype.country; /** - * @type {number} + * @constructor */ -google.maps.RectangleOptions.prototype.strokeOpacity; +google.maps.places.PhotoOptions = function() {}; /** * @type {number} */ -google.maps.RectangleOptions.prototype.strokeWeight; +google.maps.places.PhotoOptions.prototype.maxHeight; /** * @type {number} */ -google.maps.RectangleOptions.prototype.zIndex; +google.maps.places.PhotoOptions.prototype.maxWidth; /** * @constructor */ -google.maps.RotateControlOptions = function() {}; +google.maps.places.PlaceAspectRating = function() {}; /** - * @type {google.maps.ControlPosition} + * @type {number} */ -google.maps.RotateControlOptions.prototype.position; +google.maps.places.PlaceAspectRating.prototype.rating; /** - * @constructor + * @type {string} */ -google.maps.ScaleControlOptions = function() {}; +google.maps.places.PlaceAspectRating.prototype.type; /** - * @type {google.maps.ControlPosition} + * @interface */ -google.maps.ScaleControlOptions.prototype.position; +google.maps.places.PlaceDetailsRequest = function() {}; /** - * @type {google.maps.ScaleControlStyle} + * @type {string} */ -google.maps.ScaleControlOptions.prototype.style; +google.maps.places.PlaceDetailsRequest.prototype.placeId; /** - * @enum {string} + * @interface */ -google.maps.ScaleControlStyle = { - DEFAULT: '' -}; +google.maps.places.PlaceGeometry = function() {}; /** - * @param {number} width - * @param {number} height - * @param {string=} opt_widthUnit - * @param {string=} opt_heightUnit - * @constructor + * @type {google.maps.LatLng} */ -google.maps.Size = function(width, height, opt_widthUnit, opt_heightUnit) {}; +google.maps.places.PlaceGeometry.prototype.location; /** - * @param {google.maps.Size} other - * @return {boolean} + * @type {google.maps.LatLngBounds} */ -google.maps.Size.prototype.equals = function(other) {}; +google.maps.places.PlaceGeometry.prototype.viewport; + +/** + * @interface + */ +google.maps.places.PlacePhoto = function() {}; /** * @type {number} */ -google.maps.Size.prototype.height; +google.maps.places.PlacePhoto.prototype.height; /** - * @return {string} + * @type {Array} */ -google.maps.Size.prototype.toString = function() {}; +google.maps.places.PlacePhoto.prototype.html_attributions; /** * @type {number} */ -google.maps.Size.prototype.width; +google.maps.places.PlacePhoto.prototype.width; /** - * @constructor + * @param {google.maps.places.PhotoOptions|Object.} opts + * @return {string} */ -google.maps.StreetViewAddressControlOptions = function() {}; +google.maps.places.PlacePhoto.prototype.getUrl = function(opts) {}; /** - * @type {google.maps.ControlPosition} + * @interface */ -google.maps.StreetViewAddressControlOptions.prototype.position; +google.maps.places.PlaceResult = function() {}; /** - * @constructor + * @type {Array} */ -google.maps.StreetViewControlOptions = function() {}; +google.maps.places.PlaceResult.prototype.address_components; /** - * @type {google.maps.ControlPosition} + * @type {Array} */ -google.maps.StreetViewControlOptions.prototype.position; +google.maps.places.PlaceResult.prototype.aspects; /** - * @constructor + * @type {string} */ -google.maps.StreetViewLink = function() {}; +google.maps.places.PlaceResult.prototype.formatted_address; /** * @type {string} */ -google.maps.StreetViewLink.prototype.description; +google.maps.places.PlaceResult.prototype.formatted_phone_number; /** - * @type {number} + * @type {google.maps.places.PlaceGeometry} */ -google.maps.StreetViewLink.prototype.heading; +google.maps.places.PlaceResult.prototype.geometry; + +/** + * @type {Array} + */ +google.maps.places.PlaceResult.prototype.html_attributions; /** * @type {string} */ -google.maps.StreetViewLink.prototype.pano; +google.maps.places.PlaceResult.prototype.icon; /** - * @constructor + * @type {string} */ -google.maps.StreetViewLocation = function() {}; +google.maps.places.PlaceResult.prototype.international_phone_number; /** * @type {string} */ -google.maps.StreetViewLocation.prototype.description; +google.maps.places.PlaceResult.prototype.name; /** - * @type {google.maps.LatLng} + * @type {boolean} */ -google.maps.StreetViewLocation.prototype.latLng; +google.maps.places.PlaceResult.prototype.permanently_closed; /** - * @type {string} + * @type {Array} */ -google.maps.StreetViewLocation.prototype.pano; +google.maps.places.PlaceResult.prototype.photos; /** - * @param {Node} container - * @param {(google.maps.StreetViewPanoramaOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @type {string} */ -google.maps.StreetViewPanorama = function(container, opt_opts) {}; +google.maps.places.PlaceResult.prototype.place_id; /** - * @type {Array.>} + * @type {number} */ -google.maps.StreetViewPanorama.prototype.controls; +google.maps.places.PlaceResult.prototype.price_level; /** - * @nosideeffects - * @return {Array.} + * @type {number} */ -google.maps.StreetViewPanorama.prototype.getLinks = function() {}; +google.maps.places.PlaceResult.prototype.rating; /** - * @nosideeffects - * @return {string} + * @type {Array} */ -google.maps.StreetViewPanorama.prototype.getPano = function() {}; +google.maps.places.PlaceResult.prototype.reviews; /** - * @nosideeffects - * @return {google.maps.LatLng} + * @type {Array} */ -google.maps.StreetViewPanorama.prototype.getPosition = function() {}; +google.maps.places.PlaceResult.prototype.types; /** - * @nosideeffects - * @return {google.maps.StreetViewPov} + * @type {string} */ -google.maps.StreetViewPanorama.prototype.getPov = function() {}; +google.maps.places.PlaceResult.prototype.url; /** - * @nosideeffects - * @return {boolean} + * @type {string} */ -google.maps.StreetViewPanorama.prototype.getVisible = function() {}; +google.maps.places.PlaceResult.prototype.vicinity; /** - * @param {function(string):google.maps.StreetViewPanoramaData} provider - * @return {undefined} + * @type {string} */ -google.maps.StreetViewPanorama.prototype.registerPanoProvider = function(provider) {}; +google.maps.places.PlaceResult.prototype.website; /** - * @param {string} pano - * @return {undefined} + * @constructor */ -google.maps.StreetViewPanorama.prototype.setPano = function(pano) {}; +google.maps.places.PlaceReview = function() {}; /** - * @param {google.maps.LatLng} latLng - * @return {undefined} + * @type {Array} */ -google.maps.StreetViewPanorama.prototype.setPosition = function(latLng) {}; +google.maps.places.PlaceReview.prototype.aspects; /** - * @param {google.maps.StreetViewPov} pov - * @return {undefined} + * @type {string} */ -google.maps.StreetViewPanorama.prototype.setPov = function(pov) {}; +google.maps.places.PlaceReview.prototype.author_name; /** - * @param {boolean} flag - * @return {undefined} + * @type {string} */ -google.maps.StreetViewPanorama.prototype.setVisible = function(flag) {}; +google.maps.places.PlaceReview.prototype.author_url; /** - * @constructor + * @type {string} */ -google.maps.StreetViewPanoramaData = function() {}; +google.maps.places.PlaceReview.prototype.language; /** * @type {string} */ -google.maps.StreetViewPanoramaData.prototype.copyright; +google.maps.places.PlaceReview.prototype.text; /** - * @type {Array.} + * @constructor */ -google.maps.StreetViewPanoramaData.prototype.links; +google.maps.places.PlaceSearchPagination = function() {}; /** - * @type {google.maps.StreetViewLocation} + * @type {boolean} */ -google.maps.StreetViewPanoramaData.prototype.location; +google.maps.places.PlaceSearchPagination.prototype.hasNextPage; /** - * @type {google.maps.StreetViewTileData} + * @return {undefined} */ -google.maps.StreetViewPanoramaData.prototype.tiles; +google.maps.places.PlaceSearchPagination.prototype.nextPage = function() {}; /** - * @constructor + * @interface */ -google.maps.StreetViewPanoramaOptions = function() {}; +google.maps.places.PlaceSearchRequest = function() {}; /** - * @type {boolean} + * @type {google.maps.LatLngBounds} */ -google.maps.StreetViewPanoramaOptions.prototype.addressControl; +google.maps.places.PlaceSearchRequest.prototype.bounds; /** - * @type {(google.maps.StreetViewAddressControlOptions|Object.)} + * @type {string} */ -google.maps.StreetViewPanoramaOptions.prototype.addressControlOptions; +google.maps.places.PlaceSearchRequest.prototype.keyword; /** - * @type {boolean} + * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.StreetViewPanoramaOptions.prototype.disableDoubleClickZoom; +google.maps.places.PlaceSearchRequest.prototype.location; /** - * @type {boolean} + * @type {number} */ -google.maps.StreetViewPanoramaOptions.prototype.enableCloseButton; +google.maps.places.PlaceSearchRequest.prototype.maxPriceLevel; /** - * @type {boolean} + * @type {number} */ -google.maps.StreetViewPanoramaOptions.prototype.linksControl; +google.maps.places.PlaceSearchRequest.prototype.minPriceLevel; + +/** + * @type {string} + */ +google.maps.places.PlaceSearchRequest.prototype.name; /** * @type {boolean} */ -google.maps.StreetViewPanoramaOptions.prototype.panControl; +google.maps.places.PlaceSearchRequest.prototype.openNow; /** - * @type {(google.maps.PanControlOptions|Object.)} + * @type {number} */ -google.maps.StreetViewPanoramaOptions.prototype.panControlOptions; +google.maps.places.PlaceSearchRequest.prototype.radius; /** - * @type {string} + * @type {google.maps.places.RankBy} */ -google.maps.StreetViewPanoramaOptions.prototype.pano; +google.maps.places.PlaceSearchRequest.prototype.rankBy; /** - * @type {function(string):google.maps.StreetViewPanoramaData} + * @type {Array} */ -google.maps.StreetViewPanoramaOptions.prototype.panoProvider; +google.maps.places.PlaceSearchRequest.prototype.types; /** - * @type {google.maps.LatLng} + * @param {HTMLDivElement|google.maps.Map} attrContainer + * @constructor */ -google.maps.StreetViewPanoramaOptions.prototype.position; +google.maps.places.PlacesService = function(attrContainer) {}; /** - * @type {google.maps.StreetViewPov} + * @param {google.maps.places.PlaceDetailsRequest|Object.} request + * @param {function(google.maps.places.PlaceResult, google.maps.places.PlacesServiceStatus)} callback + * @return {undefined} */ -google.maps.StreetViewPanoramaOptions.prototype.pov; +google.maps.places.PlacesService.prototype.getDetails = function(request, callback) {}; /** - * @type {boolean} + * @param {google.maps.places.PlaceSearchRequest|Object.} request + * @param {function(Array, google.maps.places.PlacesServiceStatus, + google.maps.places.PlaceSearchPagination)} callback + * @return {undefined} */ -google.maps.StreetViewPanoramaOptions.prototype.scrollwheel; +google.maps.places.PlacesService.prototype.nearbySearch = function(request, callback) {}; /** - * @type {boolean} + * @param {google.maps.places.RadarSearchRequest|Object.} request + * @param {function(Array, google.maps.places.PlacesServiceStatus)} callback + * @return {undefined} */ -google.maps.StreetViewPanoramaOptions.prototype.visible; +google.maps.places.PlacesService.prototype.radarSearch = function(request, callback) {}; /** - * @type {boolean} + * @param {google.maps.places.TextSearchRequest|Object.} request + * @param {function(Array, google.maps.places.PlacesServiceStatus)} callback + * @return {undefined} */ -google.maps.StreetViewPanoramaOptions.prototype.zoomControl; +google.maps.places.PlacesService.prototype.textSearch = function(request, callback) {}; /** - * @type {(google.maps.ZoomControlOptions|Object.)} + * @enum {number|string} */ -google.maps.StreetViewPanoramaOptions.prototype.zoomControlOptions; +google.maps.places.PlacesServiceStatus = { + INVALID_REQUEST: '', + OK: '', + OVER_QUERY_LIMIT: '', + REQUEST_DENIED: '', + UNKNOWN_ERROR: '', + ZERO_RESULTS: '' +}; /** - * @constructor + * @interface */ -google.maps.StreetViewPov = function() {}; +google.maps.places.PredictionSubstring = function() {}; /** * @type {number} */ -google.maps.StreetViewPov.prototype.heading; +google.maps.places.PredictionSubstring.prototype.length; /** * @type {number} */ -google.maps.StreetViewPov.prototype.pitch; +google.maps.places.PredictionSubstring.prototype.offset; + +/** + * @interface + */ +google.maps.places.PredictionTerm = function() {}; /** * @type {number} */ -google.maps.StreetViewPov.prototype.zoom; +google.maps.places.PredictionTerm.prototype.offset; /** - * @constructor + * @type {string} */ -google.maps.StreetViewService = function() {}; +google.maps.places.PredictionTerm.prototype.value; /** - * @param {string} pano - * @param {function(google.maps.StreetViewPanoramaData, google.maps.StreetViewStatus)} callback - * @return {undefined} + * @interface */ -google.maps.StreetViewService.prototype.getPanoramaById = function(pano, callback) {}; +google.maps.places.QueryAutocompletePrediction = function() {}; /** - * @param {google.maps.LatLng} latlng - * @param {number} radius - * @param {function(google.maps.StreetViewPanoramaData, google.maps.StreetViewStatus)} callback - * @return {undefined} + * @type {string} + */ +google.maps.places.QueryAutocompletePrediction.prototype.description; + +/** + * @type {Array} + */ +google.maps.places.QueryAutocompletePrediction.prototype.matched_substrings; + +/** + * @type {string} + */ +google.maps.places.QueryAutocompletePrediction.prototype.place_id; + +/** + * @type {Array} + */ +google.maps.places.QueryAutocompletePrediction.prototype.terms; + +/** + * @interface + */ +google.maps.places.QueryAutocompletionRequest = function() {}; + +/** + * @type {google.maps.LatLngBounds} */ -google.maps.StreetViewService.prototype.getPanoramaByLocation = function(latlng, radius, callback) {}; +google.maps.places.QueryAutocompletionRequest.prototype.bounds; /** - * @enum {string} + * @type {string} */ -google.maps.StreetViewStatus = { - UNKNOWN_ERROR: '', - ZERO_RESULTS: '', - OK: '' -}; +google.maps.places.QueryAutocompletionRequest.prototype.input; /** - * @constructor + * @type {google.maps.LatLng} */ -google.maps.StreetViewTileData = function() {}; +google.maps.places.QueryAutocompletionRequest.prototype.location; /** * @type {number} */ -google.maps.StreetViewTileData.prototype.centerHeading; +google.maps.places.QueryAutocompletionRequest.prototype.offset; /** - * @param {string} pano - * @param {number} tileZoom - * @param {number} tileX - * @param {number} tileY - * @return {string} + * @type {number} */ -google.maps.StreetViewTileData.prototype.getTileUrl = function(pano, tileZoom, tileX, tileY) {}; +google.maps.places.QueryAutocompletionRequest.prototype.radius; /** - * @type {google.maps.Size} + * @interface */ -google.maps.StreetViewTileData.prototype.tileSize; +google.maps.places.RadarSearchRequest = function() {}; /** - * @type {google.maps.Size} + * @type {google.maps.LatLngBounds} */ -google.maps.StreetViewTileData.prototype.worldSize; +google.maps.places.RadarSearchRequest.prototype.bounds; /** - * @param {Array.} styles - * @param {(google.maps.StyledMapTypeOptions|Object.)=} opt_options - * @constructor + * @type {string} */ -google.maps.StyledMapType = function(styles, opt_options) {}; +google.maps.places.RadarSearchRequest.prototype.keyword; /** - * @constructor + * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.StyledMapTypeOptions = function() {}; +google.maps.places.RadarSearchRequest.prototype.location; /** * @type {string} */ -google.maps.StyledMapTypeOptions.prototype.alt; +google.maps.places.RadarSearchRequest.prototype.name; /** * @type {number} */ -google.maps.StyledMapTypeOptions.prototype.maxZoom; +google.maps.places.RadarSearchRequest.prototype.radius; /** - * @type {number} + * @type {Array} */ -google.maps.StyledMapTypeOptions.prototype.minZoom; +google.maps.places.RadarSearchRequest.prototype.types; /** - * @type {string} + * @enum {number|string} */ -google.maps.StyledMapTypeOptions.prototype.name; +google.maps.places.RankBy = { + DISTANCE: '', + PROMINENCE: '' +}; /** + * @param {HTMLInputElement} inputField + * @param {(google.maps.places.SearchBoxOptions|Object.)=} opt_opts * @extends {google.maps.MVCObject} * @constructor */ -google.maps.TrafficLayer = function() {}; +google.maps.places.SearchBox = function(inputField, opt_opts) {}; /** * @nosideeffects - * @return {google.maps.Map} + * @return {google.maps.LatLngBounds} */ -google.maps.TrafficLayer.prototype.getMap = function() {}; +google.maps.places.SearchBox.prototype.getBounds = function() {}; /** - * @param {google.maps.Map} map + * @nosideeffects + * @return {Array} + */ +google.maps.places.SearchBox.prototype.getPlaces = function() {}; + +/** + * @param {google.maps.LatLngBounds} bounds * @return {undefined} */ -google.maps.TrafficLayer.prototype.setMap = function(map) {}; +google.maps.places.SearchBox.prototype.setBounds = function(bounds) {}; /** - * @enum {string} + * @interface */ -google.maps.TravelMode = { - WALKING: '', - DRIVING: '', - BICYCLING: '' -}; +google.maps.places.SearchBoxOptions = function() {}; /** - * @enum {string} + * @type {google.maps.LatLngBounds} */ -google.maps.UnitSystem = { - METRIC: '', - IMPERIAL: '' -}; +google.maps.places.SearchBoxOptions.prototype.bounds; /** - * @constructor + * @interface */ -google.maps.ZoomControlOptions = function() {}; +google.maps.places.TextSearchRequest = function() {}; /** - * @type {google.maps.ControlPosition} + * @type {google.maps.LatLngBounds} */ -google.maps.ZoomControlOptions.prototype.position; +google.maps.places.TextSearchRequest.prototype.bounds; /** - * @type {google.maps.ZoomControlStyle} + * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ -google.maps.ZoomControlOptions.prototype.style; +google.maps.places.TextSearchRequest.prototype.location; /** - * @enum {string} + * @type {string} */ -google.maps.ZoomControlStyle = { - DEFAULT: '', - LARGE: '', - SMALL: '' -}; +google.maps.places.TextSearchRequest.prototype.query; -// Namespace -google.maps.adsense = {}; +/** + * @type {number} + */ +google.maps.places.TextSearchRequest.prototype.radius; /** - * @enum {string} + * @type {Array} */ -google.maps.adsense.AdFormat = { - SMALL_RECTANGLE: '', - SMALL_SQUARE: '', - SQUARE: '', - BUTTON: '', - VERTICAL_BANNER: '', - WIDE_SKYSCRAPER: '', - HALF_BANNER: '', - SKYSCRAPER: '', - MEDIUM_RECTANGLE: '', - LARGE_RECTANGLE: '', - BANNER: '', - LEADERBOARD: '' -}; +google.maps.places.TextSearchRequest.prototype.types; + +// Namespace +google.maps.visualization = {}; /** - * @param {Node} container - * @param {(google.maps.adsense.AdUnitOptions|Object.)} opts + * @param {google.maps.visualization.DynamicMapsEngineLayerOptions|Object.} options * @extends {google.maps.MVCObject} * @constructor */ -google.maps.adsense.AdUnit = function(container, opts) {}; +google.maps.visualization.DynamicMapsEngineLayer = function(options) {}; + +/** + * @param {string} featureId + * @return {google.maps.visualization.FeatureStyle} + */ +google.maps.visualization.DynamicMapsEngineLayer.prototype.getFeatureStyle = function(featureId) {}; /** * @nosideeffects * @return {string} */ -google.maps.adsense.AdUnit.prototype.getChannelNumber = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getLayerId = function() {}; /** * @nosideeffects - * @return {Node} + * @return {string} */ -google.maps.adsense.AdUnit.prototype.getContainer = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getLayerKey = function() {}; /** * @nosideeffects - * @return {google.maps.adsense.AdFormat} + * @return {google.maps.Map} */ -google.maps.adsense.AdUnit.prototype.getFormat = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getMap = function() {}; /** * @nosideeffects - * @return {google.maps.Map} + * @return {string} */ -google.maps.adsense.AdUnit.prototype.getMap = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getMapId = function() {}; /** * @nosideeffects - * @return {google.maps.ControlPosition} + * @return {number} */ -google.maps.adsense.AdUnit.prototype.getPosition = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getOpacity = function() {}; /** * @nosideeffects - * @return {string} + * @return {google.maps.visualization.MapsEngineStatus} */ -google.maps.adsense.AdUnit.prototype.getPublisherId = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.getStatus = function() {}; /** - * @param {string} channelNumber + * @param {string} layerId * @return {undefined} */ -google.maps.adsense.AdUnit.prototype.setChannelNumber = function(channelNumber) {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setLayerId = function(layerId) {}; /** - * @param {google.maps.adsense.AdFormat} format + * @param {string} layerKey * @return {undefined} */ -google.maps.adsense.AdUnit.prototype.setFormat = function(format) {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setLayerKey = function(layerKey) {}; /** * @param {google.maps.Map} map * @return {undefined} */ -google.maps.adsense.AdUnit.prototype.setMap = function(map) {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setMap = function(map) {}; /** - * @param {google.maps.ControlPosition} position + * @param {string} mapId * @return {undefined} */ -google.maps.adsense.AdUnit.prototype.setPosition = function(position) {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setMapId = function(mapId) {}; /** - * @constructor + * @param {number} opacity + * @return {undefined} */ -google.maps.adsense.AdUnitOptions = function() {}; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setOpacity = function(opacity) {}; /** - * @type {string} + * @param {google.maps.visualization.DynamicMapsEngineLayerOptions|Object.} options + * @return {undefined} */ -google.maps.adsense.AdUnitOptions.prototype.channelNumber; +google.maps.visualization.DynamicMapsEngineLayer.prototype.setOptions = function(options) {}; /** - * @type {google.maps.adsense.AdFormat} + * @interface */ -google.maps.adsense.AdUnitOptions.prototype.format; +google.maps.visualization.DynamicMapsEngineLayerOptions = function() {}; /** - * @type {google.maps.Map} + * @type {string} */ -google.maps.adsense.AdUnitOptions.prototype.map; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.accessToken; /** - * @type {google.maps.ControlPosition} + * @type {boolean} */ -google.maps.adsense.AdUnitOptions.prototype.position; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.clickable; /** * @type {string} */ -google.maps.adsense.AdUnitOptions.prototype.publisherId; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.layerId; -// Namespace -google.maps.drawing = {}; +/** + * @type {string} + */ +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.layerKey; /** - * @constructor + * @type {google.maps.Map} */ -google.maps.drawing.DrawingControlOptions = function() {}; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.map; /** - * @type {Array.} + * @type {string} */ -google.maps.drawing.DrawingControlOptions.prototype.drawingModes; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.mapId; /** - * @type {google.maps.ControlPosition} + * @type {number} */ -google.maps.drawing.DrawingControlOptions.prototype.position; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.opacity; /** - * @param {(google.maps.drawing.DrawingManagerOptions|Object.)=} opt_options - * @extends {google.maps.MVCObject} - * @constructor + * @type {boolean} */ -google.maps.drawing.DrawingManager = function(opt_options) {}; +google.maps.visualization.DynamicMapsEngineLayerOptions.prototype.suppressInfoWindows; /** - * @nosideeffects - * @return {?google.maps.drawing.OverlayType} + * @interface */ -google.maps.drawing.DrawingManager.prototype.getDrawingMode = function() {}; +google.maps.visualization.DynamicMapsEngineMouseEvent = function() {}; /** - * @nosideeffects - * @return {google.maps.Map} + * @type {string} */ -google.maps.drawing.DrawingManager.prototype.getMap = function() {}; +google.maps.visualization.DynamicMapsEngineMouseEvent.prototype.featureId; /** - * @param {?google.maps.drawing.OverlayType} drawingMode - * @return {undefined} + * @type {google.maps.LatLng} */ -google.maps.drawing.DrawingManager.prototype.setDrawingMode = function(drawingMode) {}; +google.maps.visualization.DynamicMapsEngineMouseEvent.prototype.latLng; /** - * @param {google.maps.Map} map + * @param {function(google.maps.visualization.MapsEngineMouseEvent)} callback * @return {undefined} */ -google.maps.drawing.DrawingManager.prototype.setMap = function(map) {}; +google.maps.visualization.DynamicMapsEngineMouseEvent.prototype.getDetails = function(callback) {}; /** - * @constructor + * @interface */ -google.maps.drawing.DrawingManagerOptions = function() {}; +google.maps.visualization.FeatureStyle = function() {}; /** - * @type {(google.maps.CircleOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.circleOptions; +google.maps.visualization.FeatureStyle.prototype.fillColor; /** - * @type {boolean} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.drawingControl; +google.maps.visualization.FeatureStyle.prototype.fillOpacity; /** - * @type {(google.maps.drawing.DrawingControlOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.drawingControlOptions; +google.maps.visualization.FeatureStyle.prototype.iconAnchor; /** - * @type {?google.maps.drawing.OverlayType} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.drawingMode; +google.maps.visualization.FeatureStyle.prototype.iconClip; /** - * @type {google.maps.Map} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.map; +google.maps.visualization.FeatureStyle.prototype.iconImage; /** - * @type {(google.maps.MarkerOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.markerOptions; +google.maps.visualization.FeatureStyle.prototype.iconOpacity; + +/** + * @type {string} + */ +google.maps.visualization.FeatureStyle.prototype.iconSize; /** - * @type {(google.maps.PolygonOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.polygonOptions; +google.maps.visualization.FeatureStyle.prototype.strokeColor; /** - * @type {(google.maps.PolylineOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.polylineOptions; +google.maps.visualization.FeatureStyle.prototype.strokeOpacity; + +/** + * @type {string} + */ +google.maps.visualization.FeatureStyle.prototype.strokeWidth; /** - * @type {(google.maps.RectangleOptions|Object.)} + * @type {string} */ -google.maps.drawing.DrawingManagerOptions.prototype.rectangleOptions; +google.maps.visualization.FeatureStyle.prototype.zIndex; + +/** + * @param {string} property + * @return {undefined} + */ +google.maps.visualization.FeatureStyle.prototype.reset = function(property) {}; + +/** + * @return {undefined} + */ +google.maps.visualization.FeatureStyle.prototype.resetAll = function() {}; /** + * @param {(google.maps.visualization.HeatmapLayerOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} * @constructor */ -google.maps.drawing.OverlayCompleteEvent = function() {}; +google.maps.visualization.HeatmapLayer = function(opt_opts) {}; /** - * @type {google.maps.Marker|google.maps.Polygon|google.maps.Polyline|google.maps.Rectangle|google.maps.Circle} + * @nosideeffects + * @return {google.maps.MVCArray} */ -google.maps.drawing.OverlayCompleteEvent.prototype.overlay; +google.maps.visualization.HeatmapLayer.prototype.getData = function() {}; /** - * @type {google.maps.drawing.OverlayType} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.drawing.OverlayCompleteEvent.prototype.type; +google.maps.visualization.HeatmapLayer.prototype.getMap = function() {}; /** - * @enum {string} + * @param {google.maps.MVCArray| + Array} data + * @return {undefined} */ -google.maps.drawing.OverlayType = { - MARKER: '', - CIRCLE: '', - POLYLINE: '', - POLYGON: '', - RECTANGLE: '' -}; +google.maps.visualization.HeatmapLayer.prototype.setData = function(data) {}; -// Namespace -google.maps.event = {}; +/** + * @param {google.maps.Map} map + * @return {undefined} + */ +google.maps.visualization.HeatmapLayer.prototype.setMap = function(map) {}; /** - * @param {Object} instance - * @param {string} eventName - * @param {function(...[*])} handler - * @param {boolean=} opt_capture - * @return {google.maps.MapsEventListener} + * @interface */ -google.maps.event.addDomListener = function(instance, eventName, handler, opt_capture) {}; +google.maps.visualization.HeatmapLayerOptions = function() {}; /** - * @param {Object} instance - * @param {string} eventName - * @param {function(...[*])} handler - * @param {boolean=} opt_capture - * @return {google.maps.MapsEventListener} + * @type {google.maps.MVCArray} */ -google.maps.event.addDomListenerOnce = function(instance, eventName, handler, opt_capture) {}; +google.maps.visualization.HeatmapLayerOptions.prototype.data; /** - * @param {Object} instance - * @param {string} eventName - * @param {function(...[*])} handler - * @return {google.maps.MapsEventListener} + * @type {boolean} */ -google.maps.event.addListener = function(instance, eventName, handler) {}; +google.maps.visualization.HeatmapLayerOptions.prototype.dissipating; /** - * @param {Object} instance - * @param {string} eventName - * @param {function(...[*])} handler - * @return {google.maps.MapsEventListener} + * @type {Array} */ -google.maps.event.addListenerOnce = function(instance, eventName, handler) {}; +google.maps.visualization.HeatmapLayerOptions.prototype.gradient; /** - * @param {Object} instance - * @return {undefined} + * @type {google.maps.Map} */ -google.maps.event.clearInstanceListeners = function(instance) {}; +google.maps.visualization.HeatmapLayerOptions.prototype.map; /** - * @param {Object} instance - * @param {string} eventName - * @return {undefined} + * @type {number} */ -google.maps.event.clearListeners = function(instance, eventName) {}; +google.maps.visualization.HeatmapLayerOptions.prototype.maxIntensity; + +/** + * @type {number} + */ +google.maps.visualization.HeatmapLayerOptions.prototype.opacity; + +/** + * @type {number} + */ +google.maps.visualization.HeatmapLayerOptions.prototype.radius; /** - * @param {google.maps.MapsEventListener} listener - * @return {undefined} + * @param {google.maps.visualization.MapsEngineLayerOptions|Object.} options + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.event.removeListener = function(listener) {}; +google.maps.visualization.MapsEngineLayer = function(options) {}; /** - * @param {Object} instance - * @param {string} eventName - * @param {...*} var_args - * @return {undefined} + * @nosideeffects + * @return {string} */ -google.maps.event.trigger = function(instance, eventName, var_args) {}; +google.maps.visualization.MapsEngineLayer.prototype.getLayerId = function() {}; -// Namespace -google.maps.geometry = {}; - -// Namespace -google.maps.geometry.encoding = {}; +/** + * @nosideeffects + * @return {string} + */ +google.maps.visualization.MapsEngineLayer.prototype.getLayerKey = function() {}; /** - * @param {string} encodedPath - * @return {Array.} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.geometry.encoding.decodePath = function(encodedPath) {}; +google.maps.visualization.MapsEngineLayer.prototype.getMap = function() {}; /** - * @param {Array.|google.maps.MVCArray.} path + * @nosideeffects * @return {string} */ -google.maps.geometry.encoding.encodePath = function(path) {}; - -// Namespace -google.maps.geometry.spherical = {}; +google.maps.visualization.MapsEngineLayer.prototype.getMapId = function() {}; /** - * @param {Array.|google.maps.MVCArray.} loop - * @param {number=} opt_radius + * @nosideeffects * @return {number} */ -google.maps.geometry.spherical.computeArea = function(loop, opt_radius) {}; +google.maps.visualization.MapsEngineLayer.prototype.getOpacity = function() {}; /** - * @param {google.maps.LatLng} from - * @param {google.maps.LatLng} to - * @param {number=} opt_radius - * @return {number} + * @nosideeffects + * @return {google.maps.visualization.MapsEngineLayerProperties} */ -google.maps.geometry.spherical.computeDistanceBetween = function(from, to, opt_radius) {}; +google.maps.visualization.MapsEngineLayer.prototype.getProperties = function() {}; /** - * @param {google.maps.LatLng} from - * @param {google.maps.LatLng} to - * @return {number} + * @nosideeffects + * @return {google.maps.visualization.MapsEngineStatus} */ -google.maps.geometry.spherical.computeHeading = function(from, to) {}; +google.maps.visualization.MapsEngineLayer.prototype.getStatus = function() {}; /** - * @param {Array.|google.maps.MVCArray.} path - * @param {number=} opt_radius + * @nosideeffects * @return {number} */ -google.maps.geometry.spherical.computeLength = function(path, opt_radius) {}; +google.maps.visualization.MapsEngineLayer.prototype.getZIndex = function() {}; /** - * @param {google.maps.LatLng} from - * @param {number} distance - * @param {number} heading - * @param {number=} opt_radius - * @return {google.maps.LatLng} + * @param {string} layerId + * @return {undefined} */ -google.maps.geometry.spherical.computeOffset = function(from, distance, heading, opt_radius) {}; +google.maps.visualization.MapsEngineLayer.prototype.setLayerId = function(layerId) {}; /** - * @param {Array.|google.maps.MVCArray.} loop - * @param {number=} opt_radius - * @return {number} + * @param {string} layerKey + * @return {undefined} */ -google.maps.geometry.spherical.computeSignedArea = function(loop, opt_radius) {}; +google.maps.visualization.MapsEngineLayer.prototype.setLayerKey = function(layerKey) {}; /** - * @param {google.maps.LatLng} from - * @param {google.maps.LatLng} to - * @param {number} fraction - * @return {google.maps.LatLng} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.geometry.spherical.interpolate = function(from, to, fraction) {}; - -// Namespace -google.maps.panoramio = {}; +google.maps.visualization.MapsEngineLayer.prototype.setMap = function(map) {}; /** - * @constructor + * @param {string} mapId + * @return {undefined} */ -google.maps.panoramio.PanoramioFeature = function() {}; +google.maps.visualization.MapsEngineLayer.prototype.setMapId = function(mapId) {}; /** - * @type {string} + * @param {number} opacity + * @return {undefined} */ -google.maps.panoramio.PanoramioFeature.prototype.author; +google.maps.visualization.MapsEngineLayer.prototype.setOpacity = function(opacity) {}; /** - * @type {string} + * @param {google.maps.visualization.MapsEngineLayerOptions|Object.} options + * @return {undefined} */ -google.maps.panoramio.PanoramioFeature.prototype.photoId; +google.maps.visualization.MapsEngineLayer.prototype.setOptions = function(options) {}; /** - * @type {string} + * @param {number} zIndex + * @return {undefined} */ -google.maps.panoramio.PanoramioFeature.prototype.title; +google.maps.visualization.MapsEngineLayer.prototype.setZIndex = function(zIndex) {}; /** - * @type {string} + * @interface */ -google.maps.panoramio.PanoramioFeature.prototype.url; +google.maps.visualization.MapsEngineLayerOptions = function() {}; /** * @type {string} */ -google.maps.panoramio.PanoramioFeature.prototype.userId; +google.maps.visualization.MapsEngineLayerOptions.prototype.accessToken; /** - * @param {(google.maps.panoramio.PanoramioLayerOptions|Object.)=} opt_opts - * @extends {google.maps.MVCObject} - * @constructor + * @type {boolean} */ -google.maps.panoramio.PanoramioLayer = function(opt_opts) {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.clickable; /** - * @nosideeffects - * @return {google.maps.Map} + * @type {boolean} */ -google.maps.panoramio.PanoramioLayer.prototype.getMap = function() {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.fitBounds; /** - * @nosideeffects - * @return {string} + * @type {string} */ -google.maps.panoramio.PanoramioLayer.prototype.getTag = function() {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.layerId; /** - * @nosideeffects - * @return {string} + * @type {string} */ -google.maps.panoramio.PanoramioLayer.prototype.getUserId = function() {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.layerKey; /** - * @param {google.maps.Map} map - * @return {undefined} + * @type {google.maps.Map} */ -google.maps.panoramio.PanoramioLayer.prototype.setMap = function(map) {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.map; /** - * @param {(google.maps.panoramio.PanoramioLayerOptions|Object.)} options - * @return {undefined} + * @type {string} */ -google.maps.panoramio.PanoramioLayer.prototype.setOptions = function(options) {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.mapId; /** - * @param {string} tag - * @return {undefined} + * @type {number} */ -google.maps.panoramio.PanoramioLayer.prototype.setTag = function(tag) {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.opacity; /** - * @param {string} userId - * @return {undefined} + * @type {boolean} */ -google.maps.panoramio.PanoramioLayer.prototype.setUserId = function(userId) {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.suppressInfoWindows; /** - * @constructor + * @type {number} */ -google.maps.panoramio.PanoramioLayerOptions = function() {}; +google.maps.visualization.MapsEngineLayerOptions.prototype.zIndex; /** - * @type {boolean} + * @interface */ -google.maps.panoramio.PanoramioLayerOptions.prototype.clickable; +google.maps.visualization.MapsEngineLayerProperties = function() {}; /** - * @type {google.maps.Map} + * @type {string} */ -google.maps.panoramio.PanoramioLayerOptions.prototype.map; +google.maps.visualization.MapsEngineLayerProperties.prototype.name; /** - * @type {boolean} + * @interface */ -google.maps.panoramio.PanoramioLayerOptions.prototype.suppressInfoWindows; +google.maps.visualization.MapsEngineMouseEvent = function() {}; /** * @type {string} */ -google.maps.panoramio.PanoramioLayerOptions.prototype.tag; +google.maps.visualization.MapsEngineMouseEvent.prototype.featureId; /** * @type {string} */ -google.maps.panoramio.PanoramioLayerOptions.prototype.userId; +google.maps.visualization.MapsEngineMouseEvent.prototype.infoWindowHtml; /** - * @constructor + * @type {google.maps.LatLng} */ -google.maps.panoramio.PanoramioMouseEvent = function() {}; +google.maps.visualization.MapsEngineMouseEvent.prototype.latLng; /** - * @type {google.maps.panoramio.PanoramioFeature} + * @type {google.maps.Size} */ -google.maps.panoramio.PanoramioMouseEvent.prototype.featureDetails; +google.maps.visualization.MapsEngineMouseEvent.prototype.pixelOffset; /** - * @type {string} + * @enum {number|string} */ -google.maps.panoramio.PanoramioMouseEvent.prototype.infoWindowHtml; +google.maps.visualization.MapsEngineStatus = { + INVALID_LAYER: '', + OK: '', + UNKNOWN_ERROR: '' +}; + +/** + * @interface + */ +google.maps.visualization.WeightedLocation = function() {}; /** * @type {google.maps.LatLng} */ -google.maps.panoramio.PanoramioMouseEvent.prototype.latLng; +google.maps.visualization.WeightedLocation.prototype.location; /** - * @type {google.maps.Size} + * @type {number} */ -google.maps.panoramio.PanoramioMouseEvent.prototype.pixelOffset; +google.maps.visualization.WeightedLocation.prototype.weight; // Namespace -google.maps.places = {}; +google.maps.weather = {}; /** - * @param {HTMLInputElement} inputField - * @param {(google.maps.places.AutocompleteOptions|Object.)=} opt_opts * @extends {google.maps.MVCObject} * @constructor */ -google.maps.places.Autocomplete = function(inputField, opt_opts) {}; +google.maps.weather.CloudLayer = function() {}; /** * @nosideeffects - * @return {google.maps.LatLngBounds} + * @return {google.maps.Map} */ -google.maps.places.Autocomplete.prototype.getBounds = function() {}; +google.maps.weather.CloudLayer.prototype.getMap = function() {}; /** - * @nosideeffects - * @return {google.maps.places.PlaceResult} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.places.Autocomplete.prototype.getPlace = function() {}; +google.maps.weather.CloudLayer.prototype.setMap = function(map) {}; /** - * @param {google.maps.LatLngBounds} bounds - * @return {undefined} + * @enum {number|string} */ -google.maps.places.Autocomplete.prototype.setBounds = function(bounds) {}; +google.maps.weather.LabelColor = { + BLACK: '', + WHITE: '' +}; /** - * @param {Array.} types - * @return {undefined} + * @enum {number|string} */ -google.maps.places.Autocomplete.prototype.setTypes = function(types) {}; +google.maps.weather.TemperatureUnit = { + CELSIUS: '', + FAHRENHEIT: '' +}; /** - * @constructor + * @interface */ -google.maps.places.AutocompleteOptions = function() {}; +google.maps.weather.WeatherConditions = function() {}; /** - * @type {google.maps.LatLngBounds} + * @type {string} */ -google.maps.places.AutocompleteOptions.prototype.bounds; +google.maps.weather.WeatherConditions.prototype.day; /** - * @type {Array.} + * @type {string} */ -google.maps.places.AutocompleteOptions.prototype.types; +google.maps.weather.WeatherConditions.prototype.description; /** - * @constructor + * @type {number} */ -google.maps.places.PlaceDetailsRequest = function() {}; +google.maps.weather.WeatherConditions.prototype.high; + +/** + * @type {number} + */ +google.maps.weather.WeatherConditions.prototype.humidity; + +/** + * @type {number} + */ +google.maps.weather.WeatherConditions.prototype.low; /** * @type {string} */ -google.maps.places.PlaceDetailsRequest.prototype.reference; +google.maps.weather.WeatherConditions.prototype.shortDay; /** - * @constructor + * @type {number} */ -google.maps.places.PlaceGeometry = function() {}; +google.maps.weather.WeatherConditions.prototype.temperature; /** - * @type {google.maps.LatLng} + * @type {string} */ -google.maps.places.PlaceGeometry.prototype.location; +google.maps.weather.WeatherConditions.prototype.windDirection; /** - * @type {google.maps.LatLngBounds} + * @type {number} */ -google.maps.places.PlaceGeometry.prototype.viewport; +google.maps.weather.WeatherConditions.prototype.windSpeed; /** - * @constructor + * @interface */ -google.maps.places.PlaceResult = function() {}; +google.maps.weather.WeatherFeature = function() {}; /** - * @type {Array.} + * @type {google.maps.weather.WeatherConditions} */ -google.maps.places.PlaceResult.prototype.address_components; +google.maps.weather.WeatherFeature.prototype.current; /** - * @type {string} + * @type {Array} */ -google.maps.places.PlaceResult.prototype.formatted_address; +google.maps.weather.WeatherFeature.prototype.forecast; /** * @type {string} */ -google.maps.places.PlaceResult.prototype.formatted_phone_number; +google.maps.weather.WeatherFeature.prototype.location; /** - * @type {google.maps.places.PlaceGeometry} + * @type {google.maps.weather.TemperatureUnit} */ -google.maps.places.PlaceResult.prototype.geometry; +google.maps.weather.WeatherFeature.prototype.temperatureUnit; /** - * @type {string} + * @type {google.maps.weather.WindSpeedUnit} */ -google.maps.places.PlaceResult.prototype.html_attributions; +google.maps.weather.WeatherFeature.prototype.windSpeedUnit; /** - * @type {string} + * @interface */ -google.maps.places.PlaceResult.prototype.icon; +google.maps.weather.WeatherForecast = function() {}; /** * @type {string} */ -google.maps.places.PlaceResult.prototype.id; +google.maps.weather.WeatherForecast.prototype.day; /** * @type {string} */ -google.maps.places.PlaceResult.prototype.international_phone_number; +google.maps.weather.WeatherForecast.prototype.description; /** - * @type {string} + * @type {number} */ -google.maps.places.PlaceResult.prototype.name; +google.maps.weather.WeatherForecast.prototype.high; /** * @type {number} */ -google.maps.places.PlaceResult.prototype.rating; +google.maps.weather.WeatherForecast.prototype.low; /** * @type {string} */ -google.maps.places.PlaceResult.prototype.reference; +google.maps.weather.WeatherForecast.prototype.shortDay; /** - * @type {Array.} + * @param {(google.maps.weather.WeatherLayerOptions|Object.)=} opt_opts + * @extends {google.maps.MVCObject} + * @constructor */ -google.maps.places.PlaceResult.prototype.types; +google.maps.weather.WeatherLayer = function(opt_opts) {}; /** - * @type {string} + * @nosideeffects + * @return {google.maps.Map} */ -google.maps.places.PlaceResult.prototype.url; +google.maps.weather.WeatherLayer.prototype.getMap = function() {}; /** - * @type {string} + * @param {google.maps.Map} map + * @return {undefined} */ -google.maps.places.PlaceResult.prototype.vicinity; +google.maps.weather.WeatherLayer.prototype.setMap = function(map) {}; /** - * @type {string} + * @param {google.maps.weather.WeatherLayerOptions|Object.} options + * @return {undefined} */ -google.maps.places.PlaceResult.prototype.website; +google.maps.weather.WeatherLayer.prototype.setOptions = function(options) {}; /** - * @constructor + * @interface */ -google.maps.places.PlaceSearchRequest = function() {}; +google.maps.weather.WeatherLayerOptions = function() {}; /** - * @type {google.maps.LatLngBounds} + * @type {boolean} */ -google.maps.places.PlaceSearchRequest.prototype.bounds; +google.maps.weather.WeatherLayerOptions.prototype.clickable; /** - * @type {string} + * @type {google.maps.weather.LabelColor} */ -google.maps.places.PlaceSearchRequest.prototype.keyword; +google.maps.weather.WeatherLayerOptions.prototype.labelColor; /** - * @type {google.maps.LatLng} + * @type {google.maps.Map} */ -google.maps.places.PlaceSearchRequest.prototype.location; +google.maps.weather.WeatherLayerOptions.prototype.map; /** - * @type {string} + * @type {boolean} */ -google.maps.places.PlaceSearchRequest.prototype.name; +google.maps.weather.WeatherLayerOptions.prototype.suppressInfoWindows; /** - * @type {number} + * @type {google.maps.weather.TemperatureUnit} */ -google.maps.places.PlaceSearchRequest.prototype.radius; +google.maps.weather.WeatherLayerOptions.prototype.temperatureUnits; /** - * @type {Array.} + * @type {google.maps.weather.WindSpeedUnit} */ -google.maps.places.PlaceSearchRequest.prototype.types; +google.maps.weather.WeatherLayerOptions.prototype.windSpeedUnits; /** - * @param {HTMLDivElement|google.maps.Map} attrContainer - * @constructor + * @interface */ -google.maps.places.PlacesService = function(attrContainer) {}; +google.maps.weather.WeatherMouseEvent = function() {}; /** - * @param {(google.maps.places.PlaceDetailsRequest|Object.)} request - * @param {function(google.maps.places.PlaceResult, google.maps.places.PlacesServiceStatus)} callback - * @return {undefined} + * @type {google.maps.weather.WeatherFeature} */ -google.maps.places.PlacesService.prototype.getDetails = function(request, callback) {}; +google.maps.weather.WeatherMouseEvent.prototype.featureDetails; /** - * @param {(google.maps.places.PlaceSearchRequest|Object.)} request - * @param {function(Array., google.maps.places.PlacesServiceStatus)} callback - * @return {undefined} + * @type {string} */ -google.maps.places.PlacesService.prototype.search = function(request, callback) {}; +google.maps.weather.WeatherMouseEvent.prototype.infoWindowHtml; /** - * @enum {string} + * @type {google.maps.LatLng} */ -google.maps.places.PlacesServiceStatus = { - OK: '', - ZERO_RESULTS: '', - INVALID_REQUEST: '', - UNKNOWN_ERROR: '', - REQUEST_DENIED: '', - OVER_QUERY_LIMIT: '' +google.maps.weather.WeatherMouseEvent.prototype.latLng; + +/** + * @type {google.maps.Size} + */ +google.maps.weather.WeatherMouseEvent.prototype.pixelOffset; + +/** + * @enum {number|string} + */ +google.maps.weather.WindSpeedUnit = { + KILOMETERS_PER_HOUR: '', + METERS_PER_SECOND: '', + MILES_PER_HOUR: '' }; From f1b887edf5dab3ab8613c9b9831ceb256a6d9386 Mon Sep 17 00:00:00 2001 From: viskin Date: Sat, 4 Apr 2015 15:36:22 +0300 Subject: [PATCH 8/9] Access getGhostPosition() accessor instead of ghostPosition property everywhere, for Google Maps API compliance. --- lib/oms.coffee | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/oms.coffee b/lib/oms.coffee index d44736a..ee32b5b 100644 --- a/lib/oms.coffee +++ b/lib/oms.coffee @@ -145,10 +145,10 @@ class @['OverlappingMarkerSpiderfier'] nonNearbyMarkers = [] nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.ghostPosition) + markerPt = @llToPt(marker.getGhostPosition()) for m in @markers continue unless m.map? and m.getVisible() # at 2011-08-12, property m.visible is undefined in API v3.5 - mPt = @llToPt(m.ghostPosition) + mPt = @llToPt(m.getGhostPosition()) if @ptDistanceSq(mPt, markerPt) < pxSq nearbyMarkerData.push(marker: m, markerPt: mPt) else @@ -163,11 +163,11 @@ class @['OverlappingMarkerSpiderfier'] throw "Must wait for 'idle' event on map before calling markersNearMarker" nDist = @['nearbyDistance'] pxSq = nDist * nDist - markerPt = @llToPt(marker.ghostPosition) + markerPt = @llToPt(marker.getGhostPosition()) markers = [] for m in @markers continue if m is marker or not m.map? or not m.getVisible() - mPt = @llToPt(m['_omsData']?.usualPosition ? m.ghostPosition) + mPt = @llToPt(m['_omsData']?.usualPosition ? m.getGhostPosition()) if @ptDistanceSq(mPt, markerPt) < pxSq markers.push(m) break if firstOnly @@ -179,7 +179,7 @@ class @['OverlappingMarkerSpiderfier'] nDist = @['nearbyDistance'] pxSq = nDist * nDist mData = for m in @markers - {pt: @llToPt(m['_omsData']?.usualPosition ? m.ghostPosition), willSpiderfy: no} + {pt: @llToPt(m['_omsData']?.usualPosition ? m.getGhostPosition()), willSpiderfy: no} for m1, i1 in @markers continue unless m1.map? and m1.getVisible() m1Data = mData[i1] @@ -218,12 +218,12 @@ class @['OverlappingMarkerSpiderfier'] marker = nearestMarkerDatum.marker leg = new gm.Polyline map: @map - path: [marker.ghostPosition, footLl] + path: [marker.getGhostPosition(), footLl] strokeColor: @['legColors']['usual'][@map.mapTypeId] strokeWeight: @['legWeight'] zIndex: @['usualLegZIndex'] marker['_omsData'] = - usualPosition: marker.ghostPosition + usualPosition: marker.getGhostPosition() leg: leg unless @['legColors']['highlighted'][@map.mapTypeId] is @['legColors']['usual'][@map.mapTypeId] From 516de9f0baaa8d58ce6ced792aa7067a2d5df7db Mon Sep 17 00:00:00 2001 From: viskin Date: Thu, 28 May 2015 18:08:58 +0300 Subject: [PATCH 9/9] Updated google API to 3.20 --- build/build.bat | 4 +- build/build.sh | 2 +- ..._api_v3_19.js => google_maps_api_v3_20.js} | 108 +++++++++++++++--- 3 files changed, 92 insertions(+), 22 deletions(-) rename build/{google_maps_api_v3_19.js => google_maps_api_v3_20.js} (98%) diff --git a/build/build.bat b/build/build.bat index 8e66d56..5b86344 100644 --- a/build/build.bat +++ b/build/build.bat @@ -5,14 +5,14 @@ set OUTDIR=.\tmp\ set OUTNAME=%INPREFIX%.min.js set OUTFILE=%OUTDIR%%OUTNAME% -call coffee --output %OUTDIR% --compile %INDIR%%INPREFIX%.coffee +call coffee --output %OUTDIR% --map --compile %INDIR%%INPREFIX%.coffee @set JARPATH=c:\Dev\closure-compiler\compiler.jar java -jar "%JARPATH%" ^ --compilation_level ADVANCED_OPTIMIZATIONS ^ --js "%OUTDIR%%INPREFIX%.js" ^ - --externs google_maps_api_v3_19.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js ^ + --externs google_maps_api_v3_20.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js ^ --output_wrapper ;(function(){%%output%%}).call(this); ^ > "%OUTFILE%" diff --git a/build/build.sh b/build/build.sh index f8f1a79..97ace64 100755 --- a/build/build.sh +++ b/build/build.sh @@ -12,7 +12,7 @@ coffee --output $OUTDIR --compile ${INDIR}${INPREFIX}.coffee java -jar /usr/local/closure-compiler/compiler.jar \ --compilation_level ADVANCED_OPTIMIZATIONS \ --js ${OUTDIR}${INPREFIX}.js \ - --externs google_maps_api_v3_19.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js \ + --externs google_maps_api_v3_20.js SlidingMarker.annotations.js MarkerWithGhost.annotations.js \ --output_wrapper '(function(){%output%}).call(this);' \ > $OUTFILE diff --git a/build/google_maps_api_v3_19.js b/build/google_maps_api_v3_20.js similarity index 98% rename from build/google_maps_api_v3_19.js rename to build/google_maps_api_v3_20.js index 46c1673..2614b2a 100644 --- a/build/google_maps_api_v3_19.js +++ b/build/google_maps_api_v3_20.js @@ -15,7 +15,7 @@ */ /** - * @fileoverview Externs for the Google Maps v3.19 API. + * @fileoverview Externs for the Google Maps v3.20 API. * @see http://code.google.com/apis/maps/documentation/javascript/reference.html * @externs */ @@ -284,6 +284,24 @@ google.maps.Data.prototype.contains = function(feature) {}; */ google.maps.Data.prototype.forEach = function(callback) {}; +/** + * @nosideeffects + * @return {google.maps.ControlPosition} + */ +google.maps.Data.prototype.getControlPosition = function() {}; + +/** + * @nosideeffects + * @return {Array} + */ +google.maps.Data.prototype.getControls = function() {}; + +/** + * @nosideeffects + * @return {?string} + */ +google.maps.Data.prototype.getDrawingMode = function() {}; + /** * @param {number|string} id * @return {google.maps.Data.Feature|undefined} @@ -329,6 +347,24 @@ google.maps.Data.prototype.remove = function(feature) {}; */ google.maps.Data.prototype.revertStyle = function(opt_feature) {}; +/** + * @param {google.maps.ControlPosition} controlPosition + * @return {undefined} + */ +google.maps.Data.prototype.setControlPosition = function(controlPosition) {}; + +/** + * @param {Array} controls + * @return {undefined} + */ +google.maps.Data.prototype.setControls = function(controls) {}; + +/** + * @param {?string} drawingMode + * @return {undefined} + */ +google.maps.Data.prototype.setDrawingMode = function(drawingMode) {}; + /** * @param {google.maps.Map} map * @return {undefined} @@ -362,6 +398,26 @@ google.maps.Data.AddFeatureEvent.prototype.feature; */ google.maps.Data.DataOptions = function() {}; +/** + * @type {google.maps.ControlPosition} + */ +google.maps.Data.DataOptions.prototype.controlPosition; + +/** + * @type {Array} + */ +google.maps.Data.DataOptions.prototype.controls; + +/** + * @type {string} + */ +google.maps.Data.DataOptions.prototype.drawingMode; + +/** + * @type {function(google.maps.Data.Geometry): google.maps.Data.Feature} + */ +google.maps.Data.DataOptions.prototype.featureFactory; + /** * @type {google.maps.Map} */ @@ -813,6 +869,16 @@ google.maps.Data.StyleOptions.prototype.clickable; */ google.maps.Data.StyleOptions.prototype.cursor; +/** + * @type {boolean} + */ +google.maps.Data.StyleOptions.prototype.draggable; + +/** + * @type {boolean} + */ +google.maps.Data.StyleOptions.prototype.editable; + /** * @type {string} */ @@ -2108,6 +2174,11 @@ google.maps.ImageMapTypeOptions = function() {}; */ google.maps.ImageMapTypeOptions.prototype.alt; +/** + * @type {function(google.maps.Point, number): string} + */ +google.maps.ImageMapTypeOptions.prototype.getTileUrl; + /** * @type {number} */ @@ -2133,13 +2204,6 @@ google.maps.ImageMapTypeOptions.prototype.opacity; */ google.maps.ImageMapTypeOptions.prototype.tileSize; -/** - * @param {google.maps.Point} coordinate - * @param {number} zoom - * @return {string} - */ -google.maps.ImageMapTypeOptions.prototype.getTileUrl = function(coordinate, zoom) {}; - /** * @param {(google.maps.InfoWindowOptions|Object.)=} opt_opts * @extends {google.maps.MVCObject} @@ -4635,6 +4699,11 @@ google.maps.StreetViewPanoramaOptions.prototype.panControlOptions; */ google.maps.StreetViewPanoramaOptions.prototype.pano; +/** + * @type {function(string): google.maps.StreetViewPanoramaData} + */ +google.maps.StreetViewPanoramaOptions.prototype.panoProvider; + /** * @type {google.maps.LatLng|google.maps.LatLngLiteral} */ @@ -4665,12 +4734,6 @@ google.maps.StreetViewPanoramaOptions.prototype.zoomControl; */ google.maps.StreetViewPanoramaOptions.prototype.zoomControlOptions; -/** - * @param {string} panoId - * @return {google.maps.StreetViewPanoramaData} - */ -google.maps.StreetViewPanoramaOptions.prototype.panoProvider = function(panoId) {}; - /** * @constructor */ @@ -5541,7 +5604,7 @@ google.maps.event = {}; /** * @param {Object} instance * @param {string} eventName - * @param {!Function} handler + * @param {function(?)|null} handler * @param {boolean=} opt_capture * @return {google.maps.MapsEventListener} */ @@ -5550,7 +5613,7 @@ google.maps.event.addDomListener = function(instance, eventName, handler, opt_ca /** * @param {Object} instance * @param {string} eventName - * @param {!Function} handler + * @param {function(?)} handler * @param {boolean=} opt_capture * @return {google.maps.MapsEventListener} */ @@ -5559,7 +5622,7 @@ google.maps.event.addDomListenerOnce = function(instance, eventName, handler, op /** * @param {Object} instance * @param {string} eventName - * @param {!Function} handler + * @param {function(?)|null} handler * @return {google.maps.MapsEventListener} */ google.maps.event.addListener = function(instance, eventName, handler) {}; @@ -5567,7 +5630,7 @@ google.maps.event.addListener = function(instance, eventName, handler) {}; /** * @param {Object} instance * @param {string} eventName - * @param {!Function} handler + * @param {function(?)|null} handler * @return {google.maps.MapsEventListener} */ google.maps.event.addListenerOnce = function(instance, eventName, handler) {}; @@ -6308,7 +6371,8 @@ google.maps.places.PlacesService.prototype.radarSearch = function(request, callb /** * @param {google.maps.places.TextSearchRequest|Object.} request - * @param {function(Array, google.maps.places.PlacesServiceStatus)} callback + * @param {function(Array, google.maps.places.PlacesServiceStatus, + google.maps.places.PlaceSearchPagination)} callback * @return {undefined} */ google.maps.places.PlacesService.prototype.textSearch = function(request, callback) {}; @@ -6776,6 +6840,12 @@ google.maps.visualization.HeatmapLayer.prototype.setData = function(data) {}; */ google.maps.visualization.HeatmapLayer.prototype.setMap = function(map) {}; +/** + * @param {google.maps.visualization.HeatmapLayerOptions|Object.} options + * @return {undefined} + */ +google.maps.visualization.HeatmapLayer.prototype.setOptions = function(options) {}; + /** * @interface */