You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1551 lines
51 KiB
1551 lines
51 KiB
"use strict"; |
|
!(function (a, b) { |
|
"object" == typeof exports |
|
? (module.exports = b()) |
|
: "function" == typeof define && define.amd |
|
? define(["jquery", "googlemaps!"], b) |
|
: (a.GMaps = b()); |
|
})(this, function () { |
|
var a = function (a, b) { |
|
var c; |
|
if (a === b) return a; |
|
for (c in b) void 0 !== b[c] && (a[c] = b[c]); |
|
return a; |
|
}, |
|
b = function (a, b) { |
|
var c, |
|
d = Array.prototype.slice.call(arguments, 2), |
|
e = [], |
|
f = a.length; |
|
if (Array.prototype.map && a.map === Array.prototype.map) |
|
e = Array.prototype.map.call(a, function (a) { |
|
var c = d.slice(0); |
|
return c.splice(0, 0, a), b.apply(this, c); |
|
}); |
|
else |
|
for (c = 0; f > c; c++) |
|
(callback_params = d), |
|
callback_params.splice(0, 0, a[c]), |
|
e.push(b.apply(this, callback_params)); |
|
return e; |
|
}, |
|
c = function (a) { |
|
var b, |
|
c = []; |
|
for (b = 0; b < a.length; b++) c = c.concat(a[b]); |
|
return c; |
|
}, |
|
d = function (a, b) { |
|
var c = a[0], |
|
d = a[1]; |
|
return b && ((c = a[1]), (d = a[0])), new google.maps.LatLng(c, d); |
|
}, |
|
f = function (a, b) { |
|
var c; |
|
for (c = 0; c < a.length; c++) |
|
a[c] instanceof google.maps.LatLng || |
|
(a[c].length > 0 && "object" == typeof a[c][0] |
|
? (a[c] = f(a[c], b)) |
|
: (a[c] = d(a[c], b))); |
|
return a; |
|
}, |
|
g = function (a, b) { |
|
var c, |
|
d = a.replace(".", ""); |
|
return (c = |
|
"jQuery" in this && b |
|
? $("." + d, b)[0] |
|
: document.getElementsByClassName(d)[0]); |
|
}, |
|
h = function (a, b) { |
|
var c, |
|
a = a.replace("#", ""); |
|
return (c = |
|
"jQuery" in window && b |
|
? $("#" + a, b)[0] |
|
: document.getElementById(a)); |
|
}, |
|
i = function (a) { |
|
var b = 0, |
|
c = 0; |
|
if (a.offsetParent) |
|
do (b += a.offsetLeft), (c += a.offsetTop); |
|
while ((a = a.offsetParent)); |
|
return [b, c]; |
|
}, |
|
j = (function (b) { |
|
var c = document, |
|
d = function (b) { |
|
if ("object" != typeof window.google || !window.google.maps) |
|
return ( |
|
"object" == typeof window.console && |
|
window.console.error && |
|
console.error( |
|
"Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js." |
|
), |
|
function () {} |
|
); |
|
if (!this) return new d(b); |
|
(b.zoom = b.zoom || 15), (b.mapType = b.mapType || "roadmap"); |
|
var e, |
|
f = function (a, b) { |
|
return void 0 === a ? b : a; |
|
}, |
|
j = this, |
|
k = [ |
|
"bounds_changed", |
|
"center_changed", |
|
"click", |
|
"dblclick", |
|
"drag", |
|
"dragend", |
|
"dragstart", |
|
"idle", |
|
"maptypeid_changed", |
|
"projection_changed", |
|
"resize", |
|
"tilesloaded", |
|
"zoom_changed", |
|
], |
|
l = ["mousemove", "mouseout", "mouseover"], |
|
m = [ |
|
"el", |
|
"lat", |
|
"lng", |
|
"mapType", |
|
"width", |
|
"height", |
|
"markerClusterer", |
|
"enableNewStyle", |
|
], |
|
n = b.el || b.div, |
|
o = b.markerClusterer, |
|
p = google.maps.MapTypeId[b.mapType.toUpperCase()], |
|
q = new google.maps.LatLng(b.lat, b.lng), |
|
r = f(b.zoomControl, !0), |
|
s = b.zoomControlOpt || { style: "DEFAULT", position: "TOP_LEFT" }, |
|
t = s.style || "DEFAULT", |
|
u = s.position || "TOP_LEFT", |
|
v = f(b.panControl, !0), |
|
w = f(b.mapTypeControl, !0), |
|
x = f(b.scaleControl, !0), |
|
y = f(b.streetViewControl, !0), |
|
z = f(z, !0), |
|
A = {}, |
|
B = { zoom: this.zoom, center: q, mapTypeId: p }, |
|
C = { |
|
panControl: v, |
|
zoomControl: r, |
|
zoomControlOptions: { |
|
style: google.maps.ZoomControlStyle[t], |
|
position: google.maps.ControlPosition[u], |
|
}, |
|
mapTypeControl: w, |
|
scaleControl: x, |
|
streetViewControl: y, |
|
overviewMapControl: z, |
|
}; |
|
if ( |
|
("string" == typeof b.el || "string" == typeof b.div |
|
? n.indexOf("#") > -1 |
|
? (this.el = h(n, b.context)) |
|
: (this.el = g.apply(this, [n, b.context])) |
|
: (this.el = n), |
|
"undefined" == typeof this.el || null === this.el) |
|
) |
|
throw "No element defined."; |
|
for ( |
|
window.context_menu = window.context_menu || {}, |
|
window.context_menu[j.el.id] = {}, |
|
this.controls = [], |
|
this.overlays = [], |
|
this.layers = [], |
|
this.singleLayers = {}, |
|
this.markers = [], |
|
this.polylines = [], |
|
this.routes = [], |
|
this.polygons = [], |
|
this.infoWindow = null, |
|
this.overlay_el = null, |
|
this.zoom = b.zoom, |
|
this.registered_events = {}, |
|
this.el.style.width = |
|
b.width || this.el.scrollWidth || this.el.offsetWidth, |
|
this.el.style.height = |
|
b.height || this.el.scrollHeight || this.el.offsetHeight, |
|
google.maps.visualRefresh = b.enableNewStyle, |
|
e = 0; |
|
e < m.length; |
|
e++ |
|
) |
|
delete b[m[e]]; |
|
for ( |
|
1 != b.disableDefaultUI && (B = a(B, C)), A = a(B, b), e = 0; |
|
e < k.length; |
|
e++ |
|
) |
|
delete A[k[e]]; |
|
for (e = 0; e < l.length; e++) delete A[l[e]]; |
|
(this.map = new google.maps.Map(this.el, A)), |
|
o && (this.markerClusterer = o.apply(this, [this.map])); |
|
var D = function (a, b) { |
|
var c = "", |
|
d = window.context_menu[j.el.id][a]; |
|
for (var e in d) |
|
if (d.hasOwnProperty(e)) { |
|
var f = d[e]; |
|
c += |
|
'<li><a id="' + |
|
a + |
|
"_" + |
|
e + |
|
'" href="#">' + |
|
f.title + |
|
"</a></li>"; |
|
} |
|
if (h("gmaps_context_menu")) { |
|
var g = h("gmaps_context_menu"); |
|
g.innerHTML = c; |
|
var e, |
|
k = g.getElementsByTagName("a"), |
|
l = k.length; |
|
for (e = 0; l > e; e++) { |
|
var m = k[e], |
|
n = function (c) { |
|
c.preventDefault(), |
|
d[this.id.replace(a + "_", "")].action.apply(j, [b]), |
|
j.hideContextMenu(); |
|
}; |
|
google.maps.event.clearListeners(m, "click"), |
|
google.maps.event.addDomListenerOnce(m, "click", n, !1); |
|
} |
|
var o = i.apply(this, [j.el]), |
|
p = o[0] + b.pixel.x - 15, |
|
q = o[1] + b.pixel.y - 15; |
|
(g.style.left = p + "px"), (g.style.top = q + "px"); |
|
} |
|
}; |
|
(this.buildContextMenu = function (a, b) { |
|
if ("marker" === a) { |
|
b.pixel = {}; |
|
var c = new google.maps.OverlayView(); |
|
c.setMap(j.map), |
|
(c.draw = function () { |
|
var d = c.getProjection(), |
|
e = b.marker.getPosition(); |
|
(b.pixel = d.fromLatLngToContainerPixel(e)), D(a, b); |
|
}); |
|
} else D(a, b); |
|
var d = h("gmaps_context_menu"); |
|
setTimeout(function () { |
|
d.style.display = "block"; |
|
}, 0); |
|
}), |
|
(this.setContextMenu = function (a) { |
|
window.context_menu[j.el.id][a.control] = {}; |
|
var b, |
|
d = c.createElement("ul"); |
|
for (b in a.options) |
|
if (a.options.hasOwnProperty(b)) { |
|
var e = a.options[b]; |
|
window.context_menu[j.el.id][a.control][e.name] = { |
|
title: e.title, |
|
action: e.action, |
|
}; |
|
} |
|
(d.id = "gmaps_context_menu"), |
|
(d.style.display = "none"), |
|
(d.style.position = "absolute"), |
|
(d.style.minWidth = "100px"), |
|
(d.style.background = "white"), |
|
(d.style.listStyle = "none"), |
|
(d.style.padding = "8px"), |
|
(d.style.boxShadow = "2px 2px 6px #ccc"), |
|
h("gmaps_context_menu") || c.body.appendChild(d); |
|
var f = h("gmaps_context_menu"); |
|
google.maps.event.addDomListener( |
|
f, |
|
"mouseout", |
|
function (a) { |
|
(a.relatedTarget && this.contains(a.relatedTarget)) || |
|
window.setTimeout(function () { |
|
f.style.display = "none"; |
|
}, 400); |
|
}, |
|
!1 |
|
); |
|
}), |
|
(this.hideContextMenu = function () { |
|
var a = h("gmaps_context_menu"); |
|
a && (a.style.display = "none"); |
|
}); |
|
var E = function (a, c) { |
|
google.maps.event.addListener(a, c, function (a) { |
|
void 0 == a && (a = this), |
|
b[c].apply(this, [a]), |
|
j.hideContextMenu(); |
|
}); |
|
}; |
|
google.maps.event.addListener( |
|
this.map, |
|
"zoom_changed", |
|
this.hideContextMenu |
|
); |
|
for (var F = 0; F < k.length; F++) { |
|
var G = k[F]; |
|
G in b && E(this.map, G); |
|
} |
|
for (var F = 0; F < l.length; F++) { |
|
var G = l[F]; |
|
G in b && E(this.map, G); |
|
} |
|
google.maps.event.addListener(this.map, "rightclick", function (a) { |
|
b.rightclick && b.rightclick.apply(this, [a]), |
|
void 0 != window.context_menu[j.el.id].map && |
|
j.buildContextMenu("map", a); |
|
}), |
|
(this.refresh = function () { |
|
google.maps.event.trigger(this.map, "resize"); |
|
}), |
|
(this.fitZoom = function () { |
|
var a, |
|
b = [], |
|
c = this.markers.length; |
|
for (a = 0; c > a; a++) |
|
"boolean" == typeof this.markers[a].visible && |
|
this.markers[a].visible && |
|
b.push(this.markers[a].getPosition()); |
|
this.fitLatLngBounds(b); |
|
}), |
|
(this.fitLatLngBounds = function (a) { |
|
var b, |
|
c = a.length, |
|
d = new google.maps.LatLngBounds(); |
|
for (b = 0; c > b; b++) d.extend(a[b]); |
|
this.map.fitBounds(d); |
|
}), |
|
(this.setCenter = function (a, b, c) { |
|
this.map.panTo(new google.maps.LatLng(a, b)), c && c(); |
|
}), |
|
(this.getElement = function () { |
|
return this.el; |
|
}), |
|
(this.zoomIn = function (a) { |
|
(a = a || 1), |
|
(this.zoom = this.map.getZoom() + a), |
|
this.map.setZoom(this.zoom); |
|
}), |
|
(this.zoomOut = function (a) { |
|
(a = a || 1), |
|
(this.zoom = this.map.getZoom() - a), |
|
this.map.setZoom(this.zoom); |
|
}); |
|
var H, |
|
I = []; |
|
for (H in this.map) |
|
"function" != typeof this.map[H] || this[H] || I.push(H); |
|
for (e = 0; e < I.length; e++) |
|
!(function (a, b, c) { |
|
a[c] = function () { |
|
return b[c].apply(b, arguments); |
|
}; |
|
})(this, this.map, I[e]); |
|
}; |
|
return d; |
|
})(this); |
|
(j.prototype.createControl = function (a) { |
|
var b = document.createElement("div"); |
|
(b.style.cursor = "pointer"), |
|
a.disableDefaultStyles !== !0 && |
|
((b.style.fontFamily = "Roboto, Arial, sans-serif"), |
|
(b.style.fontSize = "11px"), |
|
(b.style.boxShadow = "rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px")); |
|
for (var c in a.style) b.style[c] = a.style[c]; |
|
a.id && (b.id = a.id), |
|
a.title && (b.title = a.title), |
|
a.classes && (b.className = a.classes), |
|
a.content && |
|
("string" == typeof a.content |
|
? (b.innerHTML = a.content) |
|
: a.content instanceof HTMLElement && b.appendChild(a.content)), |
|
a.position && |
|
(b.position = google.maps.ControlPosition[a.position.toUpperCase()]); |
|
for (var d in a.events) |
|
!(function (b, c) { |
|
google.maps.event.addDomListener(b, c, function () { |
|
a.events[c].apply(this, [this]); |
|
}); |
|
})(b, d); |
|
return (b.index = 1), b; |
|
}), |
|
(j.prototype.addControl = function (a) { |
|
var b = this.createControl(a); |
|
return this.controls.push(b), this.map.controls[b.position].push(b), b; |
|
}), |
|
(j.prototype.removeControl = function (a) { |
|
var b, |
|
c = null; |
|
for (b = 0; b < this.controls.length; b++) |
|
this.controls[b] == a && |
|
((c = this.controls[b].position), this.controls.splice(b, 1)); |
|
if (c) |
|
for (b = 0; b < this.map.controls.length; b++) { |
|
var d = this.map.controls[a.position]; |
|
if (d.getAt(b) == a) { |
|
d.removeAt(b); |
|
break; |
|
} |
|
} |
|
return a; |
|
}), |
|
(j.prototype.createMarker = function (b) { |
|
if (void 0 == b.lat && void 0 == b.lng && void 0 == b.position) |
|
throw "No latitude or longitude defined."; |
|
var c = this, |
|
d = b.details, |
|
e = b.fences, |
|
f = b.outside, |
|
g = { position: new google.maps.LatLng(b.lat, b.lng), map: null }, |
|
h = a(g, b); |
|
delete h.lat, delete h.lng, delete h.fences, delete h.outside; |
|
var i = new google.maps.Marker(h); |
|
if (((i.fences = e), b.infoWindow)) { |
|
i.infoWindow = new google.maps.InfoWindow(b.infoWindow); |
|
for ( |
|
var j = [ |
|
"closeclick", |
|
"content_changed", |
|
"domready", |
|
"position_changed", |
|
"zindex_changed", |
|
], |
|
k = 0; |
|
k < j.length; |
|
k++ |
|
) |
|
!(function (a, c) { |
|
b.infoWindow[c] && |
|
google.maps.event.addListener(a, c, function (a) { |
|
b.infoWindow[c].apply(this, [a]); |
|
}); |
|
})(i.infoWindow, j[k]); |
|
} |
|
for ( |
|
var l = [ |
|
"animation_changed", |
|
"clickable_changed", |
|
"cursor_changed", |
|
"draggable_changed", |
|
"flat_changed", |
|
"icon_changed", |
|
"position_changed", |
|
"shadow_changed", |
|
"shape_changed", |
|
"title_changed", |
|
"visible_changed", |
|
"zindex_changed", |
|
], |
|
m = [ |
|
"dblclick", |
|
"drag", |
|
"dragend", |
|
"dragstart", |
|
"mousedown", |
|
"mouseout", |
|
"mouseover", |
|
"mouseup", |
|
], |
|
k = 0; |
|
k < l.length; |
|
k++ |
|
) |
|
!(function (a, c) { |
|
b[c] && |
|
google.maps.event.addListener(a, c, function () { |
|
b[c].apply(this, [this]); |
|
}); |
|
})(i, l[k]); |
|
for (var k = 0; k < m.length; k++) |
|
!(function (a, c, d) { |
|
b[d] && |
|
google.maps.event.addListener(c, d, function (c) { |
|
c.pixel || |
|
(c.pixel = a.getProjection().fromLatLngToPoint(c.latLng)), |
|
b[d].apply(this, [c]); |
|
}); |
|
})(this.map, i, m[k]); |
|
return ( |
|
google.maps.event.addListener(i, "click", function () { |
|
(this.details = d), |
|
b.click && b.click.apply(this, [this]), |
|
i.infoWindow && (c.hideInfoWindows(), i.infoWindow.open(c.map, i)); |
|
}), |
|
google.maps.event.addListener(i, "rightclick", function (a) { |
|
(a.marker = this), |
|
b.rightclick && b.rightclick.apply(this, [a]), |
|
void 0 != window.context_menu[c.el.id].marker && |
|
c.buildContextMenu("marker", a); |
|
}), |
|
i.fences && |
|
google.maps.event.addListener(i, "dragend", function () { |
|
c.checkMarkerGeofence(i, function (a, b) { |
|
f(a, b); |
|
}); |
|
}), |
|
i |
|
); |
|
}), |
|
(j.prototype.addMarker = function (a) { |
|
var b; |
|
if (a.hasOwnProperty("gm_accessors_")) b = a; |
|
else { |
|
if ( |
|
!((a.hasOwnProperty("lat") && a.hasOwnProperty("lng")) || a.position) |
|
) |
|
throw "No latitude or longitude defined."; |
|
b = this.createMarker(a); |
|
} |
|
return ( |
|
b.setMap(this.map), |
|
this.markerClusterer && this.markerClusterer.addMarker(b), |
|
this.markers.push(b), |
|
j.fire("marker_added", b, this), |
|
b |
|
); |
|
}), |
|
(j.prototype.addMarkers = function (a) { |
|
for (var b, c = 0; (b = a[c]); c++) this.addMarker(b); |
|
return this.markers; |
|
}), |
|
(j.prototype.hideInfoWindows = function () { |
|
for (var a, b = 0; (a = this.markers[b]); b++) |
|
a.infoWindow && a.infoWindow.close(); |
|
}), |
|
(j.prototype.removeMarker = function (a) { |
|
for (var b = 0; b < this.markers.length; b++) |
|
if (this.markers[b] === a) { |
|
this.markers[b].setMap(null), |
|
this.markers.splice(b, 1), |
|
this.markerClusterer && this.markerClusterer.removeMarker(a), |
|
j.fire("marker_removed", a, this); |
|
break; |
|
} |
|
return a; |
|
}), |
|
(j.prototype.removeMarkers = function (a) { |
|
var b = []; |
|
if ("undefined" == typeof a) { |
|
for (var c = 0; c < this.markers.length; c++) { |
|
var d = this.markers[c]; |
|
d.setMap(null), j.fire("marker_removed", d, this); |
|
} |
|
this.markerClusterer && |
|
this.markerClusterer.clearMarkers && |
|
this.markerClusterer.clearMarkers(), |
|
(this.markers = b); |
|
} else { |
|
for (var c = 0; c < a.length; c++) { |
|
var e = this.markers.indexOf(a[c]); |
|
if (e > -1) { |
|
var d = this.markers[e]; |
|
d.setMap(null), |
|
this.markerClusterer && this.markerClusterer.removeMarker(d), |
|
j.fire("marker_removed", d, this); |
|
} |
|
} |
|
for (var c = 0; c < this.markers.length; c++) { |
|
var d = this.markers[c]; |
|
null != d.getMap() && b.push(d); |
|
} |
|
this.markers = b; |
|
} |
|
}), |
|
(j.prototype.drawOverlay = function (a) { |
|
var b = new google.maps.OverlayView(), |
|
c = !0; |
|
return ( |
|
b.setMap(this.map), |
|
null != a.auto_show && (c = a.auto_show), |
|
(b.onAdd = function () { |
|
var c = document.createElement("div"); |
|
(c.style.borderStyle = "none"), |
|
(c.style.borderWidth = "0px"), |
|
(c.style.position = "absolute"), |
|
(c.style.zIndex = 100), |
|
(c.innerHTML = a.content), |
|
(b.el = c), |
|
a.layer || (a.layer = "overlayLayer"); |
|
var d = this.getPanes(), |
|
e = d[a.layer], |
|
f = ["contextmenu", "DOMMouseScroll", "dblclick", "mousedown"]; |
|
e.appendChild(c); |
|
for (var g = 0; g < f.length; g++) |
|
!(function (a, b) { |
|
google.maps.event.addDomListener(a, b, function (a) { |
|
-1 != navigator.userAgent.toLowerCase().indexOf("msie") && |
|
document.all |
|
? ((a.cancelBubble = !0), (a.returnValue = !1)) |
|
: a.stopPropagation(); |
|
}); |
|
})(c, f[g]); |
|
a.click && |
|
(d.overlayMouseTarget.appendChild(b.el), |
|
google.maps.event.addDomListener(b.el, "click", function () { |
|
a.click.apply(b, [b]); |
|
})), |
|
google.maps.event.trigger(this, "ready"); |
|
}), |
|
(b.draw = function () { |
|
var d = this.getProjection(), |
|
e = d.fromLatLngToDivPixel(new google.maps.LatLng(a.lat, a.lng)); |
|
(a.horizontalOffset = a.horizontalOffset || 0), |
|
(a.verticalOffset = a.verticalOffset || 0); |
|
var f = b.el, |
|
g = f.children[0], |
|
h = g.clientHeight, |
|
i = g.clientWidth; |
|
switch (a.verticalAlign) { |
|
case "top": |
|
f.style.top = e.y - h + a.verticalOffset + "px"; |
|
break; |
|
default: |
|
case "middle": |
|
f.style.top = e.y - h / 2 + a.verticalOffset + "px"; |
|
break; |
|
case "bottom": |
|
f.style.top = e.y + a.verticalOffset + "px"; |
|
} |
|
switch (a.horizontalAlign) { |
|
case "left": |
|
f.style.left = e.x - i + a.horizontalOffset + "px"; |
|
break; |
|
default: |
|
case "center": |
|
f.style.left = e.x - i / 2 + a.horizontalOffset + "px"; |
|
break; |
|
case "right": |
|
f.style.left = e.x + a.horizontalOffset + "px"; |
|
} |
|
(f.style.display = c ? "block" : "none"), |
|
c || a.show.apply(this, [f]); |
|
}), |
|
(b.onRemove = function () { |
|
var c = b.el; |
|
a.remove |
|
? a.remove.apply(this, [c]) |
|
: (b.el.parentNode.removeChild(b.el), (b.el = null)); |
|
}), |
|
this.overlays.push(b), |
|
b |
|
); |
|
}), |
|
(j.prototype.removeOverlay = function (a) { |
|
for (var b = 0; b < this.overlays.length; b++) |
|
if (this.overlays[b] === a) { |
|
this.overlays[b].setMap(null), this.overlays.splice(b, 1); |
|
break; |
|
} |
|
}), |
|
(j.prototype.removeOverlays = function () { |
|
for (var a, b = 0; (a = this.overlays[b]); b++) a.setMap(null); |
|
this.overlays = []; |
|
}), |
|
(j.prototype.drawPolyline = function (a) { |
|
var b = [], |
|
c = a.path; |
|
if (c.length) |
|
if (void 0 === c[0][0]) b = c; |
|
else |
|
for (var d, e = 0; (d = c[e]); e++) |
|
b.push(new google.maps.LatLng(d[0], d[1])); |
|
var f = { |
|
map: this.map, |
|
path: b, |
|
strokeColor: a.strokeColor, |
|
strokeOpacity: a.strokeOpacity, |
|
strokeWeight: a.strokeWeight, |
|
geodesic: a.geodesic, |
|
clickable: !0, |
|
editable: !1, |
|
visible: !0, |
|
}; |
|
a.hasOwnProperty("clickable") && (f.clickable = a.clickable), |
|
a.hasOwnProperty("editable") && (f.editable = a.editable), |
|
a.hasOwnProperty("icons") && (f.icons = a.icons), |
|
a.hasOwnProperty("zIndex") && (f.zIndex = a.zIndex); |
|
for ( |
|
var g = new google.maps.Polyline(f), |
|
h = [ |
|
"click", |
|
"dblclick", |
|
"mousedown", |
|
"mousemove", |
|
"mouseout", |
|
"mouseover", |
|
"mouseup", |
|
"rightclick", |
|
], |
|
i = 0; |
|
i < h.length; |
|
i++ |
|
) |
|
!(function (b, c) { |
|
a[c] && |
|
google.maps.event.addListener(b, c, function (b) { |
|
a[c].apply(this, [b]); |
|
}); |
|
})(g, h[i]); |
|
return this.polylines.push(g), j.fire("polyline_added", g, this), g; |
|
}), |
|
(j.prototype.removePolyline = function (a) { |
|
for (var b = 0; b < this.polylines.length; b++) |
|
if (this.polylines[b] === a) { |
|
this.polylines[b].setMap(null), |
|
this.polylines.splice(b, 1), |
|
j.fire("polyline_removed", a, this); |
|
break; |
|
} |
|
}), |
|
(j.prototype.removePolylines = function () { |
|
for (var a, b = 0; (a = this.polylines[b]); b++) a.setMap(null); |
|
this.polylines = []; |
|
}), |
|
(j.prototype.drawCircle = function (b) { |
|
(b = a( |
|
{ map: this.map, center: new google.maps.LatLng(b.lat, b.lng) }, |
|
b |
|
)), |
|
delete b.lat, |
|
delete b.lng; |
|
for ( |
|
var c = new google.maps.Circle(b), |
|
d = [ |
|
"click", |
|
"dblclick", |
|
"mousedown", |
|
"mousemove", |
|
"mouseout", |
|
"mouseover", |
|
"mouseup", |
|
"rightclick", |
|
], |
|
e = 0; |
|
e < d.length; |
|
e++ |
|
) |
|
!(function (a, c) { |
|
b[c] && |
|
google.maps.event.addListener(a, c, function (a) { |
|
b[c].apply(this, [a]); |
|
}); |
|
})(c, d[e]); |
|
return this.polygons.push(c), c; |
|
}), |
|
(j.prototype.drawRectangle = function (b) { |
|
b = a({ map: this.map }, b); |
|
var c = new google.maps.LatLngBounds( |
|
new google.maps.LatLng(b.bounds[0][0], b.bounds[0][1]), |
|
new google.maps.LatLng(b.bounds[1][0], b.bounds[1][1]) |
|
); |
|
b.bounds = c; |
|
for ( |
|
var d = new google.maps.Rectangle(b), |
|
e = [ |
|
"click", |
|
"dblclick", |
|
"mousedown", |
|
"mousemove", |
|
"mouseout", |
|
"mouseover", |
|
"mouseup", |
|
"rightclick", |
|
], |
|
f = 0; |
|
f < e.length; |
|
f++ |
|
) |
|
!(function (a, c) { |
|
b[c] && |
|
google.maps.event.addListener(a, c, function (a) { |
|
b[c].apply(this, [a]); |
|
}); |
|
})(d, e[f]); |
|
return this.polygons.push(d), d; |
|
}), |
|
(j.prototype.drawPolygon = function (d) { |
|
var e = !1; |
|
d.hasOwnProperty("useGeoJSON") && (e = d.useGeoJSON), |
|
delete d.useGeoJSON, |
|
(d = a({ map: this.map }, d)), |
|
0 == e && (d.paths = [d.paths.slice(0)]), |
|
d.paths.length > 0 && |
|
d.paths[0].length > 0 && |
|
(d.paths = c(b(d.paths, f, e))); |
|
for ( |
|
var g = new google.maps.Polygon(d), |
|
h = [ |
|
"click", |
|
"dblclick", |
|
"mousedown", |
|
"mousemove", |
|
"mouseout", |
|
"mouseover", |
|
"mouseup", |
|
"rightclick", |
|
], |
|
i = 0; |
|
i < h.length; |
|
i++ |
|
) |
|
!(function (a, b) { |
|
d[b] && |
|
google.maps.event.addListener(a, b, function (a) { |
|
d[b].apply(this, [a]); |
|
}); |
|
})(g, h[i]); |
|
return this.polygons.push(g), j.fire("polygon_added", g, this), g; |
|
}), |
|
(j.prototype.removePolygon = function (a) { |
|
for (var b = 0; b < this.polygons.length; b++) |
|
if (this.polygons[b] === a) { |
|
this.polygons[b].setMap(null), |
|
this.polygons.splice(b, 1), |
|
j.fire("polygon_removed", a, this); |
|
break; |
|
} |
|
}), |
|
(j.prototype.removePolygons = function () { |
|
for (var a, b = 0; (a = this.polygons[b]); b++) a.setMap(null); |
|
this.polygons = []; |
|
}), |
|
(j.prototype.getFromFusionTables = function (a) { |
|
var b = a.events; |
|
delete a.events; |
|
var c = a, |
|
d = new google.maps.FusionTablesLayer(c); |
|
for (var e in b) |
|
!(function (a, c) { |
|
google.maps.event.addListener(a, c, function (a) { |
|
b[c].apply(this, [a]); |
|
}); |
|
})(d, e); |
|
return this.layers.push(d), d; |
|
}), |
|
(j.prototype.loadFromFusionTables = function (a) { |
|
var b = this.getFromFusionTables(a); |
|
return b.setMap(this.map), b; |
|
}), |
|
(j.prototype.getFromKML = function (a) { |
|
var b = a.url, |
|
c = a.events; |
|
delete a.url, delete a.events; |
|
var d = a, |
|
e = new google.maps.KmlLayer(b, d); |
|
for (var f in c) |
|
!(function (a, b) { |
|
google.maps.event.addListener(a, b, function (a) { |
|
c[b].apply(this, [a]); |
|
}); |
|
})(e, f); |
|
return this.layers.push(e), e; |
|
}), |
|
(j.prototype.loadFromKML = function (a) { |
|
var b = this.getFromKML(a); |
|
return b.setMap(this.map), b; |
|
}), |
|
(j.prototype.addLayer = function (a, b) { |
|
b = b || {}; |
|
var c; |
|
switch (a) { |
|
case "weather": |
|
this.singleLayers.weather = c = |
|
new google.maps.weather.WeatherLayer(); |
|
break; |
|
case "clouds": |
|
this.singleLayers.clouds = c = new google.maps.weather.CloudLayer(); |
|
break; |
|
case "traffic": |
|
this.singleLayers.traffic = c = new google.maps.TrafficLayer(); |
|
break; |
|
case "transit": |
|
this.singleLayers.transit = c = new google.maps.TransitLayer(); |
|
break; |
|
case "bicycling": |
|
this.singleLayers.bicycling = c = new google.maps.BicyclingLayer(); |
|
break; |
|
case "panoramio": |
|
(this.singleLayers.panoramio = c = |
|
new google.maps.panoramio.PanoramioLayer()), |
|
c.setTag(b.filter), |
|
delete b.filter, |
|
b.click && |
|
google.maps.event.addListener(c, "click", function (a) { |
|
b.click(a), delete b.click; |
|
}); |
|
break; |
|
case "places": |
|
if ( |
|
((this.singleLayers.places = c = |
|
new google.maps.places.PlacesService(this.map)), |
|
b.search || b.nearbySearch || b.radarSearch) |
|
) { |
|
var d = { |
|
bounds: b.bounds || null, |
|
keyword: b.keyword || null, |
|
location: b.location || null, |
|
name: b.name || null, |
|
radius: b.radius || null, |
|
rankBy: b.rankBy || null, |
|
types: b.types || null, |
|
}; |
|
b.radarSearch && c.radarSearch(d, b.radarSearch), |
|
b.search && c.search(d, b.search), |
|
b.nearbySearch && c.nearbySearch(d, b.nearbySearch); |
|
} |
|
if (b.textSearch) { |
|
var e = { |
|
bounds: b.bounds || null, |
|
location: b.location || null, |
|
query: b.query || null, |
|
radius: b.radius || null, |
|
}; |
|
c.textSearch(e, b.textSearch); |
|
} |
|
} |
|
return void 0 !== c |
|
? ("function" == typeof c.setOptions && c.setOptions(b), |
|
"function" == typeof c.setMap && c.setMap(this.map), |
|
c) |
|
: void 0; |
|
}), |
|
(j.prototype.removeLayer = function (a) { |
|
if ("string" == typeof a && void 0 !== this.singleLayers[a]) |
|
this.singleLayers[a].setMap(null), delete this.singleLayers[a]; |
|
else |
|
for (var b = 0; b < this.layers.length; b++) |
|
if (this.layers[b] === a) { |
|
this.layers[b].setMap(null), this.layers.splice(b, 1); |
|
break; |
|
} |
|
}); |
|
var k, l; |
|
return ( |
|
(j.prototype.getRoutes = function (b) { |
|
switch (b.travelMode) { |
|
case "bicycling": |
|
k = google.maps.TravelMode.BICYCLING; |
|
break; |
|
case "transit": |
|
k = google.maps.TravelMode.TRANSIT; |
|
break; |
|
case "driving": |
|
k = google.maps.TravelMode.DRIVING; |
|
break; |
|
default: |
|
k = google.maps.TravelMode.WALKING; |
|
} |
|
l = |
|
"imperial" === b.unitSystem |
|
? google.maps.UnitSystem.IMPERIAL |
|
: google.maps.UnitSystem.METRIC; |
|
var c = { |
|
avoidHighways: !1, |
|
avoidTolls: !1, |
|
optimizeWaypoints: !1, |
|
waypoints: [], |
|
}, |
|
d = a(c, b); |
|
(d.origin = /string/.test(typeof b.origin) |
|
? b.origin |
|
: new google.maps.LatLng(b.origin[0], b.origin[1])), |
|
(d.destination = /string/.test(typeof b.destination) |
|
? b.destination |
|
: new google.maps.LatLng(b.destination[0], b.destination[1])), |
|
(d.travelMode = k), |
|
(d.unitSystem = l), |
|
delete d.callback, |
|
delete d.error; |
|
var e = [], |
|
f = new google.maps.DirectionsService(); |
|
f.route(d, function (a, c) { |
|
if (c === google.maps.DirectionsStatus.OK) { |
|
for (var d in a.routes) |
|
a.routes.hasOwnProperty(d) && e.push(a.routes[d]); |
|
b.callback && b.callback(e, a, c); |
|
} else b.error && b.error(a, c); |
|
}); |
|
}), |
|
(j.prototype.removeRoutes = function () { |
|
this.routes.length = 0; |
|
}), |
|
(j.prototype.getElevations = function (d) { |
|
(d = a({ locations: [], path: !1, samples: 256 }, d)), |
|
d.locations.length > 0 && |
|
d.locations[0].length > 0 && |
|
(d.locations = c(b([d.locations], f, !1))); |
|
var e = d.callback; |
|
delete d.callback; |
|
var g = new google.maps.ElevationService(); |
|
if (d.path) { |
|
var h = { path: d.locations, samples: d.samples }; |
|
g.getElevationAlongPath(h, function (a, b) { |
|
e && "function" == typeof e && e(a, b); |
|
}); |
|
} else |
|
delete d.path, |
|
delete d.samples, |
|
g.getElevationForLocations(d, function (a, b) { |
|
e && "function" == typeof e && e(a, b); |
|
}); |
|
}), |
|
(j.prototype.cleanRoute = j.prototype.removePolylines), |
|
(j.prototype.renderRoute = function (b, c) { |
|
var d, |
|
e = |
|
"string" == typeof c.panel |
|
? document.getElementById(c.panel.replace("#", "")) |
|
: c.panel; |
|
(c.panel = e), |
|
(c = a({ map: this.map }, c)), |
|
(d = new google.maps.DirectionsRenderer(c)), |
|
this.getRoutes({ |
|
origin: b.origin, |
|
destination: b.destination, |
|
travelMode: b.travelMode, |
|
waypoints: b.waypoints, |
|
unitSystem: b.unitSystem, |
|
error: b.error, |
|
avoidHighways: b.avoidHighways, |
|
avoidTolls: b.avoidTolls, |
|
optimizeWaypoints: b.optimizeWaypoints, |
|
callback: function (a, b, c) { |
|
c === google.maps.DirectionsStatus.OK && d.setDirections(b); |
|
}, |
|
}); |
|
}), |
|
(j.prototype.drawRoute = function (a) { |
|
var b = this; |
|
this.getRoutes({ |
|
origin: a.origin, |
|
destination: a.destination, |
|
travelMode: a.travelMode, |
|
waypoints: a.waypoints, |
|
unitSystem: a.unitSystem, |
|
error: a.error, |
|
avoidHighways: a.avoidHighways, |
|
avoidTolls: a.avoidTolls, |
|
optimizeWaypoints: a.optimizeWaypoints, |
|
callback: function (c) { |
|
if (c.length > 0) { |
|
var d = { |
|
path: c[c.length - 1].overview_path, |
|
strokeColor: a.strokeColor, |
|
strokeOpacity: a.strokeOpacity, |
|
strokeWeight: a.strokeWeight, |
|
}; |
|
a.hasOwnProperty("icons") && (d.icons = a.icons), |
|
b.drawPolyline(d), |
|
a.callback && a.callback(c[c.length - 1]); |
|
} |
|
}, |
|
}); |
|
}), |
|
(j.prototype.travelRoute = function (a) { |
|
if (a.origin && a.destination) |
|
this.getRoutes({ |
|
origin: a.origin, |
|
destination: a.destination, |
|
travelMode: a.travelMode, |
|
waypoints: a.waypoints, |
|
unitSystem: a.unitSystem, |
|
error: a.error, |
|
callback: function (b) { |
|
if ( |
|
(b.length > 0 && a.start && a.start(b[b.length - 1]), |
|
b.length > 0 && a.step) |
|
) { |
|
var c = b[b.length - 1]; |
|
if (c.legs.length > 0) |
|
for (var d, e = c.legs[0].steps, f = 0; (d = e[f]); f++) |
|
(d.step_number = f), a.step(d, c.legs[0].steps.length - 1); |
|
} |
|
b.length > 0 && a.end && a.end(b[b.length - 1]); |
|
}, |
|
}); |
|
else if (a.route && a.route.legs.length > 0) |
|
for (var b, c = a.route.legs[0].steps, d = 0; (b = c[d]); d++) |
|
(b.step_number = d), a.step(b); |
|
}), |
|
(j.prototype.drawSteppedRoute = function (a) { |
|
var b = this; |
|
if (a.origin && a.destination) |
|
this.getRoutes({ |
|
origin: a.origin, |
|
destination: a.destination, |
|
travelMode: a.travelMode, |
|
waypoints: a.waypoints, |
|
error: a.error, |
|
callback: function (c) { |
|
if ( |
|
(c.length > 0 && a.start && a.start(c[c.length - 1]), |
|
c.length > 0 && a.step) |
|
) { |
|
var d = c[c.length - 1]; |
|
if (d.legs.length > 0) |
|
for (var e, f = d.legs[0].steps, g = 0; (e = f[g]); g++) { |
|
e.step_number = g; |
|
var h = { |
|
path: e.path, |
|
strokeColor: a.strokeColor, |
|
strokeOpacity: a.strokeOpacity, |
|
strokeWeight: a.strokeWeight, |
|
}; |
|
a.hasOwnProperty("icons") && (h.icons = a.icons), |
|
b.drawPolyline(h), |
|
a.step(e, d.legs[0].steps.length - 1); |
|
} |
|
} |
|
c.length > 0 && a.end && a.end(c[c.length - 1]); |
|
}, |
|
}); |
|
else if (a.route && a.route.legs.length > 0) |
|
for (var c, d = a.route.legs[0].steps, e = 0; (c = d[e]); e++) { |
|
c.step_number = e; |
|
var f = { |
|
path: c.path, |
|
strokeColor: a.strokeColor, |
|
strokeOpacity: a.strokeOpacity, |
|
strokeWeight: a.strokeWeight, |
|
}; |
|
a.hasOwnProperty("icons") && (f.icons = a.icons), |
|
b.drawPolyline(f), |
|
a.step(c); |
|
} |
|
}), |
|
(j.Route = function (a) { |
|
(this.origin = a.origin), |
|
(this.destination = a.destination), |
|
(this.waypoints = a.waypoints), |
|
(this.map = a.map), |
|
(this.route = a.route), |
|
(this.step_count = 0), |
|
(this.steps = this.route.legs[0].steps), |
|
(this.steps_length = this.steps.length); |
|
var b = { |
|
path: new google.maps.MVCArray(), |
|
strokeColor: a.strokeColor, |
|
strokeOpacity: a.strokeOpacity, |
|
strokeWeight: a.strokeWeight, |
|
}; |
|
a.hasOwnProperty("icons") && (b.icons = a.icons), |
|
(this.polyline = this.map.drawPolyline(b).getPath()); |
|
}), |
|
(j.Route.prototype.getRoute = function (a) { |
|
var b = this; |
|
this.map.getRoutes({ |
|
origin: this.origin, |
|
destination: this.destination, |
|
travelMode: a.travelMode, |
|
waypoints: this.waypoints || [], |
|
error: a.error, |
|
callback: function () { |
|
(b.route = e[0]), a.callback && a.callback.call(b); |
|
}, |
|
}); |
|
}), |
|
(j.Route.prototype.back = function () { |
|
if (this.step_count > 0) { |
|
this.step_count--; |
|
var a = this.route.legs[0].steps[this.step_count].path; |
|
for (var b in a) a.hasOwnProperty(b) && this.polyline.pop(); |
|
} |
|
}), |
|
(j.Route.prototype.forward = function () { |
|
if (this.step_count < this.steps_length) { |
|
var a = this.route.legs[0].steps[this.step_count].path; |
|
for (var b in a) a.hasOwnProperty(b) && this.polyline.push(a[b]); |
|
this.step_count++; |
|
} |
|
}), |
|
(j.prototype.checkGeofence = function (a, b, c) { |
|
return c.containsLatLng(new google.maps.LatLng(a, b)); |
|
}), |
|
(j.prototype.checkMarkerGeofence = function (a, b) { |
|
if (a.fences) |
|
for (var c, d = 0; (c = a.fences[d]); d++) { |
|
var e = a.getPosition(); |
|
this.checkGeofence(e.lat(), e.lng(), c) || b(a, c); |
|
} |
|
}), |
|
(j.prototype.toImage = function (a) { |
|
var a = a || {}, |
|
b = {}; |
|
if ( |
|
((b.size = a.size || [this.el.clientWidth, this.el.clientHeight]), |
|
(b.lat = this.getCenter().lat()), |
|
(b.lng = this.getCenter().lng()), |
|
this.markers.length > 0) |
|
) { |
|
b.markers = []; |
|
for (var c = 0; c < this.markers.length; c++) |
|
b.markers.push({ |
|
lat: this.markers[c].getPosition().lat(), |
|
lng: this.markers[c].getPosition().lng(), |
|
}); |
|
} |
|
if (this.polylines.length > 0) { |
|
var d = this.polylines[0]; |
|
(b.polyline = {}), |
|
(b.polyline.path = google.maps.geometry.encoding.encodePath( |
|
d.getPath() |
|
)), |
|
(b.polyline.strokeColor = d.strokeColor), |
|
(b.polyline.strokeOpacity = d.strokeOpacity), |
|
(b.polyline.strokeWeight = d.strokeWeight); |
|
} |
|
return j.staticMapURL(b); |
|
}), |
|
(j.staticMapURL = function (a) { |
|
function b(a, b) { |
|
if ("#" === a[0] && ((a = a.replace("#", "0x")), b)) { |
|
if (((b = parseFloat(b)), (b = Math.min(1, Math.max(b, 0))), 0 === b)) |
|
return "0x00000000"; |
|
(b = (255 * b).toString(16)), |
|
1 === b.length && (b += b), |
|
(a = a.slice(0, 8) + b); |
|
} |
|
return a; |
|
} |
|
var c, |
|
d = [], |
|
e = |
|
("file:" === location.protocol ? "http:" : location.protocol) + |
|
"//maps.googleapis.com/maps/api/staticmap"; |
|
a.url && ((e = a.url), delete a.url), (e += "?"); |
|
var f = a.markers; |
|
delete a.markers, !f && a.marker && ((f = [a.marker]), delete a.marker); |
|
var g = a.styles; |
|
delete a.styles; |
|
var h = a.polyline; |
|
if ((delete a.polyline, a.center)) |
|
d.push("center=" + a.center), delete a.center; |
|
else if (a.address) d.push("center=" + a.address), delete a.address; |
|
else if (a.lat) |
|
d.push(["center=", a.lat, ",", a.lng].join("")), |
|
delete a.lat, |
|
delete a.lng; |
|
else if (a.visible) { |
|
var i = encodeURI(a.visible.join("|")); |
|
d.push("visible=" + i); |
|
} |
|
var j = a.size; |
|
j ? (j.join && (j = j.join("x")), delete a.size) : (j = "630x300"), |
|
d.push("size=" + j), |
|
a.zoom || a.zoom === !1 || (a.zoom = 15); |
|
var k = a.hasOwnProperty("sensor") ? !!a.sensor : !0; |
|
delete a.sensor, d.push("sensor=" + k); |
|
for (var l in a) a.hasOwnProperty(l) && d.push(l + "=" + a[l]); |
|
if (f) |
|
for (var m, n, o = 0; (c = f[o]); o++) { |
|
(m = []), |
|
c.size && "normal" !== c.size |
|
? (m.push("size:" + c.size), delete c.size) |
|
: c.icon && (m.push("icon:" + encodeURI(c.icon)), delete c.icon), |
|
c.color && |
|
(m.push("color:" + c.color.replace("#", "0x")), delete c.color), |
|
c.label && |
|
(m.push("label:" + c.label[0].toUpperCase()), delete c.label), |
|
(n = c.address ? c.address : c.lat + "," + c.lng), |
|
delete c.address, |
|
delete c.lat, |
|
delete c.lng; |
|
for (var l in c) c.hasOwnProperty(l) && m.push(l + ":" + c[l]); |
|
m.length || 0 === o |
|
? (m.push(n), (m = m.join("|")), d.push("markers=" + encodeURI(m))) |
|
: ((m = d.pop() + encodeURI("|" + n)), d.push(m)); |
|
} |
|
if (g) |
|
for (var o = 0; o < g.length; o++) { |
|
var p = []; |
|
g[o].featureType && |
|
p.push("feature:" + g[o].featureType.toLowerCase()), |
|
g[o].elementType && |
|
p.push("element:" + g[o].elementType.toLowerCase()); |
|
for (var q = 0; q < g[o].stylers.length; q++) |
|
for (var r in g[o].stylers[q]) { |
|
var s = g[o].stylers[q][r]; |
|
("hue" == r || "color" == r) && (s = "0x" + s.substring(1)), |
|
p.push(r + ":" + s); |
|
} |
|
var t = p.join("|"); |
|
"" != t && d.push("style=" + t); |
|
} |
|
if (h) { |
|
if ( |
|
((c = h), |
|
(h = []), |
|
c.strokeWeight && h.push("weight:" + parseInt(c.strokeWeight, 10)), |
|
c.strokeColor) |
|
) { |
|
var u = b(c.strokeColor, c.strokeOpacity); |
|
h.push("color:" + u); |
|
} |
|
if (c.fillColor) { |
|
var v = b(c.fillColor, c.fillOpacity); |
|
h.push("fillcolor:" + v); |
|
} |
|
var w = c.path; |
|
if (w.join) for (var x, q = 0; (x = w[q]); q++) h.push(x.join(",")); |
|
else h.push("enc:" + w); |
|
(h = h.join("|")), d.push("path=" + encodeURI(h)); |
|
} |
|
var y = window.devicePixelRatio || 1; |
|
return d.push("scale=" + y), (d = d.join("&")), e + d; |
|
}), |
|
(j.prototype.addMapType = function (a, b) { |
|
if (!b.hasOwnProperty("getTileUrl") || "function" != typeof b.getTileUrl) |
|
throw "'getTileUrl' function required."; |
|
b.tileSize = b.tileSize || new google.maps.Size(256, 256); |
|
var c = new google.maps.ImageMapType(b); |
|
this.map.mapTypes.set(a, c); |
|
}), |
|
(j.prototype.addOverlayMapType = function (a) { |
|
if (!a.hasOwnProperty("getTile") || "function" != typeof a.getTile) |
|
throw "'getTile' function required."; |
|
var b = a.index; |
|
delete a.index, this.map.overlayMapTypes.insertAt(b, a); |
|
}), |
|
(j.prototype.removeOverlayMapType = function (a) { |
|
this.map.overlayMapTypes.removeAt(a); |
|
}), |
|
(j.prototype.addStyle = function (a) { |
|
var b = new google.maps.StyledMapType(a.styles, { |
|
name: a.styledMapName, |
|
}); |
|
this.map.mapTypes.set(a.mapTypeId, b); |
|
}), |
|
(j.prototype.setStyle = function (a) { |
|
this.map.setMapTypeId(a); |
|
}), |
|
(j.prototype.createPanorama = function (a) { |
|
return ( |
|
(a.hasOwnProperty("lat") && a.hasOwnProperty("lng")) || |
|
((a.lat = this.getCenter().lat()), (a.lng = this.getCenter().lng())), |
|
(this.panorama = j.createPanorama(a)), |
|
this.map.setStreetView(this.panorama), |
|
this.panorama |
|
); |
|
}), |
|
(j.createPanorama = function (b) { |
|
var c = h(b.el, b.context); |
|
(b.position = new google.maps.LatLng(b.lat, b.lng)), |
|
delete b.el, |
|
delete b.context, |
|
delete b.lat, |
|
delete b.lng; |
|
for ( |
|
var d = [ |
|
"closeclick", |
|
"links_changed", |
|
"pano_changed", |
|
"position_changed", |
|
"pov_changed", |
|
"resize", |
|
"visible_changed", |
|
], |
|
e = a({ visible: !0 }, b), |
|
f = 0; |
|
f < d.length; |
|
f++ |
|
) |
|
delete e[d[f]]; |
|
for ( |
|
var g = new google.maps.StreetViewPanorama(c, e), f = 0; |
|
f < d.length; |
|
f++ |
|
) |
|
!(function (a, c) { |
|
b[c] && |
|
google.maps.event.addListener(a, c, function () { |
|
b[c].apply(this); |
|
}); |
|
})(g, d[f]); |
|
return g; |
|
}), |
|
(j.prototype.on = function (a, b) { |
|
return j.on(a, this, b); |
|
}), |
|
(j.prototype.off = function (a) { |
|
j.off(a, this); |
|
}), |
|
(j.prototype.once = function (a, b) { |
|
return j.once(a, this, b); |
|
}), |
|
(j.custom_events = [ |
|
"marker_added", |
|
"marker_removed", |
|
"polyline_added", |
|
"polyline_removed", |
|
"polygon_added", |
|
"polygon_removed", |
|
"geolocated", |
|
"geolocation_failed", |
|
]), |
|
(j.on = function (a, b, c) { |
|
if (-1 == j.custom_events.indexOf(a)) |
|
return ( |
|
b instanceof j && (b = b.map), google.maps.event.addListener(b, a, c) |
|
); |
|
var d = { handler: c, eventName: a }; |
|
return ( |
|
(b.registered_events[a] = b.registered_events[a] || []), |
|
b.registered_events[a].push(d), |
|
d |
|
); |
|
}), |
|
(j.off = function (a, b) { |
|
-1 == j.custom_events.indexOf(a) |
|
? (b instanceof j && (b = b.map), |
|
google.maps.event.clearListeners(b, a)) |
|
: (b.registered_events[a] = []); |
|
}), |
|
(j.once = function (a, b, c) { |
|
return -1 == j.custom_events.indexOf(a) |
|
? (b instanceof j && (b = b.map), |
|
google.maps.event.addListenerOnce(b, a, c)) |
|
: void 0; |
|
}), |
|
(j.fire = function (a, b, c) { |
|
if (-1 == j.custom_events.indexOf(a)) |
|
google.maps.event.trigger( |
|
b, |
|
a, |
|
Array.prototype.slice.apply(arguments).slice(2) |
|
); |
|
else if (a in c.registered_events) |
|
for (var d = c.registered_events[a], e = 0; e < d.length; e++) |
|
!(function (a, b, c) { |
|
a.apply(b, [c]); |
|
})(d[e].handler, c, b); |
|
}), |
|
(j.geolocate = function (a) { |
|
var b = a.always || a.complete; |
|
navigator.geolocation |
|
? navigator.geolocation.getCurrentPosition( |
|
function (c) { |
|
a.success(c), b && b(); |
|
}, |
|
function (c) { |
|
a.error(c), b && b(); |
|
}, |
|
a.options |
|
) |
|
: (a.not_supported(), b && b()); |
|
}), |
|
(j.geocode = function (a) { |
|
this.geocoder = new google.maps.Geocoder(); |
|
var b = a.callback; |
|
a.hasOwnProperty("lat") && |
|
a.hasOwnProperty("lng") && |
|
(a.latLng = new google.maps.LatLng(a.lat, a.lng)), |
|
delete a.lat, |
|
delete a.lng, |
|
delete a.callback, |
|
this.geocoder.geocode(a, function (a, c) { |
|
b(a, c); |
|
}); |
|
}), |
|
"object" == typeof window.google && |
|
window.google.maps && |
|
(google.maps.Polygon.prototype.getBounds || |
|
(google.maps.Polygon.prototype.getBounds = function (a) { |
|
for ( |
|
var b, |
|
c = new google.maps.LatLngBounds(), |
|
d = this.getPaths(), |
|
e = 0; |
|
e < d.getLength(); |
|
e++ |
|
) { |
|
b = d.getAt(e); |
|
for (var f = 0; f < b.getLength(); f++) c.extend(b.getAt(f)); |
|
} |
|
return c; |
|
}), |
|
google.maps.Polygon.prototype.containsLatLng || |
|
(google.maps.Polygon.prototype.containsLatLng = function (a) { |
|
var b = this.getBounds(); |
|
if (null !== b && !b.contains(a)) return !1; |
|
for (var c = !1, d = this.getPaths().getLength(), e = 0; d > e; e++) |
|
for ( |
|
var f = this.getPaths().getAt(e), |
|
g = f.getLength(), |
|
h = g - 1, |
|
i = 0; |
|
g > i; |
|
i++ |
|
) { |
|
var j = f.getAt(i), |
|
k = f.getAt(h); |
|
((j.lng() < a.lng() && k.lng() >= a.lng()) || |
|
(k.lng() < a.lng() && j.lng() >= a.lng())) && |
|
j.lat() + |
|
((a.lng() - j.lng()) / (k.lng() - j.lng())) * |
|
(k.lat() - j.lat()) < |
|
a.lat() && |
|
(c = !c), |
|
(h = i); |
|
} |
|
return c; |
|
}), |
|
google.maps.Circle.prototype.containsLatLng || |
|
(google.maps.Circle.prototype.containsLatLng = function (a) { |
|
return google.maps.geometry |
|
? google.maps.geometry.spherical.computeDistanceBetween( |
|
this.getCenter(), |
|
a |
|
) <= this.getRadius() |
|
: !0; |
|
}), |
|
(google.maps.Rectangle.prototype.containsLatLng = function (a) { |
|
return this.getBounds().contains(a); |
|
}), |
|
(google.maps.LatLngBounds.prototype.containsLatLng = function (a) { |
|
return this.contains(a); |
|
}), |
|
(google.maps.Marker.prototype.setFences = function (a) { |
|
this.fences = a; |
|
}), |
|
(google.maps.Marker.prototype.addFence = function (a) { |
|
this.fences.push(a); |
|
}), |
|
(google.maps.Marker.prototype.getId = function () { |
|
return this.__gm_id; |
|
})), |
|
Array.prototype.indexOf || |
|
(Array.prototype.indexOf = function (a) { |
|
if (null == this) throw new TypeError(); |
|
var b = Object(this), |
|
c = b.length >>> 0; |
|
if (0 === c) return -1; |
|
var d = 0; |
|
if ( |
|
(arguments.length > 1 && |
|
((d = Number(arguments[1])), |
|
d != d |
|
? (d = 0) |
|
: 0 != d && |
|
d != 1 / 0 && |
|
d != -(1 / 0) && |
|
(d = (d > 0 || -1) * Math.floor(Math.abs(d)))), |
|
d >= c) |
|
) |
|
return -1; |
|
for (var e = d >= 0 ? d : Math.max(c - Math.abs(d), 0); c > e; e++) |
|
if (e in b && b[e] === a) return e; |
|
return -1; |
|
}), |
|
j |
|
); |
|
}); |
|
//# sourceMappingURL=gmaps.min.js.map
|
|
|