{"version":3,"sources":["src/geolocation-marker.js"," [synthetic:es6/util/inherits] ","src/geolocation-marker-exports.js"],"names":["constructor","GeolocationMarker","opt_map","opt_outerMarkerOpts","opt_markerOpts","opt_circleOpts","outerMarker_","marker_","circle_","watchId_","outerMarkerOpts","google","maps","SymbolPath","CIRCLE","LatLng","markerOpts","copyOptions_","circleOpts","Marker","Circle","MVCObject","prototype","set","call","enableHighAccuracy","maximumAge","bindTo","setMap","$jscomp.inherits","GeolocationMarker$$module$src$geolocation_marker.prototype","?.prototype","key","value","GeolocationMarker$$module$src$geolocation_marker.invalidPropertiesExpr_.test","test","GeolocationMarker$$module$src$geolocation_marker_prototype$getMap","getMap","get","getPositionOptions","setPositionOptions","positionOpts","GeolocationMarker$$module$src$geolocation_marker_prototype$getPosition","getPosition","GeolocationMarker$$module$src$geolocation_marker_prototype$getBounds","getBounds","getAccuracy","getMinimumAccuracy","setMinimumAccuracy","accuracy","map","navigator","geolocation","watchPosition_","watchPosition","updatePosition_","bind","geolocationError_","unbind","clearWatch","setMarkerOptions","setOptions","setCircleOptions","position","newPosition","coords","latitude","longitude","mapNotSet","equals","data","event","trigger","target","source","opt","GeolocationMarker$$module$src$geolocation_marker.DISALLOWED_OPTIONS","GeolocationMarker$$module$src$geolocation_marker.invalidPropertiesExpr_","window","root","factory"],"mappings":"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","file":"geolocation-marker.js","sourcesContent":["/**\r\n * @license geolocation-marker\r\n * @copyright 2012, 2015 Chad Killingsworth\r\n * @see https://github.com/ChadKillingsworth/geolocation-marker/blob/master/LICENSE.txt\r\n */\r\n\r\n/**\r\n * @name GeolocationMarker for Google Maps v3\r\n * @version version 1.1\r\n * @author Chad Killingsworth [chadkillingsworth at gmail.com]\r\n * Copyright 2012\r\n * @fileoverview\r\n * This library uses geolocation to add a marker and accuracy circle to a map.\r\n * The marker position is automatically updated as the user position changes.\r\n */\r\n\r\n'use strict';\r\n\r\nclass GeolocationMarker extends google.maps.MVCObject {\r\n /**\r\n * @param {google.maps.Map=} opt_map\r\n * @param {(google.maps.MarkerOptions|Object.)=} opt_outerMarkerOpts\r\n * @param {(google.maps.MarkerOptions|Object.)=} opt_markerOpts\r\n * @param {(google.maps.CircleOptions|Object.)=} opt_circleOpts\r\n */\r\n constructor(opt_map, opt_outerMarkerOpts, opt_markerOpts, opt_circleOpts) {\r\n super();\r\n\r\n /**\r\n * @private\r\n * @type {google.maps.Marker}\r\n */\r\n this.outerMarker_ = null;\r\n\r\n /**\r\n * @private\r\n * @type {google.maps.Marker}\r\n */\r\n this.marker_ = null;\r\n\r\n /**\r\n * @private\r\n * @type {google.maps.Circle}\r\n */\r\n this.circle_ = null;\r\n\r\n /**\r\n * @private\r\n * @type {number}\r\n */\r\n this.watchId_ = -1;\r\n\r\n var outerMarkerOpts = {\r\n 'clickable': false,\r\n 'cursor': 'pointer',\r\n 'draggable': false,\r\n 'flat': true,\r\n 'icon': {\r\n 'path': google.maps.SymbolPath.CIRCLE,\r\n 'fillColor': '#C8D6EC',\r\n 'fillOpacity': 0.7,\r\n 'scale': 12,\r\n 'strokeWeight': 0,\r\n },\r\n 'position': new google.maps.LatLng(0, 0),\r\n 'title': 'Current location',\r\n 'zIndex': 2\r\n };\r\n\r\n var markerOpts = {\r\n 'clickable': false,\r\n 'cursor': 'pointer',\r\n 'draggable': false,\r\n 'flat': true,\r\n 'icon': {\r\n 'path': google.maps.SymbolPath.CIRCLE,\r\n 'fillColor': '#4285F4',\r\n 'fillOpacity': 1,\r\n 'scale': 6,\r\n 'strokeColor': 'white',\r\n 'strokeWeight': 2,\r\n },\r\n // This marker may move frequently - don't force canvas tile redraw\r\n 'optimized': false,\r\n 'position': new google.maps.LatLng(0, 0),\r\n 'title': 'Current location',\r\n 'zIndex': 3\r\n };\r\n\r\n if(opt_outerMarkerOpts) {\r\n outerMarkerOpts = this.copyOptions_(outerMarkerOpts, opt_outerMarkerOpts);\r\n }\r\n\r\n if(opt_markerOpts) {\r\n markerOpts = this.copyOptions_(markerOpts, opt_markerOpts);\r\n }\r\n\r\n var circleOpts = {\r\n 'clickable': false,\r\n 'radius': 0,\r\n 'strokeColor': '1bb6ff',\r\n 'strokeOpacity': .4,\r\n 'fillColor': '61a0bf',\r\n 'fillOpacity': .4,\r\n 'strokeWeight': 1,\r\n 'zIndex': 1\r\n };\r\n\r\n if(opt_circleOpts) {\r\n circleOpts = this.copyOptions_(circleOpts, opt_circleOpts);\r\n }\r\n\r\n this.outerMarker_ = new google.maps.Marker(outerMarkerOpts);\r\n this.marker_ = new google.maps.Marker(markerOpts);\r\n this.circle_ = new google.maps.Circle(circleOpts);\r\n\r\n google.maps.MVCObject.prototype.set.call(this, 'accuracy', null);\r\n google.maps.MVCObject.prototype.set.call(this, 'position', null);\r\n google.maps.MVCObject.prototype.set.call(this, 'map', null);\r\n\r\n this.set('minimum_accuracy', null);\r\n\r\n this.set('position_options', /** GeolocationPositionOptions */\r\n ({enableHighAccuracy: true, maximumAge: 1000}));\r\n\r\n this.circle_.bindTo('map', this.outerMarker_);\r\n this.circle_.bindTo('map', this.marker_);\r\n\r\n if(opt_map) {\r\n this.setMap(opt_map);\r\n }\r\n }\r\n\r\n /**\r\n * @override\r\n * @param {string} key\r\n * @param {*} value\r\n */\r\n set(key, value) {\r\n if (GeolocationMarker.invalidPropertiesExpr_.test(key)) {\r\n throw '\\'' + key + '\\' is a read-only property.';\r\n } else if (key === 'map') {\r\n this.setMap(/** @type {google.maps.Map} */ (value));\r\n } else {\r\n google.maps.MVCObject.prototype.set.call(this, key, value);\r\n }\r\n }\r\n\r\n /** @return {google.maps.Map} */\r\n getMap() {\r\n return /** @type {google.maps.Map|null} */ (this.get('map'));\r\n }\r\n\r\n /** @return {GeolocationPositionOptions} */\r\n getPositionOptions() {\r\n return /** @type {GeolocationPositionOptions} */(this.get('position_options'));\r\n }\r\n\r\n /** @param {!GeolocationPositionOptions|!Object.} positionOpts */\r\n setPositionOptions(positionOpts) {\r\n this.set('position_options', positionOpts);\r\n }\r\n\r\n /** @return {google.maps.LatLng|null} */\r\n getPosition() {\r\n return /** @type {google.maps.LatLng|null} */ (this.get('position'));\r\n }\r\n\r\n /** @return {google.maps.LatLngBounds?} */\r\n getBounds() {\r\n if (this.get('position')) {\r\n return this.circle_.getBounds();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /** @return {number|null} */\r\n getAccuracy() {\r\n return /** @type {number|null} */ (this.get('accuracy'));\r\n }\r\n\r\n /** @return {number|null} */\r\n getMinimumAccuracy() {\r\n return /** @type {number|null} */ (this.get('minimum_accuracy'));\r\n }\r\n\r\n /** @param {number|null} accuracy */\r\n setMinimumAccuracy(accuracy) {\r\n this.set('minimum_accuracy', accuracy);\r\n }\r\n\r\n /** @param {google.maps.Map|null} map */\r\n setMap(map) {\r\n google.maps.MVCObject.prototype.set.call(this, 'map', map);\r\n if (map) {\r\n this.watchPosition_();\r\n } else {\r\n this.outerMarker_.unbind('position');\r\n this.marker_.unbind('position');\r\n this.circle_.unbind('center');\r\n this.circle_.unbind('radius');\r\n google.maps.MVCObject.prototype.set.call(this, 'accuracy', null);\r\n google.maps.MVCObject.prototype.set.call(this, 'position', null);\r\n navigator.geolocation.clearWatch(this.watchId_);\r\n this.watchId_ = -1;\r\n this.outerMarker_.setMap(map);\r\n this.marker_.setMap(map);\r\n }\r\n }\r\n\r\n /** @param {google.maps.MarkerOptions|Object.} outerMarkerOpts */\r\n setOuterMarkerOptions(outerMarkerOpts) {\r\n this.outerMarker_.setOptions(this.copyOptions_({}, outerMarkerOpts));\r\n }\r\n\r\n /** @param {google.maps.MarkerOptions|Object.} markerOpts */\r\n setMarkerOptions(markerOpts) {\r\n this.marker_.setOptions(this.copyOptions_({}, markerOpts));\r\n }\r\n\r\n /** @param {google.maps.CircleOptions|Object.} circleOpts */\r\n setCircleOptions(circleOpts) {\r\n this.circle_.setOptions(this.copyOptions_({}, circleOpts));\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {GeolocationPosition} position\r\n */\r\n updatePosition_(position) {\r\n var newPosition = new google.maps.LatLng(position.coords.latitude,\r\n position.coords.longitude), mapNotSet = this.marker_.getMap() == null;\r\n\r\n if (mapNotSet) {\r\n if (this.getMinimumAccuracy() != null &&\r\n position.coords.accuracy > this.getMinimumAccuracy()) {\r\n return;\r\n }\r\n this.outerMarker_.setMap(this.getMap());\r\n this.marker_.setMap(this.getMap());\r\n this.outerMarker_.bindTo('position', this);\r\n this.marker_.bindTo('position', this);\r\n this.circle_.bindTo('center', this, 'position');\r\n this.circle_.bindTo('radius', this, 'accuracy');\r\n }\r\n\r\n if (this.getAccuracy() != position.coords.accuracy) {\r\n // The local set method does not allow accuracy to be updated\r\n google.maps.MVCObject.prototype.set.call(this, 'accuracy',\r\n position.coords.accuracy);\r\n }\r\n\r\n if (mapNotSet || this.getPosition() == null ||\r\n !this.getPosition().equals(newPosition)) {\r\n // The local set method does not allow position to be updated\r\n google.maps.MVCObject.prototype.set.call(this, 'position', newPosition);\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n watchPosition_() {\r\n if (navigator.geolocation) {\r\n this.watchId_ = navigator.geolocation.watchPosition(\r\n this.updatePosition_.bind(this),\r\n this.geolocationError_.bind(this),\r\n this.getPositionOptions());\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {GeolocationPositionError} data\r\n */\r\n geolocationError_(data) {\r\n google.maps.event.trigger(this, 'geolocation_error', data);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {Object.} target\r\n * @param {Object.} source\r\n * @return {Object.}\r\n */\r\n copyOptions_(target, source) {\r\n for (var opt in source) {\r\n if (GeolocationMarker.DISALLOWED_OPTIONS[opt] !== true) {\r\n target[opt] = source[opt];\r\n }\r\n }\r\n return target;\r\n }\r\n}\r\n\r\n/**\r\n * @const\r\n * @type {Object.}\r\n */\r\nGeolocationMarker.DISALLOWED_OPTIONS = {\r\n 'map': true,\r\n 'position': true,\r\n 'radius': true\r\n};\r\n\r\n/**\r\n * @private\r\n * @const\r\n */\r\nGeolocationMarker.invalidPropertiesExpr_ = /^(?:position|accuracy)$/i;\r\n\r\nexport default GeolocationMarker;\r\n",null,"/*\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/**\r\n * @name GeolocationMarker for Google Maps v3\r\n * @version version 1.1\r\n * @author Chad Killingsworth [chadkillingsworth at gmail.com]\r\n * Copyright 2012\r\n * @fileoverview\r\n * Exports for compiling the GeolocationMarker library with Closure-compiler\r\n * for use in external code. When compiling the library with other user\r\n * scripts, these exports are not needed.\r\n */\r\n\r\nimport GeolocationMarker from './geolocation-marker.js';\r\n\r\n;(function(root, factory) {\r\n if (typeof root['define'] === 'function' && root['define']['amd']) {\r\n root['define']([], factory);\r\n } else if (typeof root['exports'] === 'object') {\r\n root['module']['exports'] = factory();\r\n } else {\r\n root['GeolocationMarker'] = factory();\r\n }\r\n }(window, function() {\r\n GeolocationMarker.prototype['getAccuracy'] = GeolocationMarker.prototype.getAccuracy;\r\n GeolocationMarker.prototype['getBounds'] = GeolocationMarker.prototype.getBounds;\r\n GeolocationMarker.prototype['getMap'] = GeolocationMarker.prototype.getMap;\r\n GeolocationMarker.prototype['getMinimumAccuracy'] = GeolocationMarker.prototype.getMinimumAccuracy;\r\n GeolocationMarker.prototype['getPosition'] = GeolocationMarker.prototype.getPosition;\r\n GeolocationMarker.prototype['getPositionOptions'] = GeolocationMarker.prototype.getPositionOptions;\r\n GeolocationMarker.prototype['setCircleOptions'] = GeolocationMarker.prototype.setCircleOptions;\r\n GeolocationMarker.prototype['setMap'] = GeolocationMarker.prototype.setMap;\r\n GeolocationMarker.prototype['setMarkerOptions'] = GeolocationMarker.prototype.setMarkerOptions;\r\n GeolocationMarker.prototype['setMinimumAccuracy'] = GeolocationMarker.prototype.setMinimumAccuracy;\r\n GeolocationMarker.prototype['setPositionOptions'] = GeolocationMarker.prototype.setPositionOptions;\r\n\r\n return GeolocationMarker;\r\n}));\r\n"]}