ekylibre-cartography 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +3 -0
- data/Rakefile +10 -0
- data/app/assets/javascripts/cartography.coffee +535 -0
- data/app/assets/javascripts/cartography/base.coffee +11 -0
- data/app/assets/javascripts/cartography/controls.coffee +463 -0
- data/app/assets/javascripts/cartography/events.coffee +36 -0
- data/app/assets/javascripts/cartography/layers.coffee +127 -0
- data/app/assets/javascripts/cartography/layers/simple.coffee +37 -0
- data/app/assets/javascripts/cartography/leaflet/controls.coffee +420 -0
- data/app/assets/javascripts/cartography/leaflet/handlers.coffee +461 -0
- data/app/assets/javascripts/cartography/leaflet/i18n.coffee +31 -0
- data/app/assets/javascripts/cartography/leaflet/layers.coffee +60 -0
- data/app/assets/javascripts/cartography/leaflet/toolbars.coffee +450 -0
- data/app/assets/javascripts/cartography/patches.js +8 -0
- data/app/assets/javascripts/cartography/util.coffee +18 -0
- data/app/assets/javascripts/main.js +18 -0
- data/app/assets/stylesheets/cartography.css +86 -0
- data/app/helpers/cartography_helper.rb +55 -0
- data/lib/cartography.rb +1 -0
- data/lib/cartography/engine.rb +11 -0
- data/lib/cartography/version.rb +3 -0
- data/vendor/assets/components/d3-array/dist/d3-array.js +590 -0
- data/vendor/assets/components/d3-array/dist/d3-array.min.js +2 -0
- data/vendor/assets/components/geojson-equality/dist/geojson-equality.js +295 -0
- data/vendor/assets/components/geojson-equality/dist/geojson-equality.js.map +21 -0
- data/vendor/assets/components/geojson-equality/dist/geojson-equality.min.js +1 -0
- data/vendor/assets/components/leaflet-controlpanel/dist/leaflet.controlpanel.css +29 -0
- data/vendor/assets/components/leaflet-controlpanel/dist/leaflet.controlpanel.js +269 -0
- data/vendor/assets/components/leaflet-draw-cut/dist/leaflet.draw.cut.css +1 -0
- data/vendor/assets/components/leaflet-draw-cut/dist/leaflet.draw.cut.js +8 -0
- data/vendor/assets/components/leaflet-draw-merge/dist/leaflet.draw.merge.css +0 -0
- data/vendor/assets/components/leaflet-draw-merge/dist/leaflet.draw.merge.js +48026 -0
- data/vendor/assets/components/leaflet-draw/dist/leaflet.draw-src.css +326 -0
- data/vendor/assets/components/leaflet-draw/dist/leaflet.draw-src.js +4653 -0
- data/vendor/assets/components/leaflet-draw/dist/leaflet.draw-src.map +1 -0
- data/vendor/assets/components/leaflet-draw/dist/leaflet.draw.css +10 -0
- data/vendor/assets/components/leaflet-draw/dist/leaflet.draw.js +10 -0
- data/vendor/assets/components/leaflet-geographicutil/dist/leaflet.geographicutil.js +3220 -0
- data/vendor/assets/components/leaflet-reactive_measure/dist/reactive_measure.css +30 -0
- data/vendor/assets/components/leaflet-reactive_measure/dist/reactive_measure.js +3764 -0
- data/vendor/assets/components/leaflet/dist/leaflet-src.js +13609 -0
- data/vendor/assets/components/leaflet/dist/leaflet-src.js.map +1 -0
- data/vendor/assets/components/leaflet/dist/leaflet-src.map +1 -0
- data/vendor/assets/components/leaflet/dist/leaflet.css +632 -0
- data/vendor/assets/components/leaflet/dist/leaflet.js +5 -0
- data/vendor/assets/components/leaflet/dist/leaflet.js.map +1 -0
- data/vendor/assets/components/martinez-polygon-clipping/dist/martinez.min.js +9 -0
- data/vendor/assets/components/martinez-polygon-clipping/dist/martinez.umd.js +1716 -0
- data/vendor/assets/components/martinez-polygon-clipping/dist/martinez.umd.js.map +1 -0
- data/vendor/assets/components/polygon-clipping/dist/polygon-clipping.js +279 -0
- data/vendor/assets/components/polygon-clipping/dist/polygon-clipping.min.js +1 -0
- data/vendor/assets/components/rtree/dist/rtree.js +911 -0
- data/vendor/assets/components/rtree/dist/rtree.min.js +1 -0
- data/vendor/assets/components/splaytree/dist/splay.es6.js +765 -0
- data/vendor/assets/components/splaytree/dist/splay.es6.js.map +1 -0
- data/vendor/assets/components/splaytree/dist/splay.js +797 -0
- data/vendor/assets/components/splaytree/dist/splay.js.map +1 -0
- metadata +156 -0
@@ -0,0 +1,2 @@
|
|
1
|
+
// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock
|
2
|
+
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.d3=n.d3||{})}(this,function(n){"use strict";function r(n,r){return n<r?-1:n>r?1:n>=r?0:NaN}function t(n){var t;return 1===n.length&&(t=n,n=function(n,e){return r(t(n),e)}),{left:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e<o;){var u=e+o>>>1;n(r[u],t)<0?e=u+1:o=u}return e},right:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e<o;){var u=e+o>>>1;n(r[u],t)>0?o=u:e=u+1}return e}}}var e=t(r),o=e.right,u=e.left;function f(n,r){return[n,r]}function l(n){return null===n?NaN:+n}function i(n,r){var t,e,o=n.length,u=0,f=-1,i=0,a=0;if(null==r)for(;++f<o;)isNaN(t=l(n[f]))||(a+=(e=t-i)*(t-(i+=e/++u)));else for(;++f<o;)isNaN(t=l(r(n[f],f,n)))||(a+=(e=t-i)*(t-(i+=e/++u)));if(u>1)return a/(u-1)}function a(n,r){var t=i(n,r);return t?Math.sqrt(t):t}function h(n,r){var t,e,o,u=n.length,f=-1;if(null==r){for(;++f<u;)if(null!=(t=n[f])&&t>=t)for(e=o=t;++f<u;)null!=(t=n[f])&&(e>t&&(e=t),o<t&&(o=t))}else for(;++f<u;)if(null!=(t=r(n[f],f,n))&&t>=t)for(e=o=t;++f<u;)null!=(t=r(n[f],f,n))&&(e>t&&(e=t),o<t&&(o=t));return[e,o]}var c=Array.prototype,s=c.slice,g=c.map;function v(n){return function(){return n}}function M(n){return n}function p(n,r,t){n=+n,r=+r,t=(o=arguments.length)<2?(r=n,n=0,1):o<3?1:+t;for(var e=-1,o=0|Math.max(0,Math.ceil((r-n)/t)),u=new Array(o);++e<o;)u[e]=n+e*t;return u}var d=Math.sqrt(50),y=Math.sqrt(10),N=Math.sqrt(2);function m(n,r,t){var e=(r-n)/Math.max(0,t),o=Math.floor(Math.log(e)/Math.LN10),u=e/Math.pow(10,o);return o>=0?(u>=d?10:u>=y?5:u>=N?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(u>=d?10:u>=y?5:u>=N?2:1)}function w(n,r,t){var e=Math.abs(r-n)/Math.max(0,t),o=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),u=e/o;return u>=d?o*=10:u>=y?o*=5:u>=N&&(o*=2),r<n?-o:o}function A(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function x(n,r,t){if(null==t&&(t=l),e=n.length){if((r=+r)<=0||e<2)return+t(n[0],0,n);if(r>=1)return+t(n[e-1],e-1,n);var e,o=(e-1)*r,u=Math.floor(o),f=+t(n[u],u,n);return f+(+t(n[u+1],u+1,n)-f)*(o-u)}}function b(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u<o;)if(null!=(t=n[u])&&t>=t)for(e=t;++u<o;)null!=(t=n[u])&&e>t&&(e=t)}else for(;++u<o;)if(null!=(t=r(n[u],u,n))&&t>=t)for(e=t;++u<o;)null!=(t=r(n[u],u,n))&&e>t&&(e=t);return e}function q(n){if(!(o=n.length))return[];for(var r=-1,t=b(n,L),e=new Array(t);++r<t;)for(var o,u=-1,f=e[r]=new Array(o);++u<o;)f[u]=n[u][r];return e}function L(n){return n.length}n.bisect=o,n.bisectRight=o,n.bisectLeft=u,n.ascending=r,n.bisector=t,n.cross=function(n,r,t){var e,o,u,l,i=n.length,a=r.length,h=new Array(i*a);for(null==t&&(t=f),e=u=0;e<i;++e)for(l=n[e],o=0;o<a;++o,++u)h[u]=t(l,r[o]);return h},n.descending=function(n,r){return r<n?-1:r>n?1:r>=n?0:NaN},n.deviation=a,n.extent=h,n.histogram=function(){var n=M,r=h,t=A;function e(e){var u,f,l=e.length,i=new Array(l);for(u=0;u<l;++u)i[u]=n(e[u],u,e);var a=r(i),h=a[0],c=a[1],s=t(i,h,c);Array.isArray(s)||(s=w(h,c,s),s=p(Math.ceil(h/s)*s,c,s));for(var g=s.length;s[0]<=h;)s.shift(),--g;for(;s[g-1]>c;)s.pop(),--g;var v,M=new Array(g+1);for(u=0;u<=g;++u)(v=M[u]=[]).x0=u>0?s[u-1]:h,v.x1=u<g?s[u]:c;for(u=0;u<l;++u)h<=(f=i[u])&&f<=c&&M[o(s,f,0,g)].push(e[u]);return M}return e.value=function(r){return arguments.length?(n="function"==typeof r?r:v(r),e):n},e.domain=function(n){return arguments.length?(r="function"==typeof n?n:v([n[0],n[1]]),e):r},e.thresholds=function(n){return arguments.length?(t="function"==typeof n?n:Array.isArray(n)?v(s.call(n)):v(n),e):t},e},n.thresholdFreedmanDiaconis=function(n,t,e){return n=g.call(n,l).sort(r),Math.ceil((e-t)/(2*(x(n,.75)-x(n,.25))*Math.pow(n.length,-1/3)))},n.thresholdScott=function(n,r,t){return Math.ceil((t-r)/(3.5*a(n)*Math.pow(n.length,-1/3)))},n.thresholdSturges=A,n.max=function(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u<o;)if(null!=(t=n[u])&&t>=t)for(e=t;++u<o;)null!=(t=n[u])&&t>e&&(e=t)}else for(;++u<o;)if(null!=(t=r(n[u],u,n))&&t>=t)for(e=t;++u<o;)null!=(t=r(n[u],u,n))&&t>e&&(e=t);return e},n.mean=function(n,r){var t,e=n.length,o=e,u=-1,f=0;if(null==r)for(;++u<e;)isNaN(t=l(n[u]))?--o:f+=t;else for(;++u<e;)isNaN(t=l(r(n[u],u,n)))?--o:f+=t;if(o)return f/o},n.median=function(n,t){var e,o=n.length,u=-1,f=[];if(null==t)for(;++u<o;)isNaN(e=l(n[u]))||f.push(e);else for(;++u<o;)isNaN(e=l(t(n[u],u,n)))||f.push(e);return x(f.sort(r),.5)},n.merge=function(n){for(var r,t,e,o=n.length,u=-1,f=0;++u<o;)f+=n[u].length;for(t=new Array(f);--o>=0;)for(r=(e=n[o]).length;--r>=0;)t[--f]=e[r];return t},n.min=b,n.pairs=function(n,r){null==r&&(r=f);for(var t=0,e=n.length-1,o=n[0],u=new Array(e<0?0:e);t<e;)u[t]=r(o,o=n[++t]);return u},n.permute=function(n,r){for(var t=r.length,e=new Array(t);t--;)e[t]=n[r[t]];return e},n.quantile=x,n.range=p,n.scan=function(n,t){if(e=n.length){var e,o,u=0,f=0,l=n[f];for(null==t&&(t=r);++u<e;)(t(o=n[u],l)<0||0!==t(l,l))&&(l=o,f=u);return 0===t(l,l)?f:void 0}},n.shuffle=function(n,r,t){for(var e,o,u=(null==t?n.length:t)-(r=null==r?0:+r);u;)o=Math.random()*u--|0,e=n[u+r],n[u+r]=n[o+r],n[o+r]=e;return n},n.sum=function(n,r){var t,e=n.length,o=-1,u=0;if(null==r)for(;++o<e;)(t=+n[o])&&(u+=t);else for(;++o<e;)(t=+r(n[o],o,n))&&(u+=t);return u},n.ticks=function(n,r,t){var e,o,u,f,l=-1;if(t=+t,(n=+n)==(r=+r)&&t>0)return[n];if((e=r<n)&&(o=n,n=r,r=o),0===(f=m(n,r,t))||!isFinite(f))return[];if(f>0)for(n=Math.ceil(n/f),r=Math.floor(r/f),u=new Array(o=Math.ceil(r-n+1));++l<o;)u[l]=(n+l)*f;else for(n=Math.floor(n*f),r=Math.ceil(r*f),u=new Array(o=Math.ceil(n-r+1));++l<o;)u[l]=(n-l)/f;return e&&u.reverse(),u},n.tickIncrement=m,n.tickStep=w,n.transpose=q,n.variance=i,n.zip=function(){return q(arguments)},Object.defineProperty(n,"__esModule",{value:!0})});
|
@@ -0,0 +1,295 @@
|
|
1
|
+
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o;"undefined"!=typeof window?o=window:"undefined"!=typeof global?o=global:"undefined"!=typeof self&&(o=self),o.GeojsonEquality=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
2
|
+
//index.js
|
3
|
+
var deepEqual = require('deep-equal');
|
4
|
+
|
5
|
+
var Equality = function(opt) {
|
6
|
+
this.precision = opt && opt.precision ? opt.precision : 17;
|
7
|
+
this.direction = opt && opt.direction ? opt.direction : false;
|
8
|
+
this.pseudoNode = opt && opt.pseudoNode ? opt.pseudoNode : false;
|
9
|
+
this.objectComparator = opt && opt.objectComparator ? opt.objectComparator : objectComparator;
|
10
|
+
};
|
11
|
+
|
12
|
+
Equality.prototype.compare = function(g1,g2) {
|
13
|
+
if (g1.type !== g2.type || !sameLength(g1,g2)) return false;
|
14
|
+
|
15
|
+
switch(g1.type) {
|
16
|
+
case 'Point':
|
17
|
+
return this.compareCoord(g1.coordinates, g2.coordinates);
|
18
|
+
break;
|
19
|
+
case 'LineString':
|
20
|
+
return this.compareLine(g1.coordinates, g2.coordinates,0,false);
|
21
|
+
break;
|
22
|
+
case 'Polygon':
|
23
|
+
return this.comparePolygon(g1,g2);
|
24
|
+
break;
|
25
|
+
case 'Feature':
|
26
|
+
return this.compareFeature(g1, g2);
|
27
|
+
default:
|
28
|
+
if (g1.type.indexOf('Multi') === 0) {
|
29
|
+
var context = this;
|
30
|
+
var g1s = explode(g1);
|
31
|
+
var g2s = explode(g2);
|
32
|
+
return g1s.every(function(g1part) {
|
33
|
+
return this.some(function(g2part) {
|
34
|
+
return context.compare(g1part,g2part);
|
35
|
+
});
|
36
|
+
},g2s);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
return false;
|
40
|
+
};
|
41
|
+
|
42
|
+
function explode(g) {
|
43
|
+
return g.coordinates.map(function(part) {
|
44
|
+
return {
|
45
|
+
type: g.type.replace('Multi', ''),
|
46
|
+
coordinates: part}
|
47
|
+
});
|
48
|
+
}
|
49
|
+
//compare length of coordinates/array
|
50
|
+
function sameLength(g1,g2) {
|
51
|
+
return g1.hasOwnProperty('coordinates') ?
|
52
|
+
g1.coordinates.length === g2.coordinates.length
|
53
|
+
: g1.length === g2.length;
|
54
|
+
}
|
55
|
+
|
56
|
+
// compare the two coordinates [x,y]
|
57
|
+
Equality.prototype.compareCoord = function(c1,c2) {
|
58
|
+
if (c1.length !== c2.length) {
|
59
|
+
return false;
|
60
|
+
}
|
61
|
+
|
62
|
+
for (var i=0; i < c1.length; i++) {
|
63
|
+
if (c1[i].toFixed(this.precision) !== c2[i].toFixed(this.precision)) {
|
64
|
+
return false;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
return true;
|
68
|
+
};
|
69
|
+
|
70
|
+
Equality.prototype.compareLine = function(path1,path2,ind,isPoly) {
|
71
|
+
if (!sameLength(path1,path2)) return false;
|
72
|
+
var p1 = this.pseudoNode ? path1 : this.removePseudo(path1);
|
73
|
+
var p2 = this.pseudoNode ? path2 : this.removePseudo(path2);
|
74
|
+
if (isPoly && !this.compareCoord(p1[0],p2[0])) {
|
75
|
+
// fix start index of both to same point
|
76
|
+
p2 = this.fixStartIndex(p2,p1);
|
77
|
+
if(!p2) return;
|
78
|
+
}
|
79
|
+
// for linestring ind =0 and for polygon ind =1
|
80
|
+
var sameDirection = this.compareCoord(p1[ind],p2[ind]);
|
81
|
+
if (this.direction || sameDirection
|
82
|
+
) {
|
83
|
+
return this.comparePath(p1, p2);
|
84
|
+
} else {
|
85
|
+
if (this.compareCoord(p1[ind],p2[p2.length - (1+ind)])
|
86
|
+
) {
|
87
|
+
return this.comparePath(p1.slice().reverse(), p2);
|
88
|
+
}
|
89
|
+
return false;
|
90
|
+
}
|
91
|
+
};
|
92
|
+
Equality.prototype.fixStartIndex = function(sourcePath,targetPath) {
|
93
|
+
//make sourcePath first point same as of targetPath
|
94
|
+
var correctPath,ind = -1;
|
95
|
+
for (var i=0; i< sourcePath.length; i++) {
|
96
|
+
if(this.compareCoord(sourcePath[i],targetPath[0])) {
|
97
|
+
ind = i;
|
98
|
+
break;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
if (ind >= 0) {
|
102
|
+
correctPath = [].concat(
|
103
|
+
sourcePath.slice(ind,sourcePath.length),
|
104
|
+
sourcePath.slice(1,ind+1));
|
105
|
+
}
|
106
|
+
return correctPath;
|
107
|
+
};
|
108
|
+
Equality.prototype.comparePath = function (p1,p2) {
|
109
|
+
var cont = this;
|
110
|
+
return p1.every(function(c,i) {
|
111
|
+
return cont.compareCoord(c,this[i]);
|
112
|
+
},p2);
|
113
|
+
};
|
114
|
+
|
115
|
+
Equality.prototype.comparePolygon = function(g1,g2) {
|
116
|
+
if (this.compareLine(g1.coordinates[0],g2.coordinates[0],1,true)) {
|
117
|
+
var holes1 = g1.coordinates.slice(1,g1.coordinates.length);
|
118
|
+
var holes2 = g2.coordinates.slice(1,g2.coordinates.length);
|
119
|
+
var cont = this;
|
120
|
+
return holes1.every(function(h1) {
|
121
|
+
return this.some(function(h2) {
|
122
|
+
return cont.compareLine(h1,h2,1,true);
|
123
|
+
});
|
124
|
+
},holes2);
|
125
|
+
} else {
|
126
|
+
return false;
|
127
|
+
}
|
128
|
+
};
|
129
|
+
|
130
|
+
Equality.prototype.compareFeature = function(g1,g2) {
|
131
|
+
if (
|
132
|
+
g1.id !== g2.id ||
|
133
|
+
!this.objectComparator(g1.properties, g2.properties) ||
|
134
|
+
!this.compareBBox(g1,g2)
|
135
|
+
) {
|
136
|
+
return false;
|
137
|
+
}
|
138
|
+
return this.compare(g1.geometry, g2.geometry);
|
139
|
+
};
|
140
|
+
|
141
|
+
Equality.prototype.compareBBox = function(g1,g2) {
|
142
|
+
if (
|
143
|
+
(!g1.bbox && !g2.bbox) ||
|
144
|
+
(
|
145
|
+
g1.bbox && g2.bbox &&
|
146
|
+
this.compareCoord(g1.bbox, g2.bbox)
|
147
|
+
)
|
148
|
+
) {
|
149
|
+
return true;
|
150
|
+
}
|
151
|
+
return false;
|
152
|
+
};
|
153
|
+
Equality.prototype.removePseudo = function(path) {
|
154
|
+
//TODO to be implement
|
155
|
+
return path;
|
156
|
+
};
|
157
|
+
|
158
|
+
function objectComparator(obj1, obj2) {
|
159
|
+
return deepEqual(obj1, obj2, {strict: true});
|
160
|
+
}
|
161
|
+
|
162
|
+
module.exports = Equality;
|
163
|
+
|
164
|
+
},{"deep-equal":2}],2:[function(require,module,exports){
|
165
|
+
var pSlice = Array.prototype.slice;
|
166
|
+
var objectKeys = require('./lib/keys.js');
|
167
|
+
var isArguments = require('./lib/is_arguments.js');
|
168
|
+
|
169
|
+
var deepEqual = module.exports = function (actual, expected, opts) {
|
170
|
+
if (!opts) opts = {};
|
171
|
+
// 7.1. All identical values are equivalent, as determined by ===.
|
172
|
+
if (actual === expected) {
|
173
|
+
return true;
|
174
|
+
|
175
|
+
} else if (actual instanceof Date && expected instanceof Date) {
|
176
|
+
return actual.getTime() === expected.getTime();
|
177
|
+
|
178
|
+
// 7.3. Other pairs that do not both pass typeof value == 'object',
|
179
|
+
// equivalence is determined by ==.
|
180
|
+
} else if (typeof actual != 'object' && typeof expected != 'object') {
|
181
|
+
return opts.strict ? actual === expected : actual == expected;
|
182
|
+
|
183
|
+
// 7.4. For all other Object pairs, including Array objects, equivalence is
|
184
|
+
// determined by having the same number of owned properties (as verified
|
185
|
+
// with Object.prototype.hasOwnProperty.call), the same set of keys
|
186
|
+
// (although not necessarily the same order), equivalent values for every
|
187
|
+
// corresponding key, and an identical 'prototype' property. Note: this
|
188
|
+
// accounts for both named and indexed properties on Arrays.
|
189
|
+
} else {
|
190
|
+
return objEquiv(actual, expected, opts);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
function isUndefinedOrNull(value) {
|
195
|
+
return value === null || value === undefined;
|
196
|
+
}
|
197
|
+
|
198
|
+
function isBuffer (x) {
|
199
|
+
if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;
|
200
|
+
if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {
|
201
|
+
return false;
|
202
|
+
}
|
203
|
+
if (x.length > 0 && typeof x[0] !== 'number') return false;
|
204
|
+
return true;
|
205
|
+
}
|
206
|
+
|
207
|
+
function objEquiv(a, b, opts) {
|
208
|
+
var i, key;
|
209
|
+
if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
|
210
|
+
return false;
|
211
|
+
// an identical 'prototype' property.
|
212
|
+
if (a.prototype !== b.prototype) return false;
|
213
|
+
//~~~I've managed to break Object.keys through screwy arguments passing.
|
214
|
+
// Converting to array solves the problem.
|
215
|
+
if (isArguments(a)) {
|
216
|
+
if (!isArguments(b)) {
|
217
|
+
return false;
|
218
|
+
}
|
219
|
+
a = pSlice.call(a);
|
220
|
+
b = pSlice.call(b);
|
221
|
+
return deepEqual(a, b, opts);
|
222
|
+
}
|
223
|
+
if (isBuffer(a)) {
|
224
|
+
if (!isBuffer(b)) {
|
225
|
+
return false;
|
226
|
+
}
|
227
|
+
if (a.length !== b.length) return false;
|
228
|
+
for (i = 0; i < a.length; i++) {
|
229
|
+
if (a[i] !== b[i]) return false;
|
230
|
+
}
|
231
|
+
return true;
|
232
|
+
}
|
233
|
+
try {
|
234
|
+
var ka = objectKeys(a),
|
235
|
+
kb = objectKeys(b);
|
236
|
+
} catch (e) {//happens when one is a string literal and the other isn't
|
237
|
+
return false;
|
238
|
+
}
|
239
|
+
// having the same number of owned properties (keys incorporates
|
240
|
+
// hasOwnProperty)
|
241
|
+
if (ka.length != kb.length)
|
242
|
+
return false;
|
243
|
+
//the same set of keys (although not necessarily the same order),
|
244
|
+
ka.sort();
|
245
|
+
kb.sort();
|
246
|
+
//~~~cheap key test
|
247
|
+
for (i = ka.length - 1; i >= 0; i--) {
|
248
|
+
if (ka[i] != kb[i])
|
249
|
+
return false;
|
250
|
+
}
|
251
|
+
//equivalent values for every corresponding key, and
|
252
|
+
//~~~possibly expensive deep test
|
253
|
+
for (i = ka.length - 1; i >= 0; i--) {
|
254
|
+
key = ka[i];
|
255
|
+
if (!deepEqual(a[key], b[key], opts)) return false;
|
256
|
+
}
|
257
|
+
return typeof a === typeof b;
|
258
|
+
}
|
259
|
+
|
260
|
+
},{"./lib/is_arguments.js":3,"./lib/keys.js":4}],3:[function(require,module,exports){
|
261
|
+
var supportsArgumentsClass = (function(){
|
262
|
+
return Object.prototype.toString.call(arguments)
|
263
|
+
})() == '[object Arguments]';
|
264
|
+
|
265
|
+
exports = module.exports = supportsArgumentsClass ? supported : unsupported;
|
266
|
+
|
267
|
+
exports.supported = supported;
|
268
|
+
function supported(object) {
|
269
|
+
return Object.prototype.toString.call(object) == '[object Arguments]';
|
270
|
+
};
|
271
|
+
|
272
|
+
exports.unsupported = unsupported;
|
273
|
+
function unsupported(object){
|
274
|
+
return object &&
|
275
|
+
typeof object == 'object' &&
|
276
|
+
typeof object.length == 'number' &&
|
277
|
+
Object.prototype.hasOwnProperty.call(object, 'callee') &&
|
278
|
+
!Object.prototype.propertyIsEnumerable.call(object, 'callee') ||
|
279
|
+
false;
|
280
|
+
};
|
281
|
+
|
282
|
+
},{}],4:[function(require,module,exports){
|
283
|
+
exports = module.exports = typeof Object.keys === 'function'
|
284
|
+
? Object.keys : shim;
|
285
|
+
|
286
|
+
exports.shim = shim;
|
287
|
+
function shim (obj) {
|
288
|
+
var keys = [];
|
289
|
+
for (var key in obj) keys.push(key);
|
290
|
+
return keys;
|
291
|
+
}
|
292
|
+
|
293
|
+
},{}]},{},[1])(1)
|
294
|
+
});
|
295
|
+
//# sourceMappingURL=geojson-equality.js.map
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": [
|
4
|
+
"node_modules/browserify/node_modules/browser-pack/_prelude.js",
|
5
|
+
"/home/gaganb/projects/geosquare/geojson-equality/index.js",
|
6
|
+
"/home/gaganb/projects/geosquare/geojson-equality/node_modules/deep-equal/index.js",
|
7
|
+
"/home/gaganb/projects/geosquare/geojson-equality/node_modules/deep-equal/lib/is_arguments.js",
|
8
|
+
"/home/gaganb/projects/geosquare/geojson-equality/node_modules/deep-equal/lib/keys.js"
|
9
|
+
],
|
10
|
+
"names": [],
|
11
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
|
12
|
+
"file": "generated.js",
|
13
|
+
"sourceRoot": "",
|
14
|
+
"sourcesContent": [
|
15
|
+
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})",
|
16
|
+
"//index.js\nvar deepEqual = require('deep-equal');\n\nvar Equality = function(opt) {\n this.precision = opt && opt.precision ? opt.precision : 17;\n this.direction = opt && opt.direction ? opt.direction : false;\n this.pseudoNode = opt && opt.pseudoNode ? opt.pseudoNode : false;\n this.objectComparator = opt && opt.objectComparator ? opt.objectComparator : objectComparator;\n};\n\nEquality.prototype.compare = function(g1,g2) {\n if (g1.type !== g2.type || !sameLength(g1,g2)) return false;\n\n switch(g1.type) {\n case 'Point':\n return this.compareCoord(g1.coordinates, g2.coordinates);\n break;\n case 'LineString':\n return this.compareLine(g1.coordinates, g2.coordinates,0,false);\n break;\n case 'Polygon':\n return this.comparePolygon(g1,g2);\n break;\n case 'Feature':\n return this.compareFeature(g1, g2);\n default:\n if (g1.type.indexOf('Multi') === 0) {\n var context = this;\n var g1s = explode(g1);\n var g2s = explode(g2);\n return g1s.every(function(g1part) {\n return this.some(function(g2part) {\n return context.compare(g1part,g2part);\n });\n },g2s);\n }\n }\n return false;\n};\n\nfunction explode(g) {\n return g.coordinates.map(function(part) {\n return {\n type: g.type.replace('Multi', ''),\n coordinates: part}\n });\n}\n//compare length of coordinates/array\nfunction sameLength(g1,g2) {\n return g1.hasOwnProperty('coordinates') ?\n g1.coordinates.length === g2.coordinates.length\n : g1.length === g2.length;\n}\n\n// compare the two coordinates [x,y]\nEquality.prototype.compareCoord = function(c1,c2) {\n if (c1.length !== c2.length) {\n return false;\n }\n\n for (var i=0; i < c1.length; i++) {\n if (c1[i].toFixed(this.precision) !== c2[i].toFixed(this.precision)) {\n return false;\n }\n }\n return true;\n};\n\nEquality.prototype.compareLine = function(path1,path2,ind,isPoly) {\n if (!sameLength(path1,path2)) return false;\n var p1 = this.pseudoNode ? path1 : this.removePseudo(path1);\n var p2 = this.pseudoNode ? path2 : this.removePseudo(path2);\n if (isPoly && !this.compareCoord(p1[0],p2[0])) {\n // fix start index of both to same point\n p2 = this.fixStartIndex(p2,p1);\n if(!p2) return;\n }\n // for linestring ind =0 and for polygon ind =1\n var sameDirection = this.compareCoord(p1[ind],p2[ind]);\n if (this.direction || sameDirection\n ) {\n return this.comparePath(p1, p2);\n } else {\n if (this.compareCoord(p1[ind],p2[p2.length - (1+ind)])\n ) {\n return this.comparePath(p1.slice().reverse(), p2);\n }\n return false;\n }\n};\nEquality.prototype.fixStartIndex = function(sourcePath,targetPath) {\n //make sourcePath first point same as of targetPath\n var correctPath,ind = -1;\n for (var i=0; i< sourcePath.length; i++) {\n if(this.compareCoord(sourcePath[i],targetPath[0])) {\n ind = i;\n break;\n }\n }\n if (ind >= 0) {\n correctPath = [].concat(\n sourcePath.slice(ind,sourcePath.length),\n sourcePath.slice(1,ind+1));\n }\n return correctPath;\n};\nEquality.prototype.comparePath = function (p1,p2) {\n var cont = this;\n return p1.every(function(c,i) {\n return cont.compareCoord(c,this[i]);\n },p2);\n};\n\nEquality.prototype.comparePolygon = function(g1,g2) {\n if (this.compareLine(g1.coordinates[0],g2.coordinates[0],1,true)) {\n var holes1 = g1.coordinates.slice(1,g1.coordinates.length);\n var holes2 = g2.coordinates.slice(1,g2.coordinates.length);\n var cont = this;\n return holes1.every(function(h1) {\n return this.some(function(h2) {\n return cont.compareLine(h1,h2,1,true);\n });\n },holes2);\n } else {\n return false;\n }\n};\n\nEquality.prototype.compareFeature = function(g1,g2) {\n if (\n g1.id !== g2.id ||\n !this.objectComparator(g1.properties, g2.properties) ||\n !this.compareBBox(g1,g2)\n ) {\n return false;\n }\n return this.compare(g1.geometry, g2.geometry);\n};\n\nEquality.prototype.compareBBox = function(g1,g2) {\n if (\n (!g1.bbox && !g2.bbox) || \n (\n g1.bbox && g2.bbox &&\n this.compareCoord(g1.bbox, g2.bbox)\n )\n ) {\n return true;\n }\n return false;\n};\nEquality.prototype.removePseudo = function(path) {\n //TODO to be implement\n return path;\n};\n\nfunction objectComparator(obj1, obj2) {\n return deepEqual(obj1, obj2, {strict: true});\n}\n\nmodule.exports = Equality;\n",
|
17
|
+
"var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n",
|
18
|
+
"var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n",
|
19
|
+
"exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n"
|
20
|
+
]
|
21
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.GeojsonEquality=e()}}(function(){return function e(t,r,o){function n(c,u){if(!r[c]){if(!t[c]){var p="function"==typeof require&&require;if(!u&&p)return p(c,!0);if(i)return i(c,!0);var s=new Error("Cannot find module '"+c+"'");throw s.code="MODULE_NOT_FOUND",s}var a=r[c]={exports:{}};t[c][0].call(a.exports,function(e){var r=t[c][1][e];return n(r?r:e)},a,a.exports,e,t,r,o)}return r[c].exports}for(var i="function"==typeof require&&require,c=0;c<o.length;c++)n(o[c]);return n}({1:[function(e,t){function r(e){return e.coordinates.map(function(t){return{type:e.type.replace("Multi",""),coordinates:t}})}function o(e,t){return e.hasOwnProperty("coordinates")?e.coordinates.length===t.coordinates.length:e.length===t.length}function n(e,t){return i(e,t,{strict:!0})}var i=e("deep-equal"),c=function(e){this.precision=e&&e.precision?e.precision:17,this.direction=e&&e.direction?e.direction:!1,this.pseudoNode=e&&e.pseudoNode?e.pseudoNode:!1,this.objectComparator=e&&e.objectComparator?e.objectComparator:n};c.prototype.compare=function(e,t){if(e.type!==t.type||!o(e,t))return!1;switch(e.type){case"Point":return this.compareCoord(e.coordinates,t.coordinates);case"LineString":return this.compareLine(e.coordinates,t.coordinates,0,!1);case"Polygon":return this.comparePolygon(e,t);case"Feature":return this.compareFeature(e,t);default:if(0===e.type.indexOf("Multi")){var n=this,i=r(e),c=r(t);return i.every(function(e){return this.some(function(t){return n.compare(e,t)})},c)}}return!1},c.prototype.compareCoord=function(e,t){if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(e[r].toFixed(this.precision)!==t[r].toFixed(this.precision))return!1;return!0},c.prototype.compareLine=function(e,t,r,n){if(!o(e,t))return!1;var i=this.pseudoNode?e:this.removePseudo(e),c=this.pseudoNode?t:this.removePseudo(t);if(!n||this.compareCoord(i[0],c[0])||(c=this.fixStartIndex(c,i))){var u=this.compareCoord(i[r],c[r]);return this.direction||u?this.comparePath(i,c):this.compareCoord(i[r],c[c.length-(1+r)])?this.comparePath(i.slice().reverse(),c):!1}},c.prototype.fixStartIndex=function(e,t){for(var r,o=-1,n=0;n<e.length;n++)if(this.compareCoord(e[n],t[0])){o=n;break}return o>=0&&(r=[].concat(e.slice(o,e.length),e.slice(1,o+1))),r},c.prototype.comparePath=function(e,t){var r=this;return e.every(function(e,t){return r.compareCoord(e,this[t])},t)},c.prototype.comparePolygon=function(e,t){if(this.compareLine(e.coordinates[0],t.coordinates[0],1,!0)){var r=e.coordinates.slice(1,e.coordinates.length),o=t.coordinates.slice(1,t.coordinates.length),n=this;return r.every(function(e){return this.some(function(t){return n.compareLine(e,t,1,!0)})},o)}return!1},c.prototype.compareFeature=function(e,t){return e.id===t.id&&this.objectComparator(e.properties,t.properties)&&this.compareBBox(e,t)?this.compare(e.geometry,t.geometry):!1},c.prototype.compareBBox=function(e,t){return!e.bbox&&!t.bbox||e.bbox&&t.bbox&&this.compareCoord(e.bbox,t.bbox)?!0:!1},c.prototype.removePseudo=function(e){return e},t.exports=c},{"deep-equal":2}],2:[function(e,t){function r(e){return null===e||void 0===e}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function n(e,t,n){var s,a;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(u(e))return u(t)?(e=i.call(e),t=i.call(t),p(e,t,n)):!1;if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0}try{var f=c(e),l=c(t)}catch(d){return!1}if(f.length!=l.length)return!1;for(f.sort(),l.sort(),s=f.length-1;s>=0;s--)if(f[s]!=l[s])return!1;for(s=f.length-1;s>=0;s--)if(a=f[s],!p(e[a],t[a],n))return!1;return typeof e==typeof t}var i=Array.prototype.slice,c=e("./lib/keys.js"),u=e("./lib/is_arguments.js"),p=t.exports=function(e,t,r){return r||(r={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():"object"!=typeof e&&"object"!=typeof t?r.strict?e===t:e==t:n(e,t,r)}},{"./lib/is_arguments.js":3,"./lib/keys.js":4}],3:[function(e,t,r){function o(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function n(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var i="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();r=t.exports=i?o:n,r.supported=o,r.unsupported=n},{}],4:[function(e,t,r){function o(e){var t=[];for(var r in e)t.push(r);return t}r=t.exports="function"==typeof Object.keys?Object.keys:o,r.shim=o},{}]},{},[1])(1)});
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.leaflet-control-controlPanel {
|
2
|
+
background-color: #fff;
|
3
|
+
border: 2px solid rgba(0, 0, 0, 0.2);
|
4
|
+
border-radius: 2px; }
|
5
|
+
.leaflet-control-controlPanel.large {
|
6
|
+
width: 200px;
|
7
|
+
height: 390px; }
|
8
|
+
.leaflet-control-controlPanel .leaflet-control-controlPanel-properties {
|
9
|
+
width: 98%;
|
10
|
+
height: 80%;
|
11
|
+
padding: 1%;
|
12
|
+
float: left; }
|
13
|
+
.leaflet-control-controlPanel .leaflet-control-controlPanel-properties .property {
|
14
|
+
margin-top: 10px; }
|
15
|
+
.leaflet-control-controlPanel .leaflet-control-controlPanel-actions {
|
16
|
+
padding: 2%;
|
17
|
+
width: 96%;
|
18
|
+
height: 16%;
|
19
|
+
float: left;
|
20
|
+
text-align: center;
|
21
|
+
border-top: 1px solid rgba(0, 0, 0, 0.2); }
|
22
|
+
.leaflet-control-controlPanel .leaflet-control-controlPanel-actions .button {
|
23
|
+
border: 2px solid rgba(0, 0, 0, 0.2);
|
24
|
+
font-size: 0.8em;
|
25
|
+
display: inline-block;
|
26
|
+
margin-right: 5%;
|
27
|
+
padding: 1%;
|
28
|
+
border-radius: 2px;
|
29
|
+
margin-top: 8%; }
|
@@ -0,0 +1,269 @@
|
|
1
|
+
/******/ (function(modules) { // webpackBootstrap
|
2
|
+
/******/ // The module cache
|
3
|
+
/******/ var installedModules = {};
|
4
|
+
/******/
|
5
|
+
/******/ // The require function
|
6
|
+
/******/ function __webpack_require__(moduleId) {
|
7
|
+
/******/
|
8
|
+
/******/ // Check if module is in cache
|
9
|
+
/******/ if(installedModules[moduleId]) {
|
10
|
+
/******/ return installedModules[moduleId].exports;
|
11
|
+
/******/ }
|
12
|
+
/******/ // Create a new module (and put it into the cache)
|
13
|
+
/******/ var module = installedModules[moduleId] = {
|
14
|
+
/******/ i: moduleId,
|
15
|
+
/******/ l: false,
|
16
|
+
/******/ exports: {}
|
17
|
+
/******/ };
|
18
|
+
/******/
|
19
|
+
/******/ // Execute the module function
|
20
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21
|
+
/******/
|
22
|
+
/******/ // Flag the module as loaded
|
23
|
+
/******/ module.l = true;
|
24
|
+
/******/
|
25
|
+
/******/ // Return the exports of the module
|
26
|
+
/******/ return module.exports;
|
27
|
+
/******/ }
|
28
|
+
/******/
|
29
|
+
/******/
|
30
|
+
/******/ // expose the modules object (__webpack_modules__)
|
31
|
+
/******/ __webpack_require__.m = modules;
|
32
|
+
/******/
|
33
|
+
/******/ // expose the module cache
|
34
|
+
/******/ __webpack_require__.c = installedModules;
|
35
|
+
/******/
|
36
|
+
/******/ // define getter function for harmony exports
|
37
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
39
|
+
/******/ Object.defineProperty(exports, name, {
|
40
|
+
/******/ configurable: false,
|
41
|
+
/******/ enumerable: true,
|
42
|
+
/******/ get: getter
|
43
|
+
/******/ });
|
44
|
+
/******/ }
|
45
|
+
/******/ };
|
46
|
+
/******/
|
47
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
48
|
+
/******/ __webpack_require__.n = function(module) {
|
49
|
+
/******/ var getter = module && module.__esModule ?
|
50
|
+
/******/ function getDefault() { return module['default']; } :
|
51
|
+
/******/ function getModuleExports() { return module; };
|
52
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
53
|
+
/******/ return getter;
|
54
|
+
/******/ };
|
55
|
+
/******/
|
56
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
57
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
58
|
+
/******/
|
59
|
+
/******/ // __webpack_public_path__
|
60
|
+
/******/ __webpack_require__.p = "";
|
61
|
+
/******/
|
62
|
+
/******/ // Load entry module and return exports
|
63
|
+
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
64
|
+
/******/ })
|
65
|
+
/************************************************************************/
|
66
|
+
/******/ ([
|
67
|
+
/* 0 */
|
68
|
+
/***/ (function(module, exports, __webpack_require__) {
|
69
|
+
|
70
|
+
__webpack_require__(1);
|
71
|
+
module.exports = __webpack_require__(4);
|
72
|
+
|
73
|
+
|
74
|
+
/***/ }),
|
75
|
+
/* 1 */
|
76
|
+
/***/ (function(module, exports, __webpack_require__) {
|
77
|
+
|
78
|
+
var L, _,
|
79
|
+
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
|
80
|
+
hasProp = {}.hasOwnProperty;
|
81
|
+
|
82
|
+
L = __webpack_require__(2);
|
83
|
+
|
84
|
+
_ = __webpack_require__(3);
|
85
|
+
|
86
|
+
L.Control.ControlPanel = (function(superClass) {
|
87
|
+
extend(ControlPanel, superClass);
|
88
|
+
|
89
|
+
ControlPanel.prototype.options = {
|
90
|
+
position: 'bottomleft',
|
91
|
+
className: 'leaflet-control-controlPanel',
|
92
|
+
titleClassName: 'leaflet-control-controlPanel-title',
|
93
|
+
propertiesClassName: 'leaflet-control-controlPanel-properties',
|
94
|
+
actionsClassName: 'leaflet-control-controlPanel-actions',
|
95
|
+
expanded: true,
|
96
|
+
ignoreActions: false
|
97
|
+
};
|
98
|
+
|
99
|
+
function ControlPanel(_toolbar, options) {
|
100
|
+
this._toolbar = _toolbar;
|
101
|
+
if (options == null) {
|
102
|
+
options = {};
|
103
|
+
}
|
104
|
+
this.options = _.merge(this.options, options);
|
105
|
+
this._toolbar.on('enable', this.addPanel, this);
|
106
|
+
this._toolbar.on('disable', this.removePanel, this);
|
107
|
+
this._actionButtons = [];
|
108
|
+
}
|
109
|
+
|
110
|
+
ControlPanel.prototype.addPanel = function() {
|
111
|
+
L.DomUtil.remove(this._toolbar._actionsContainer);
|
112
|
+
this._toolbar._map.addControl(this);
|
113
|
+
return L.DomEvent.on(this._toolbar._map._container, 'keyup', this._onCancel, this);
|
114
|
+
};
|
115
|
+
|
116
|
+
ControlPanel.prototype.removePanel = function() {
|
117
|
+
L.DomEvent.off(this._toolbar._map._container, 'keyup', this._onCancel, this);
|
118
|
+
return this._toolbar._map.removeControl(this);
|
119
|
+
};
|
120
|
+
|
121
|
+
ControlPanel.prototype._onCancel = function(e) {
|
122
|
+
if (e.keyCode === 27) {
|
123
|
+
return this._toolbar.disable();
|
124
|
+
}
|
125
|
+
};
|
126
|
+
|
127
|
+
ControlPanel.prototype.onAdd = function(map) {
|
128
|
+
this._container = L.DomUtil.create('div', this.options.className);
|
129
|
+
if (this.options.expanded) {
|
130
|
+
L.DomUtil.addClass(this._container, 'large');
|
131
|
+
}
|
132
|
+
if (this.options.title) {
|
133
|
+
this._titleContainer = L.DomUtil.create('div', this.options.titleClassName, this._container);
|
134
|
+
this._titleContainer.innerHTML = this.options.title;
|
135
|
+
}
|
136
|
+
this._propertiesContainer = L.DomUtil.create('div', this.options.propertiesClassName, this._container);
|
137
|
+
L.DomEvent.disableScrollPropagation(this._container);
|
138
|
+
if (!this.options.ignoreActions) {
|
139
|
+
this._actionsContainer = L.DomUtil.create('div', this.options.actionsClassName, this._container);
|
140
|
+
this._showActionsToolbar();
|
141
|
+
}
|
142
|
+
this.addProperties();
|
143
|
+
return this._container;
|
144
|
+
};
|
145
|
+
|
146
|
+
ControlPanel.prototype.addProperties = function() {
|
147
|
+
this._addAnimatedHelper();
|
148
|
+
return this._addPointerCoordinates();
|
149
|
+
};
|
150
|
+
|
151
|
+
ControlPanel.prototype.onRemove = function() {};
|
152
|
+
|
153
|
+
ControlPanel.prototype._createActions = function(handler) {
|
154
|
+
var button, buttons, container, di, div, dl, i, l, results;
|
155
|
+
container = this._actionsContainer;
|
156
|
+
buttons = this._toolbar.getActions(handler);
|
157
|
+
l = buttons.length;
|
158
|
+
di = 0;
|
159
|
+
dl = this._actionButtons.length;
|
160
|
+
while (di < dl) {
|
161
|
+
this._toolbar._disposeButton(this._actionButtons[di].button, this._actionButtons[di].callback);
|
162
|
+
di++;
|
163
|
+
}
|
164
|
+
this._actionButtons = [];
|
165
|
+
while (container.firstChild) {
|
166
|
+
container.removeChild(container.firstChild);
|
167
|
+
}
|
168
|
+
i = 0;
|
169
|
+
results = [];
|
170
|
+
while (i < l) {
|
171
|
+
if ('enabled' in buttons[i] && !buttons[i].enabled) {
|
172
|
+
i++;
|
173
|
+
continue;
|
174
|
+
}
|
175
|
+
div = L.DomUtil.create('div', 'button', container);
|
176
|
+
button = this._toolbar._createButton({
|
177
|
+
title: buttons[i].title,
|
178
|
+
text: buttons[i].text,
|
179
|
+
container: div,
|
180
|
+
callback: buttons[i].callback,
|
181
|
+
context: buttons[i].context
|
182
|
+
});
|
183
|
+
this._actionButtons.push({
|
184
|
+
button: button,
|
185
|
+
callback: buttons[i].callback
|
186
|
+
});
|
187
|
+
results.push(i++);
|
188
|
+
}
|
189
|
+
return results;
|
190
|
+
};
|
191
|
+
|
192
|
+
ControlPanel.prototype._showActionsToolbar = function() {
|
193
|
+
var buttonIndex, lastButtonIndex, toolbarPosition;
|
194
|
+
buttonIndex = this._toolbar._activeMode.buttonIndex;
|
195
|
+
lastButtonIndex = this._toolbar._lastButtonIndex;
|
196
|
+
toolbarPosition = this._toolbar._activeMode.button.offsetTop - 1;
|
197
|
+
this._createActions(this._toolbar._activeMode.handler);
|
198
|
+
this._actionsContainer.style.top = toolbarPosition + 'px';
|
199
|
+
if (buttonIndex === 0) {
|
200
|
+
L.DomUtil.addClass(this._actionsContainer, 'leaflet-draw-actions-top');
|
201
|
+
}
|
202
|
+
if (buttonIndex === lastButtonIndex) {
|
203
|
+
L.DomUtil.addClass(this._actionsContainer, 'leaflet-draw-actions-bottom');
|
204
|
+
}
|
205
|
+
this._actionsContainer.style.display = 'block';
|
206
|
+
};
|
207
|
+
|
208
|
+
ControlPanel.prototype._hideActionsToolbar = function() {
|
209
|
+
this._actionsContainer.style.display = 'none';
|
210
|
+
L.DomUtil.removeClass(this._actionsContainer, 'leaflet-draw-actions-top');
|
211
|
+
L.DomUtil.removeClass(this._actionsContainer, 'leaflet-draw-actions-bottom');
|
212
|
+
};
|
213
|
+
|
214
|
+
ControlPanel.prototype._addAnimatedHelper = function() {
|
215
|
+
var container, img;
|
216
|
+
container = L.DomUtil.create('div', 'property', this._propertiesContainer);
|
217
|
+
this._animatedHelperContainer = L.DomUtil.create('div', 'property-content', container);
|
218
|
+
if (this.options.animatedHelper) {
|
219
|
+
img = L.DomUtil.create('img', 'animated-helper', this._animatedHelperContainer);
|
220
|
+
return img.src = this.options.animatedHelper;
|
221
|
+
}
|
222
|
+
};
|
223
|
+
|
224
|
+
ControlPanel.prototype._addPointerCoordinates = function() {
|
225
|
+
var container, containerTitle;
|
226
|
+
container = L.DomUtil.create('div', 'property', this._propertiesContainer);
|
227
|
+
containerTitle = L.DomUtil.create('div', 'property-title', container);
|
228
|
+
containerTitle.innerHTML = this.options.coordinatesProperty;
|
229
|
+
this._pointerCoordinatesContainer = L.DomUtil.create('div', 'property-content', container);
|
230
|
+
return this._map.on('mousemove', this._onUpdateCoordinates, this);
|
231
|
+
};
|
232
|
+
|
233
|
+
ControlPanel.prototype._onUpdateCoordinates = function(e) {
|
234
|
+
var coordinates, lat, latRow, lng, lngRow;
|
235
|
+
coordinates = e.latlng;
|
236
|
+
L.DomUtil.empty(this._pointerCoordinatesContainer);
|
237
|
+
latRow = L.DomUtil.create('div', 'coordinates-row', this._pointerCoordinatesContainer);
|
238
|
+
lat = L.DomUtil.create('div', 'coordinate', latRow);
|
239
|
+
lat.innerHTML = "lat: " + coordinates.lat;
|
240
|
+
lngRow = L.DomUtil.create('div', 'coordinates-row', this._pointerCoordinatesContainer);
|
241
|
+
lng = L.DomUtil.create('div', 'coordinate', lngRow);
|
242
|
+
return lng.innerHTML = "lng: " + coordinates.lng;
|
243
|
+
};
|
244
|
+
|
245
|
+
return ControlPanel;
|
246
|
+
|
247
|
+
})(L.Control);
|
248
|
+
|
249
|
+
|
250
|
+
/***/ }),
|
251
|
+
/* 2 */
|
252
|
+
/***/ (function(module, exports) {
|
253
|
+
|
254
|
+
module.exports = L;
|
255
|
+
|
256
|
+
/***/ }),
|
257
|
+
/* 3 */
|
258
|
+
/***/ (function(module, exports) {
|
259
|
+
|
260
|
+
module.exports = _;
|
261
|
+
|
262
|
+
/***/ }),
|
263
|
+
/* 4 */
|
264
|
+
/***/ (function(module, exports) {
|
265
|
+
|
266
|
+
// removed by extract-text-webpack-plugin
|
267
|
+
|
268
|
+
/***/ })
|
269
|
+
/******/ ]);
|