ekylibre-cartography 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
/******/ ]);
|