Commit f522c40c99c9b67163de61544b350557a5da9d42

Authored by Edmar Moretti
1 parent a0472888

Remoção de arquivos não utilizados

PITCHME.md 0 → 100644
ms_configura.php
... ... @@ -95,7 +95,6 @@ Exemplo de chave: def00000881f5d29aa8604e109797766cd26754c4cc06be02c09163810a78a
95 95 $i3geoKeys = array(
96 96 "salvaMapfile"=>""
97 97 );
98   -//TODO documentar no moodle
99 98 /*
100 99 Variable: $i3geoPermiteLogin
101 100  
... ... @@ -187,17 +186,8 @@ $i3geoEsquemasWL = array();
187 186 Tipo:
188 187 {array}
189 188 */
190   -$i3geoUploadDataWL = array(
191   - "arquivos" => array(
192   - "Pasta 1"=>"/tmp/ms_tmp"
193   - ),
194   - "postgis" => array(
195   - "esquemas"=>array("esquema1","i3geo_metaestat","public"),
196   - "conexao"=>array("user"=> "postgres", "password"=>"postgres", "dbname"=>"i3geosaude", "host"=>"localhost", "port"=>"5432")
197   - )
198   -);
  189 +$i3geoUploadDataWL = array();
199 190  
200   -//TODO documentar moodle
201 191 /*
202 192 Variale: $logExec
203 193  
... ... @@ -262,7 +252,7 @@ No caso do SAIKU, verifique tambem se o programa i3geo/ferramentas/saiku/esquema
262 252 abrir e verificar o inicio desse arquivo). Veja tambem: i3geo/ferramentas/saiku/install.txt
263 253 */
264 254 $statusFerramentas = array(
265   - "saiku"=>true,
  255 + "saiku"=>false,
266 256 "melhorcaminho"=>false
267 257 );
268 258 /*
... ... @@ -318,7 +308,7 @@ inseretxt,mostraexten,outputformat,perfil,tipoimagem
318 308  
319 309 */
320 310 //$i3geoBlFerramentas = array("saiku");
321   -$i3geoBlFerramentas = array();
  311 +$i3geoBlFerramentas = array("saiku");
322 312 /*
323 313 Variable: $ogrOutput
324 314  
... ...
pacotes/wicket/bower.json
... ... @@ -1,14 +0,0 @@
1   -{
2   - "name": "Wicket",
3   - "version": "1.2",
4   - "main": [
5   - "wicket.js",
6   - "wicket-arcgis.js",
7   - "wicket-gmap3.js",
8   - "wicket-leaflet.js"
9   - ],
10   - "ignore": [
11   - "doc/*",
12   - "tests/*"
13   - ]
14   -}
pacotes/wicket/doc/arcgis.html
... ... @@ -1,221 +0,0 @@
1   -<html>
2   -<head>
3   - <link rel="stylesheet" type="text/css" href="/static/font/Cabin.css" />
4   - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5   - <!-- Conditional commenting for non-IE browsers -->
6   - <!--[if !IE]><!-->
7   - <link rel="stylesheet" type="text/css" href="/static/wicket/doc/index.css" />
8   - <!--<![endif]-->
9   - <!-- Conditional commenting for IE 6.x -->
10   - <!--[if IE]>
11   - <link rel="stylesheet" type="text/css" href="/static/wicket/doc/index.ie.css" />
12   - <![endif]-->
13   - <link rel="stylesheet" href="/static/leaflet/0.5.1/dist/leaflet.css" />
14   - <!--[if lte IE 8]>
15   - <link rel="stylesheet" href="/static/leaflet/0.5.1/dist/leaflet.ie.css" />
16   - <![endif]-->
17   -</head>
18   -<title>Wicket - Lightweight Javascript for WKT [ESRI ArcGIS Sandbox]</title>
19   -<link href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/dojo/dijit/themes/claro/claro.css" rel="stylesheet" type="text/css" >
20   -<link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/css/esri.css" />
21   -<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/" type="text/javascript"></script>
22   -<script src="../wicket.js" type="text/javascript"></script>
23   -<script src="../wicket-arcgis.js" type="text/javascript"></script>
24   -<script type="text/javascript">
25   -var app = (function () {
26   -
27   - return {
28   - features: [],
29   -
30   - /**
31   - * Clears the map contents.
32   - */
33   - clearMap: function () {
34   - var i;
35   -
36   - // Reset the remembered last string (so that we can clear the map,
37   - // paste the same string, and see it again)
38   - document.getElementById('wkt').last = '';
39   -
40   - for (i = 0; i < this.features.length; i += 1) {
41   - this.map.graphics.remove(this.features[i]);
42   - }
43   -
44   - //this.features.length = 0;
45   - },
46   -
47   - /**
48   - * Clears the current contents of the textarea.
49   - */
50   - clearText: function () {
51   - document.getElementById('wkt').value = '';
52   - },
53   -
54   - /**
55   - * Maps the current contents of the textarea.
56   - * @param editable {Boolean} Indicates that the feature drawn should be editable
57   - * @param focus {Boolean} Indicates that the map should pan and/or zoom to new features
58   - * @return {Object} Some sort of geometry object
59   - */
60   - mapIt: function (editable, focus) {
61   - var config, el, graphic, obj, symbol, wkt;
62   -
63   - // Indicates that the map should pan and/or zoom to new features
64   - focus = focus || false;
65   -
66   - if (editable === undefined) {
67   - editable = true;
68   - }
69   -
70   - el = document.getElementById('wkt');
71   - wkt = new Wkt.Wkt();
72   -
73   - if (el.last === el.value) { // Remember the last string
74   - return; // Do nothing if the WKT string hasn't changed
75   - } else {
76   - el.last = el.value;
77   - }
78   -
79   - try { // Catch any malformed WKT strings
80   - wkt.read(el.value);
81   - } catch (e1) {
82   - try {
83   - wkt.read(el.value.replace('\n', '').replace('\r', '').replace('\t', ''));
84   - } catch (e2) {
85   - if (e2.name === 'WKTError') {
86   - alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');
87   - return;
88   - }
89   - }
90   - }
91   -
92   - config = {
93   - spatialReference: {
94   - wkid: 4326 // WGS84 unprojected
95   - },
96   - editable: editable
97   - };
98   -
99   - obj = wkt.toObject(config); // Make an object
100   -
101   - switch (obj.type) {
102   - case "point":
103   - symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 1), new dojo.Color([0,255,0,0.25]));
104   - break;
105   - case "polyline":
106   - symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASH, new dojo.Color([255,0,0]), 1);
107   - break;
108   - case "polygon":
109   - symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25]));
110   - break;
111   - case "extent":
112   - symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25]));
113   - break;
114   - case "multipoint":
115   - symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_DIAMOND, 20, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0]), 1), new dojo.Color([255,255,0,0.5]));
116   - break;
117   - }
118   -
119   - graphic = new esri.Graphic(obj, symbol);
120   - this.map.graphics.add(graphic); // Add to map
121   - this.features.push(graphic); // Remember it for later
122   -
123   - return obj;
124   - },
125   -
126   - /**
127   - * Updates the textarea based on the first available feature.
128   - */
129   - updateText: function () {
130   - var wkt = new Wkt.Wkt();
131   - wkt.fromObject(this.features[0]);
132   - document.getElementById('wkt').value = wkt.write();
133   - },
134   -
135   - /**
136   - * Formats the textarea contents for a URL.
137   - * @param checked {Boolean} The check state of the associated checkbox
138   - */
139   - urlify: function (checked) {
140   - var wkt = new Wkt.Wkt();
141   - wkt.read(document.getElementById('wkt').value);
142   - wkt.delimiter = (checked) ? '+' : ' ';
143   - document.getElementById('wkt').value = wkt.write();
144   - return wkt;
145   - },
146   -
147   - /**
148   - * Application entry point.
149   - * @return {<L.map>} The Leaflet instance
150   - */
151   - init: function () {
152   - var map = new esri.Map('canvas', {
153   - center: [10, 20],
154   - zoom: 2,
155   - basemap: 'oceans'
156   - });
157   -
158   - // Set event handlers //////////////////////////////////////////////
159   - dojo.connect(map, 'onLoad', function() {
160   - document.getElementById('wkt').value = 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 45 20, 30 5, 10 10, 10 30, 20 35), (30 20, 20 25, 20 15, 30 20)))';
161   - });
162   -
163   - return map;
164   - }
165   -
166   - };
167   -
168   -}());
169   -
170   -dojo.require('esri.map');
171   -//dojo.addOnLoad(app.init); // Not necessary; see <body> tag
172   -
173   -</script>
174   -<body onload="app.map=app.init();"><!--app.mapIt(false, false);">-->
175   - <div id="head">
176   - <div class="wrapper">
177   - </div>
178   - </div>
179   - <div id="ribbon">
180   - <div class="wrapper">
181   - <a href="http://github.com/arthur-e/Wicket">
182   - <div id="forkme">&nbsp;
183   - </div>
184   - </a>
185   - <div id="canvas">
186   - </div>
187   - <div id="controls">
188   - <div class="title">
189   - <div class="brand">Wicket</div>
190   - &nbsp;It whispers WKT in your application's ear.
191   - </div>
192   - <div class="text">
193   - Wicket is a lightweight Javascript library that reads and writes <a href="http://en.wikipedia.org/wiki/Well-known_text#Geometric_objects" target="_blaknk">Well-Known Text (WKT)</a> strings. It can also be extended to parse and to create geometric objects from various mapping frameworks, such as <a href="http://http://leafletjs.com/" target="_blank">Leaflet</a> and the Google Maps API.
194   - </div>
195   - <div id="form">
196   - <textarea type="text" name="wkt" id="wkt"></textarea>
197   - <label><input type="checkbox" name="urlify" id="urlify" onchange="app.urlify(this.checked);" />Format for URLs</label>
198   - <input type="submit" id="submit" value="Map It!" onclick="app.clearMap();app.mapIt(true, true);" />
199   - <input type="reset" id="reset" value="Clear Map" onclick="app.clearText();app.clearMap();" />
200   - </div>
201   - </div>
202   - </div>
203   - </div>
204   - <div id="foot">
205   - <div class="wrapper">
206   - <div class="menu" id="nav">
207   - <a href="/">Home</a>
208   - <a href="mailto:kaendsle@mtu.edu">Contact Me</a>
209   - <a href="http://github.com/arthur-e/Wicket">"Fork me on GitHub!"</a>
210   - </div>
211   - <div class="attribute">
212   - Design &copy; 2012-2013 <a href="mailto:kaendsle@mtu.edu">K. Arthur Endsley</a>
213   - <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_GB">
214   - <img alt="Wicket is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License" style="float:right;border-width:0;vertical-align:middle;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" />
215   - </a><br />
216   - Wicket is released under the <a href="https://github.com/arthur-e/Wicket/blob/master/LICENSE" target="_blank">GPL v3</a>
217   - </div>
218   - </div>
219   - </div>
220   -</body>
221   -</html>
pacotes/wicket/doc/dot_shadow.png

1.27 KB

pacotes/wicket/doc/index.css
... ... @@ -1,85 +0,0 @@
1   -body {margin:0;padding:0;background:#CF6;border-top:5px solid #000;font-family:Helvetica,Arial,sans-serif;font-size:14px;}
2   -img {border:none;}
3   -label {color:#666;}
4   -label:hover {color:#333;}
5   -a:link,
6   -a:visited {color:#460;text-decoration:none;}
7   -
8   -.leaflet-container .leaflet-control-attribution {color:white;background:none !important;box-shadow:none !important;}
9   -.leaflet-container .leaflet-control-attribution a:link,
10   -.leaflet-container .leaflet-control-attribution a:visited {color:#8C0;}
11   -
12   -.attribute {width:290px;float:right;padding:10px 0;text-align:left;font-size:10px;line-height:16px;}
13   -.menu {float:left;margin:0;padding:0;list-style:none;}
14   -.menu a {display:inline-block;margin:0;padding:5px 0 10px;margin:0 25px 0 0;border-top:5px solid transparent;}
15   -.menu a:hover,
16   -.menu a:active {border-top:5px solid #999;color:#000;text-decoration:none;}
17   -.text {color:#333;}
18   -.wrapper {width:1000px;height:100%;margin:0 auto;}
19   -
20   -#canvas {width:698px;height:100%;background:#AAA;border-left:1px solid #999;border-right:1px solid #999;}
21   -#canvas,
22   -#controls {float:left;}
23   -#controls {width:290px;height:100%;padding:0 0 0 10px;text-align:justify;background:transparent;position:relative;top:-80px;}
24   -#controls .text {margin:90px 0 0;}
25   -#controls a:hover,
26   -#controls a:active {text-decoration:underline;}
27   -#forkme {width:141px;height:141px;z-index:9999;position:absolute;left:0;top:4px;background:transparent url(https://s3.amazonaws.com/github/ribbons/forkme_left_red_aa0000.png) no-repeat left top;}
28   -#form {margin:10px 0 0;font-size:14px;color:#666;font-family:CabinItalic,sans-serif;}
29   -#form #wkt {width:100%;height:150px;border:1px solid #999;padding:3px;resize:none;}
30   -#form #urlify {vertical-align:baseline;margin:10px 5px 0 0;}
31   -#form #reset {margin:10px 10px 0 0;
32   - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc');
33   - -ms-filter: "progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc')";
34   - background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
35   - background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
36   - background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
37   - background-image: -webkit-gradient(linear, center top, center bottom, from(#eeeeee), to(#cccccc));
38   - background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
39   - background-image: linear-gradient(top, #eeeeee, #cccccc);
40   - -moz-background-clip: padding;
41   - -webkit-background-clip: padding-box;
42   - background-clip: padding-box;
43   - }
44   -#form #reset,
45   -#form #submit {float:right;height:30px;margin-top:10px;padding:0 5px 2px 5px;font-family:CabinItalic,sans-serif;font-size:16px;color:#666;
46   - border: 1px solid #999999;
47   - -moz-border-radius: 5px;
48   - -webkit-border-radius: 5px;
49   - border-radius: 5px;
50   - }
51   -#form #submit {background-color: #EF9;
52   - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeffcc', endColorstr = '#ddff99');
53   - -ms-filter: "progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeffcc', endColorstr = '#ddff99')";
54   - background-image: -moz-linear-gradient(top, #eeffcc, #ddff99);
55   - background-image: -ms-linear-gradient(top, #eeffcc, #ddff99);
56   - background-image: -o-linear-gradient(top, #eeffcc, #ddff99);
57   - background-image: -webkit-gradient(linear, center top, center bottom, from(#eeffcc), to(#ddff99));
58   - background-image: -webkit-linear-gradient(top, #eeffcc, #ddff99);
59   - background-image: linear-gradient(top, #eeffcc, #ddff99);
60   - -moz-background-clip: padding;
61   - -webkit-background-clip: padding-box;
62   - background-clip: padding-box;
63   - }
64   -#form #reset:hover,
65   -#form #submit:hover {color:#333;border-color:#666;text-shadow:1px 1px 0px #FFF;
66   - -moz-box-shadow: 0px 0px 2px #999999;
67   - -webkit-box-shadow: 0px 0px 2px #999999;
68   - box-shadow: 0px 0px 2px #999999;
69   - }
70   -#form #reset:active,
71   -#form #submit:active {
72   - -moz-box-shadow:inset 0px 0px 2px #999999;
73   - -webkit-box-shadow:inset 0px 0px 2px #999999;
74   - box-shadow:inset 0px 0px 2px #999999;
75   - }
76   -#foot {background:transparent url(white_spacer.gif) repeat-x top left;}
77   -#foot,
78   -#head {width:100%;height:20%;color:#333;}
79   -#head {background:transparent url(white_spacer.gif) repeat-x bottom left;}
80   -#nav {width:698px;text-align:left;}
81   -#ribbon {width:100%;height:60%;background:#EEE;}
82   -#ribbon .wrapper {}
83   -#ribbon .wrapper .title {float:right;width:300px;height:80px;font-family:CabinRegular,sans-serif;font-size:16px;color:#333;}
84   -#ribbon .wrapper .title .brand {font-family:CabinMediumItalic,sans-serif;font-size:36px;color:#000;text-shadow:1px 1px 1px #FFF;}
85   -
pacotes/wicket/doc/index.html
... ... @@ -1,327 +0,0 @@
1   -<html>
2   -<head>
3   - <link rel="stylesheet" type="text/css" href="/static/font/Cabin.css" />
4   - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5   - <!-- Conditional commenting for non-IE browsers -->
6   - <!--[if !IE]><!-->
7   - <link rel="stylesheet" type="text/css" href="/static/wicket/doc/index.css" />
8   - <!--<![endif]-->
9   - <!-- Conditional commenting for IE 6.x -->
10   - <!--[if IE]>
11   - <link rel="stylesheet" type="text/css" href="index.ie.css" />
12   - <![endif]-->
13   - <!--<link rel="stylesheet" href="../lib/leaflet.css" />-->
14   - <!--[if lte IE 8]>
15   - <link rel="stylesheet" href="../lib/leaflet.ie.css" />
16   - <![endif]-->
17   -</head>
18   -<title>Wicket - Lightweight Javascript for WKT [Sandbox]</title>
19   -<!--<script src="../lib/leaflet.js"></script>-->
20   -<script src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing" type="text/javascript"></script>
21   -<script src="../wicket.js" type="text/javascript"></script>
22   -<script src="../wicket-gmap3.js" type="text/javascript"></script>
23   -<script type="text/javascript">
24   -var app = (function () {
25   - return {
26   - features: [],
27   - /**
28   - * Clears the map contents.
29   - */
30   - clearMap: function () {
31   - var i;
32   -
33   - // Reset the remembered last string (so that we can clear the map,
34   - // paste the same string, and see it again)
35   - document.getElementById('wkt').last = '';
36   -
37   - for (i in this.features) {
38   - if (this.features.hasOwnProperty(i)) {
39   - this.features[i].setMap(null);
40   - }
41   - }
42   - this.features.length = 0;
43   - },
44   - /**
45   - * Clears the current contents of the textarea.
46   - */
47   - clearText: function () {
48   - document.getElementById('wkt').value = '';
49   - },
50   - /**
51   - * Maps the current contents of the textarea.
52   - * @return {Object} Some sort of geometry object
53   - */
54   - mapIt: function () {
55   - var el, obj, wkt;
56   -
57   - el = document.getElementById('wkt');
58   - wkt = new Wkt.Wkt();
59   -
60   - if (el.last === el.value) { // Remember the last string
61   - return; // Do nothing if the WKT string hasn't changed
62   - } else {
63   - el.last = el.value;
64   - }
65   -
66   - try { // Catch any malformed WKT strings
67   - wkt.read(el.value);
68   - } catch (e1) {
69   - try {
70   - wkt.read(el.value.replace('\n', '').replace('\r', '').replace('\t', ''));
71   - } catch (e2) {
72   - if (e2.name === 'WKTError') {
73   - alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');
74   - return;
75   - }
76   - }
77   - }
78   -
79   - obj = wkt.toObject(this.gmap.defaults); // Make an object
80   -
81   - // Add listeners for overlay editing events
82   - if (!Wkt.isArray(obj) && wkt.type !== 'point') {
83   - // New vertex is inserted
84   - google.maps.event.addListener(obj.getPath(), 'insert_at', function (n) {
85   - app.updateText();
86   - });
87   - // Existing vertex is removed (insertion is undone)
88   - google.maps.event.addListener(obj.getPath(), 'remove_at', function (n) {
89   - app.updateText();
90   - });
91   - // Existing vertex is moved (set elsewhere)
92   - google.maps.event.addListener(obj.getPath(), 'set_at', function (n) {
93   - app.updateText();
94   - });
95   - } else {
96   - if (obj.setEditable) {obj.setEditable(false);}
97   - }
98   -
99   - if (Wkt.isArray(obj)) { // Distinguish multigeometries (Arrays) from objects
100   - for (i in obj) {
101   - if (obj.hasOwnProperty(i) && !Wkt.isArray(obj[i])) {
102   - obj[i].setMap(this.gmap);
103   - }
104   -
105   - if (wkt.type !== 'point') {
106   - // New vertex is inserted
107   - google.maps.event.addListener(obj[i].getPath(), 'insert_at', function (n) {
108   - app.updateTextPart();
109   - });
110   - // Existing vertex is removed (insertion is undone)
111   - google.maps.event.addListener(obj[i].getPath(), 'remove_at', function (n) {
112   - app.updateTextPart();
113   - });
114   - // Existing vertex is moved (set elsewhere)
115   - google.maps.event.addListener(obj[i].getPath(), 'set_at', function (n) {
116   - app.updateTextPart();
117   - });
118   - }
119   - }
120   -
121   - this.features = this.features.concat(obj);
122   - } else {
123   - obj.setMap(this.gmap); // Add it to the map
124   - this.features.push(obj);
125   - }
126   -
127   - // Pan the map to the feature
128   - if (obj.getBounds !== undefined && typeof obj.getBounds === 'function') {
129   - // For objects that have defined bounds or a way to get them
130   - this.gmap.fitBounds(obj.getBounds());
131   - } else {
132   - if (obj.getPath !== undefined && typeof obj.getPath === 'function') {
133   - // For Polygons and Polylines
134   - this.gmap.panTo(obj.getPath().getAt(0));
135   - } else { // But points (Markers) are different
136   - if (obj.getPosition !== undefined && typeof obj.getPosition === 'function') {
137   - this.gmap.panTo(obj.getPosition());
138   - }
139   - }
140   - }
141   -
142   - return obj;
143   - },
144   - /**
145   - * Updates the textarea based on the first available feature.
146   - */
147   - updateText: function () {
148   - var wkt = new Wkt.Wkt();
149   - wkt.fromObject(this.features[0]);
150   - document.getElementById('wkt').value = wkt.write();
151   - },
152   - updateTextPart: function () {
153   - var i, w, v;
154   -
155   - w = new Wkt.Wkt(this.features[0]);
156   -
157   - i = 1;
158   - while (i < this.features.length) {
159   - v = new Wkt.Wkt(this.features[i]);
160   - w.merge(v);
161   - i += 1;
162   - }
163   -
164   - document.getElementById('wkt').value = w.write();
165   - },
166   - /**
167   - * Formats the textarea contents for a URL.
168   - * @param checked {Boolean} The check state of the associated checkbox
169   - */
170   - urlify: function (checked) {
171   - var wkt = new Wkt.Wkt();
172   - wkt.read(document.getElementById('wkt').value);
173   - wkt.delimiter = (checked) ? '+' : ' ';
174   - document.getElementById('wkt').value = wkt.write();
175   - return wkt;
176   - },
177   - /**
178   - * Application entry point.
179   - * @return {<google.maps.Map>} The Google Maps API instance
180   - */
181   - init: function () {
182   - var gmap;
183   -
184   - gmap = new google.maps.Map(document.getElementById('canvas'), {
185   - center: new google.maps.LatLng(30, 10),
186   - defaults: {
187   - icon: 'red_dot.png',
188   - shadow: 'dot_shadow.png',
189   - editable: true,
190   - strokeColor: '#990000',
191   - fillColor: '#EEFFCC',
192   - fillOpacity: 0.6
193   - },
194   - disableDefaultUI: true,
195   - mapTypeControl: true,
196   - mapTypeId: google.maps.MapTypeId.ROADMAP,
197   - mapTypeControlOptions: {
198   - position: google.maps.ControlPosition.TOP_LEFT,
199   - style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
200   - },
201   - panControl: false,
202   - streetViewControl: false,
203   - zoom: 2,
204   - zoomControl: true,
205   - zoomControlOptions: {
206   - position: google.maps.ControlPosition.LEFT_TOP,
207   - style: google.maps.ZoomControlStyle.SMALL
208   - }
209   - });
210   -
211   - google.maps.event.addListener(gmap, 'tilesloaded', function () {
212   - if (!this.loaded) {
213   - this.loaded = true;
214   - // NOTE: We start with a MULTIPOLYGON; these aren't easily deconstructed, so we won't set this object to be editable in this example
215   - document.getElementById('wkt').value = 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 45 20, 30 5, 10 10, 10 30, 20 35), (30 20, 20 25, 20 15, 30 20)))';
216   - app.mapIt();
217   - }
218   - });
219   -
220   - gmap.drawingManager = new google.maps.drawing.DrawingManager({
221   - drawingControlOptions: {
222   - position: google.maps.ControlPosition.TOP_CENTER,
223   - drawingModes: [
224   - google.maps.drawing.OverlayType.MARKER,
225   - google.maps.drawing.OverlayType.POLYLINE,
226   - google.maps.drawing.OverlayType.POLYGON,
227   - google.maps.drawing.OverlayType.RECTANGLE
228   - ]
229   - },
230   - markerOptions: gmap.defaults,
231   - polygonOptions: gmap.defaults,
232   - polylineOptions: gmap.defaults,
233   - rectangleOptions: gmap.defaults
234   - });
235   - gmap.drawingManager.setMap(gmap);
236   -
237   - google.maps.event.addListener(gmap.drawingManager, 'overlaycomplete', function (event) {
238   - var wkt;
239   -
240   - app.clearText();
241   - app.clearMap();
242   -
243   - // Set the drawing mode to "pan" (the hand) so users can immediately edit
244   - this.setDrawingMode(null);
245   -
246   - // Polygon drawn
247   - if (event.type === google.maps.drawing.OverlayType.POLYGON || event.type === google.maps.drawing.OverlayType.POLYLINE) {
248   - // New vertex is inserted
249   - google.maps.event.addListener(event.overlay.getPath(), 'insert_at', function (n) {
250   - app.updateText();
251   - });
252   -
253   - // Existing vertex is removed (insertion is undone)
254   - google.maps.event.addListener(event.overlay.getPath(), 'remove_at', function (n) {
255   - app.updateText();
256   - });
257   -
258   - // Existing vertex is moved (set elsewhere)
259   - google.maps.event.addListener(event.overlay.getPath(), 'set_at', function (n) {
260   - app.updateText();
261   - });
262   - } else if (event.type === google.maps.drawing.OverlayType.RECTANGLE) { // Rectangle drawn
263   - // Listen for the 'bounds_changed' event and update the geometry
264   - google.maps.event.addListener(event.overlay, 'bounds_changed', function () {
265   - app.updateText();
266   - });
267   - }
268   -
269   - app.features.push(event.overlay);
270   - wkt = new Wkt.Wkt();
271   - wkt.fromObject(event.overlay);
272   - document.getElementById('wkt').value = wkt.write();
273   - });
274   -
275   - return gmap;
276   - }
277   - };
278   -}()); // Execute immediately
279   -</script>
280   -<body onload="app.gmap=app.init();">
281   - <a href="http://github.com/arthur-e/Wicket">
282   - <div id="forkme">&nbsp;
283   - </div>
284   - </a>
285   - <div id="head">
286   - <div class="wrapper">
287   - </div>
288   - </div>
289   - <div id="ribbon">
290   - <div class="wrapper">
291   - <div id="canvas">
292   - </div>
293   - <div id="controls">
294   - <div class="title">
295   - <div class="brand">Wicket</div>
296   - &nbsp;It whispers WKT in your application's ear.
297   - </div>
298   - <div class="text">
299   - Wicket is a lightweight Javascript library that reads and writes <a href="http://en.wikipedia.org/wiki/Well-known_text#Geometric_objects" target="_blaknk">Well-Known Text (WKT)</a> strings. It can also be extended to parse and to create geometric objects from various mapping frameworks, such as <a href="http://http://leafletjs.com/" target="_blank">Leaflet</a> and the Google Maps API.
300   - </div>
301   - <div id="form">
302   - <textarea type="text" name="wkt" id="wkt"></textarea>
303   - <label><input type="checkbox" name="urlify" id="urlify" onchange="app.urlify(this.checked);" />Format for URLs</label>
304   - <input type="submit" id="submit" value="Map It!" onclick="app.clearMap();app.mapIt();" />
305   - <input type="reset" id="reset" value="Clear Map" onclick="app.clearText();app.clearMap();" />
306   - </div>
307   - </div>
308   - </div>
309   - </div>
310   - <div id="foot">
311   - <div class="wrapper">
312   - <div class="menu" id="nav">
313   - <a href="/">Home</a>
314   - <a href="mailto:kaendsle@mtu.edu">Contact Me</a>
315   - <a href="http://github.com/arthur-e/Wicket">"Fork me on GitHub!"</a>
316   - </div>
317   - <div class="attribute">
318   - Design &copy; 2012-2013 <a href="mailto:kaendsle@mtu.edu">K. Arthur Endsley</a>
319   - <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_GB">
320   - <img alt="Wicket is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License" style="float:right;border-width:0;vertical-align:middle;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" />
321   - </a><br />
322   - Wicket is released under the <a href="https://github.com/arthur-e/Wicket/blob/master/LICENSE" target="_blank">GPL v3</a><br />
323   - </div>
324   - </div>
325   - </div>
326   -</body>
327   -</html>
pacotes/wicket/doc/index.ie.css
... ... @@ -1,85 +0,0 @@
1   -body {margin:0;padding:0;background:#CF6;border-top:5px solid #000;font-family:Helvetica,Arial,sans-serif;font-size:14px;}
2   -img {border:none;}
3   -label {color:#666;}
4   -label:hover {color:#333;}
5   -a:link,
6   -a:visited {color:#460;text-decoration:none;}
7   -
8   -.leaflet-container .leaflet-control-attribution {color:white;background:none !important;box-shadow:none !important;}
9   -.leaflet-container .leaflet-control-attribution a:link,
10   -.leaflet-container .leaflet-control-attribution a:visited {color:#8C0;}
11   -
12   -.attribute {width:290px;float:right;padding:10px 0;text-align:left;font-size:10px;line-height:16px;}
13   -.menu {float:left;margin:0;padding:0;list-style:none;}
14   -.menu a {display:inline-block;margin:0;padding:5px 0 10px;margin:0 25px 0 0;border-top:5px solid transparent;}
15   -.menu a:hover,
16   -.menu a:active {border-top:5px solid #999;color:#000;text-decoration:none;}
17   -.text {color:#333;}
18   -.wrapper {width:1000px;height:100%;margin:0 auto;}
19   -
20   -#canvas {width:698px;height:100%;background:#AAA;border-left:1px solid #999;border-right:1px solid #999;}
21   -#canvas,
22   -#controls {float:left;}
23   -#controls {width:290px;height:100%;padding:0 0 0 10px;text-align:justify;background:transparent;position:relative;top:-80px;}
24   -#controls .text {margin:90px 0 0;}
25   -#controls a:hover,
26   -#controls a:active {text-decoration:underline;}
27   -#forkme {width:141px;height:141px;z-index:9999;position:absolute;left:0;top:4px;background:transparent url(https://s3.amazonaws.com/github/ribbons/forkme_left_red_aa0000.png) no-repeat left top;}
28   -#form {margin:10px 0 0;font-size:14px;color:#666;font-family:CabinItalic,sans-serif;}
29   -#form #wkt {width:100%;height:150px;border:1px solid #999;padding:3px;resize:none;}
30   -#form #urlify {vertical-align:baseline;margin:10px 5px 0 0;}
31   -#form #reset {margin:10px 10px 0 0;
32   - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc');
33   - -ms-filter: "progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc')";
34   - background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
35   - background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
36   - background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
37   - background-image: -webkit-gradient(linear, center top, center bottom, from(#eeeeee), to(#cccccc));
38   - background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
39   - background-image: linear-gradient(top, #eeeeee, #cccccc);
40   - -moz-background-clip: padding;
41   - -webkit-background-clip: padding-box;
42   - background-clip: padding-box;
43   - }
44   -#form #reset,
45   -#form #submit {float:right;height:30px;margin-top:10px;padding:0 5px 2px 5px;font-family:CabinItalic,sans-serif;font-size:16px;color:#666;
46   - border: 1px solid #999999;
47   - -moz-border-radius: 5px;
48   - -webkit-border-radius: 5px;
49   - border-radius: 5px;
50   - }
51   -#form #submit {background-color: #EF9;
52   - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeffcc', endColorstr = '#ddff99');
53   - -ms-filter: "progid: DXImageTransform.Microsoft.gradient(startColorstr = '#eeffcc', endColorstr = '#ddff99')";
54   - background-image: -moz-linear-gradient(top, #eeffcc, #ddff99);
55   - background-image: -ms-linear-gradient(top, #eeffcc, #ddff99);
56   - background-image: -o-linear-gradient(top, #eeffcc, #ddff99);
57   - background-image: -webkit-gradient(linear, center top, center bottom, from(#eeffcc), to(#ddff99));
58   - background-image: -webkit-linear-gradient(top, #eeffcc, #ddff99);
59   - background-image: linear-gradient(top, #eeffcc, #ddff99);
60   - -moz-background-clip: padding;
61   - -webkit-background-clip: padding-box;
62   - background-clip: padding-box;
63   - }
64   -#form #reset:hover,
65   -#form #submit:hover {color:#333;border-color:#666;text-shadow:1px 1px 0px #FFF;
66   - -moz-box-shadow: 0px 0px 2px #999999;
67   - -webkit-box-shadow: 0px 0px 2px #999999;
68   - box-shadow: 0px 0px 2px #999999;
69   - }
70   -#form #reset:active,
71   -#form #submit:active {
72   - -moz-box-shadow:inset 0px 0px 2px #999999;
73   - -webkit-box-shadow:inset 0px 0px 2px #999999;
74   - box-shadow:inset 0px 0px 2px #999999;
75   - }
76   -#foot {background:transparent url(white_spacer.gif) repeat-x top left;}
77   -#foot,
78   -#head {width:100%;height:20%;color:#333;}
79   -#head {background:transparent url(white_spacer.gif) repeat-x bottom left;}
80   -#nav {width:698px;text-align:left;}
81   -#ribbon {width:100%;height:60%;background:#EEE;}
82   -#ribbon .wrapper {}
83   -#ribbon .wrapper .title {float:right;width:300px;height:80px;font-family:CabinRegular,sans-serif;font-size:16px;color:#333;}
84   -#ribbon .wrapper .title .brand {font-family:CabinMediumItalic,sans-serif;font-size:36px;color:#000;text-shadow:1px 1px 1px #FFF;}
85   -
pacotes/wicket/doc/leaflet.html
... ... @@ -1,266 +0,0 @@
1   -<html>
2   -<head>
3   - <link rel="stylesheet" type="text/css" href="/static/font/Cabin.css" />
4   - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5   - <!-- Conditional commenting for non-IE browsers -->
6   - <!--[if !IE]><!-->
7   - <link rel="stylesheet" type="text/css" href="/static/wicket/doc/index.css" />
8   - <!--<![endif]-->
9   - <!-- Conditional commenting for IE 6.x -->
10   - <!--[if IE]>
11   - <link rel="stylesheet" type="text/css" href="/static/wicket/doc/index.ie.css" />
12   - <![endif]-->
13   - <link rel="stylesheet" href="/static/leaflet/0.5.1/dist/leaflet.css" />
14   - <!--[if lte IE 8]>
15   - <link rel="stylesheet" href="/static/leaflet/0.5.1/dist/leaflet.ie.css" />
16   - <![endif]-->
17   -</head>
18   -<title>Wicket - Lightweight Javascript for WKT [Leaflet Sandbox]</title>
19   -<script src="/static/leaflet/0.5.1/dist/leaflet.js"></script>
20   -<!--See https://github.com/seelmann/leaflet-providers for below-->
21   -<script src="/static/leaflet/plugins/leaflet-providers.js"></script>
22   -<script src="../wicket.js" type="text/javascript"></script>
23   -<script src="../wicket-leaflet.js" type="text/javascript"></script>
24   -<script type="text/javascript">
25   -var app = (function () {
26   - return {
27   - features: [],
28   -
29   - /**
30   - * Clears the map contents.
31   - */
32   - clearMap: function () {
33   - var i;
34   -
35   - // Reset the remembered last string (so that we can clear the map,
36   - // paste the same string, and see it again)
37   - document.getElementById('wkt').last = '';
38   -
39   - for (i in this.features) {
40   - if (this.features.hasOwnProperty(i)) {
41   - this.map.removeLayer(this.features[i]);
42   - }
43   - }
44   - this.features.length = 0;
45   - },
46   -
47   - /**
48   - * Clears the current contents of the textarea.
49   - */
50   - clearText: function () {
51   - document.getElementById('wkt').value = '';
52   - },
53   -
54   - /**
55   - * Maps the current contents of the textarea.
56   - * @param editable {Boolean} Indicates that the feature drawn should be editable
57   - * @param focus {Boolean} Indicates that the map should pan and/or zoom to new features
58   - * @return {Object} Some sort of geometry object
59   - */
60   - mapIt: function (editable, focus) {
61   - var config, el, obj, wkt;
62   -
63   - // Indicates that the map should pan and/or zoom to new features
64   - focus = focus || false;
65   -
66   - if (editable === undefined) {
67   - editable = true;
68   - }
69   -
70   - el = document.getElementById('wkt');
71   - wkt = new Wkt.Wkt();
72   -
73   - if (el.last === el.value) { // Remember the last string
74   - return; // Do nothing if the WKT string hasn't changed
75   - } else {
76   - el.last = el.value;
77   - }
78   -
79   - try { // Catch any malformed WKT strings
80   - wkt.read(el.value);
81   - } catch (e1) {
82   - try {
83   - wkt.read(el.value.replace('\n', '').replace('\r', '').replace('\t', ''));
84   - } catch (e2) {
85   - if (e2.name === 'WKTError') {
86   - alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');
87   - return;
88   - }
89   - }
90   - }
91   -
92   - config = this.map.defaults;
93   - config.editable = editable;
94   -
95   - obj = wkt.toObject(this.map.defaults); // Make an object
96   -
97   - // Add listeners for overlay editing events
98   - if (wkt.type === 'polygon' || wkt.type === 'linestring') {
99   - }
100   -
101   - if (Wkt.isArray(obj)) { // Distinguish multigeometries (Arrays) from objects
102   - for (i in obj) {
103   - if (obj.hasOwnProperty(i) && !Wkt.isArray(obj[i])) {
104   - obj[i].addTo(this.map);
105   - this.features.push(obj[i]);
106   - }
107   - }
108   - } else {
109   - obj.addTo(this.map); // Add it to the map
110   - this.features.push(obj);
111   - }
112   -
113   - // Pan the map to the feature
114   - if (focus && obj.getBounds !== undefined && typeof obj.getBounds === 'function') {
115   - // For objects that have defined bounds or a way to get them
116   - this.map.fitBounds(obj.getBounds());
117   - } else {
118   - if (focus && obj.getLatLng !== undefined && typeof obj.getLatLng === 'function') {
119   - this.map.panTo(obj.getLatLng());
120   - }
121   - }
122   -
123   - return obj;
124   - },
125   -
126   - /**
127   - * Updates the textarea based on the first available feature.
128   - */
129   - updateText: function () {
130   - var wkt = new Wkt.Wkt();
131   - wkt.fromObject(this.features[0]);
132   - document.getElementById('wkt').value = wkt.write();
133   - },
134   -
135   - /**
136   - * Formats the textarea contents for a URL.
137   - * @param checked {Boolean} The check state of the associated checkbox
138   - */
139   - urlify: function (checked) {
140   - var wkt = new Wkt.Wkt();
141   - wkt.read(document.getElementById('wkt').value);
142   - wkt.delimiter = (checked) ? '+' : ' ';
143   - document.getElementById('wkt').value = wkt.write();
144   - return wkt;
145   - },
146   -
147   - /**
148   - * Application entry point.
149   - * @return {<L.map>} The Leaflet instance
150   - */
151   - init: function () {
152   - var leaflet, that;
153   -
154   - that = this;
155   -
156   - leaflet = {
157   - baseLayers: undefined,
158   - overlays: undefined
159   - };
160   -
161   - // Stamen //////////////////////////////////////////////////////////////////////
162   -
163   - leaflet.baseLayers = {
164   - 'Stamen Toner Map': L.tileLayer.provider('Stamen.Toner')
165   - };
166   -
167   - // Configure map ///////////////////////////////////////////////////
168   - leaflet.map = L.map('canvas', {
169   - zoomControl: true,
170   - attributionControl: true,
171   - layers: [
172   - leaflet.baseLayers['Stamen Toner Map'],
173   - ]
174   - });
175   -
176   - leaflet.map.defaults = {
177   - icon: new L.Icon({
178   - iconUrl: 'red_dot.png',
179   - iconSize: [16, 16],
180   - iconAnchor: [8, 8],
181   - shadowUrl: 'dot_shadow.png',
182   - shadowSize: [16, 16],
183   - shadowAnchor: [8, 8]
184   - }),
185   - editable: true,
186   - color: '#AA0000',
187   - weight: 3,
188   - opacity: 1.0,
189   - editable: true,
190   - fillColor: '#AA0000',
191   - fillOpacity: 0.2
192   - };
193   -
194   - // Set event handlers //////////////////////////////////////////////
195   - leaflet.map.loaded = false;
196   - leaflet.map.on('load', function () {
197   - if (!this.loaded) {
198   - this.loaded = true;
199   - document.getElementById('wkt').value = 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 45 20, 30 5, 10 10, 10 30, 20 35), (30 20, 20 25, 20 15, 30 20)))';
200   - }
201   - });
202   -
203   - // There are no 'edit' events, so let's catch editing at its most
204   - // fundamental: the mouseup event on the map
205   - leaflet.map.on('mouseup', function () {
206   - that.updateText()
207   - });
208   -
209   - // Initialize the map //////////////////////////////////////////////
210   - leaflet.map.setView([10, 20], 2);
211   -
212   - return leaflet.map;
213   - }
214   -
215   - };
216   -
217   -}());
218   -</script>
219   -<body onload="app.map=app.init();app.mapIt(true, false);">
220   - <div id="head">
221   - <div class="wrapper">
222   - </div>
223   - </div>
224   - <div id="ribbon">
225   - <div class="wrapper">
226   - <a href="http://github.com/arthur-e/Wicket">
227   - <div id="forkme">&nbsp;
228   - </div>
229   - </a>
230   - <div id="canvas">
231   - </div>
232   - <div id="controls">
233   - <div class="title">
234   - <div class="brand">Wicket</div>
235   - &nbsp;It whispers WKT in your application's ear.
236   - </div>
237   - <div class="text">
238   - Wicket is a lightweight Javascript library that reads and writes <a href="http://en.wikipedia.org/wiki/Well-known_text#Geometric_objects" target="_blaknk">Well-Known Text (WKT)</a> strings. It can also be extended to parse and to create geometric objects from various mapping frameworks, such as <a href="http://http://leafletjs.com/" target="_blank">Leaflet</a> and the Google Maps API.
239   - </div>
240   - <div id="form">
241   - <textarea type="text" name="wkt" id="wkt"></textarea>
242   - <label><input type="checkbox" name="urlify" id="urlify" onchange="app.urlify(this.checked);" />Format for URLs</label>
243   - <input type="submit" id="submit" value="Map It!" onclick="app.clearMap();app.mapIt(true, true);" />
244   - <input type="reset" id="reset" value="Clear Map" onclick="app.clearText();app.clearMap();" />
245   - </div>
246   - </div>
247   - </div>
248   - </div>
249   - <div id="foot">
250   - <div class="wrapper">
251   - <div class="menu" id="nav">
252   - <a href="/">Home</a>
253   - <a href="mailto:kaendsle@mtu.edu">Contact Me</a>
254   - <a href="http://github.com/arthur-e/Wicket">"Fork me on GitHub!"</a>
255   - </div>
256   - <div class="attribute">
257   - Design &copy; 2012-2013 <a href="mailto:kaendsle@mtu.edu">K. Arthur Endsley</a>
258   - <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_GB">
259   - <img alt="Wicket is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License" style="float:right;border-width:0;vertical-align:middle;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" />
260   - </a><br />
261   - Wicket is released under the <a href="https://github.com/arthur-e/Wicket/blob/master/LICENSE" target="_blank">GPL v3</a>
262   - </div>
263   - </div>
264   - </div>
265   -</body>
266   -</html>
pacotes/wicket/doc/red_dot.png

1.16 KB

pacotes/wicket/doc/white_spacer.gif

35 Bytes

pacotes/wicket/package.json
... ... @@ -1,67 +0,0 @@
1   -{
2   - "name": "wicket",
3   - "version": "1.1.0",
4   - "description": "A modest library for moving between Well-Known Text (WKT) and various framework geometries",
5   - "homepage": "https://github.com/arthur-e/Wicket",
6   - "keywords": [
7   - "wkt",
8   - "map",
9   - "mapping",
10   - "geometry",
11   - "leaflet"
12   - ],
13   - "maintainers": [{
14   - "name": "K. Arthur Endsley",
15   - "email": "kaendsle@mtu.edu",
16   - "web": "https://github.com/arthur-e"
17   - }],
18   - "contributors": [{
19   - "name": "K. Arthur Endsley",
20   - "email": "kaendsle@mtu.edu",
21   - "web": "https://github.com/arthur-e"
22   - }, {
23   - "name": "cuyahoga",
24   - "web": "https://github.com/cuyahoga"
25   - }, {
26   - "name": "Tom Nightingale",
27   - "web": "https://github.com/thegreat"
28   - }, {
29   - "name": "Aaron Ogle",
30   - "web": "https://github.com/atogle"
31   - }, {
32   - "name": "James Seppi",
33   - "web": "https://github.com/jseppi"
34   - }, {
35   - "name": "tchannel",
36   - "web": "https://github.com/tchannel"
37   - }, {
38   - "name": "Felipe Figueroa",
39   - "web": "https://github.com/amenadiel"
40   - }, {
41   - "name": "Matthijs van Henten",
42   - "web": "https://github.com/mvhenten"
43   - }],
44   - "bugs": {
45   - "mail": "kaendsle@mtu.edu",
46   - "url": "https://github.com/arthur-e/Wicket/issues"
47   - },
48   - "licenses": [{
49   - "type": "GPLv3",
50   - "url": "https://raw.github.com/arthur-e/Wicket/master/LICENSE"
51   - }],
52   - "repository": {
53   - "type": "git",
54   - "url": "https://github.com/arthur-e/Wicket"
55   - },
56   - "scripts": {
57   - "postinstall": "export PATH=$PATH:/usr/local/lib/node_modules/uglify-js/bin/;unzip ./node_modules/jasmine-core/dist/jasmine-standalone-2.0.0.zip -d ./node_modules/jasmine-core/dist/",
58   - "build": "uglifyjs wicket.js -o wicket.min.js;uglifyjs wicket-gmap3.js -o wicket-gmap3.min.js;uglifyjs wicket-arcgis.js -o wicket-arcgis.min.js;uglifyjs wicket-leaflet.js -o wicket-leaflet.min.js;",
59   - "test": "./node_modules/mocha/bin/mocha -R tap tests/wicket-spec.js"
60   - },
61   - "devDependencies": {
62   - "chai": "*",
63   - "mocha": "*",
64   - "uglify-js": "2.4.x",
65   - "jasmine": "git://github.com/pivotal/jasmine#master"
66   - }
67   -}
pacotes/wicket/tests/wicket-gmap3-spec.js
... ... @@ -1,880 +0,0 @@
1   -describe('Standard WKT Test Cases: ', function () {
2   - var cases, wkt;
3   -
4   - wkt = new Wkt.Wkt();
5   -
6   - cases = {
7   -
8   - point: {
9   - str: 'POINT(30 10)',
10   - cmp: [{
11   - x: 30,
12   - y: 10
13   - }],
14   - obj: new google.maps.Point(30, 10),
15   - json: {
16   - 'coordinates': [30, 10],
17   - 'type': 'Point'
18   - },
19   - },
20   -
21   - marker: {
22   - str: 'POINT(30 10)',
23   - cmp: [{
24   - x: 30,
25   - y: 10
26   - }],
27   - obj: new google.maps.Marker({
28   - position: new google.maps.LatLng(10, 30)
29   - })
30   - },
31   -
32   - linestring: {
33   - str: 'LINESTRING(30 10,10 30,40 40)',
34   - cmp: [{
35   - x: 30,
36   - y: 10
37   - }, {
38   - x: 10,
39   - y: 30
40   - }, {
41   - x: 40,
42   - y: 40
43   - }],
44   - obj: new google.maps.Polyline({
45   - editable: false,
46   - path: [
47   - new google.maps.LatLng(10, 30),
48   - new google.maps.LatLng(30, 10),
49   - new google.maps.LatLng(40, 40)
50   - ]
51   - }),
52   - json: {
53   - 'coordinates': [
54   - [30, 10],
55   - [10, 30],
56   - [40, 40]
57   - ],
58   - 'type': 'LineString'
59   - },
60   - },
61   -
62   -
63   - polygon: {
64   - str: 'POLYGON((30 10,10 20,20 40,40 40,30 10))',
65   - cmp: [
66   - [{
67   - x: 30,
68   - y: 10
69   - }, {
70   - x: 10,
71   - y: 20
72   - }, {
73   - x: 20,
74   - y: 40
75   - }, {
76   - x: 40,
77   - y: 40
78   - }, {
79   - x: 30,
80   - y: 10
81   - }]
82   - ],
83   - obj: new google.maps.Polygon({
84   - editable: false,
85   - paths: [
86   - [
87   - new google.maps.LatLng(10, 30),
88   - new google.maps.LatLng(20, 10),
89   - new google.maps.LatLng(40, 20),
90   - new google.maps.LatLng(40, 40)
91   - ]
92   - ]
93   - }),
94   - json: {
95   - 'coordinates': [
96   - [
97   - [30, 10],
98   - [10, 20],
99   - [20, 40],
100   - [40, 40],
101   - [30, 10]
102   - ]
103   - ],
104   - 'type': 'Polygon'
105   - },
106   -
107   - },
108   -
109   - polygon2: {
110   - str: 'POLYGON((35 10,10 20,15 40,45 45,35 10),(25 30,35 35,30 20,25 30))',
111   - cmp: [
112   - [{
113   - x: 35,
114   - y: 10
115   - }, {
116   - x: 10,
117   - y: 20
118   - }, {
119   - x: 15,
120   - y: 40
121   - }, {
122   - x: 45,
123   - y: 45
124   - }, {
125   - x: 35,
126   - y: 10
127   - }],
128   - [{
129   - x: 25,
130   - y: 30
131   - }, {
132   - x: 35,
133   - y: 35
134   - }, {
135   - x: 30,
136   - y: 20
137   - }, {
138   - x: 25,
139   - y: 30
140   - }]
141   - ],
142   - obj: new google.maps.Polygon({
143   - editable: false,
144   - paths: [
145   - [
146   - new google.maps.LatLng(10, 35),
147   - new google.maps.LatLng(20, 10),
148   - new google.maps.LatLng(40, 15),
149   - new google.maps.LatLng(45, 45)
150   - ],
151   - [ // Order in inner rings is reversed
152   - new google.maps.LatLng(20, 30),
153   - new google.maps.LatLng(35, 35),
154   - new google.maps.LatLng(30, 25)
155   - ]
156   - ]
157   - }),
158   - json: {
159   - 'coordinates': [
160   - [
161   - [35, 10],
162   - [10, 20],
163   - [15, 40],
164   - [45, 45],
165   - [35, 10]
166   - ],
167   - [
168   - [25, 30],
169   - [35, 35],
170   - [30, 20],
171   - [25, 30]
172   - ]
173   - ],
174   - 'type': 'Polygon'
175   - },
176   - jsonStr: '{"coordinates": [[[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]]], "type": "Polygon"}'
177   - },
178   -
179   - multipoint: {
180   - str: 'MULTIPOINT((10 40),(40 30),(20 20),(30 10))',
181   - cmp: [
182   - [{
183   - x: 10,
184   - y: 40
185   - }],
186   - [{
187   - x: 40,
188   - y: 30
189   - }],
190   - [{
191   - x: 20,
192   - y: 20
193   - }],
194   - [{
195   - x: 30,
196   - y: 10
197   - }]
198   - ],
199   - obj: [
200   - new google.maps.Marker({
201   - position: new google.maps.LatLng(40, 10)
202   - }),
203   - new google.maps.Marker({
204   - position: new google.maps.LatLng(30, 40)
205   - }),
206   - new google.maps.Marker({
207   - position: new google.maps.LatLng(20, 20)
208   - }),
209   - new google.maps.Marker({
210   - position: new google.maps.LatLng(10, 30)
211   - }),
212   - ],
213   - json: {
214   - 'coordinates': [
215   - [10, 40],
216   - [40, 30],
217   - [20, 20],
218   - [30, 10]
219   - ],
220   - 'type': 'MultiPoint'
221   - },
222   - jsonStr: '{"coordinates": [[10, 40], [40, 30], [20, 20], [30, 10]], "type": "MultiPoint"}'
223   - },
224   -
225   - multilinestring: {
226   - str: 'MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))',
227   - cmp: [
228   - [{
229   - x: 10,
230   - y: 10
231   - }, {
232   - x: 20,
233   - y: 20
234   - }, {
235   - x: 10,
236   - y: 40
237   - }],
238   - [{
239   - x: 40,
240   - y: 40
241   - }, {
242   - x: 30,
243   - y: 30
244   - }, {
245   - x: 40,
246   - y: 20
247   - }, {
248   - x: 30,
249   - y: 10
250   - }]
251   - ],
252   - obj: [
253   - new google.maps.Polyline({
254   - editable: false,
255   - path: [
256   - new google.maps.LatLng(10, 10),
257   - new google.maps.LatLng(20, 20),
258   - new google.maps.LatLng(40, 10)
259   - ]
260   - }),
261   - new google.maps.Polyline({
262   - editable: false,
263   - path: [
264   - new google.maps.LatLng(40, 40),
265   - new google.maps.LatLng(30, 30),
266   - new google.maps.LatLng(20, 40),
267   - new google.maps.LatLng(10, 30)
268   - ]
269   - })
270   - ],
271   - json: {
272   - 'coordinates': [
273   - [
274   - [10, 10],
275   - [20, 20],
276   - [10, 40]
277   - ],
278   - [
279   - [40, 40],
280   - [30, 30],
281   - [40, 20],
282   - [30, 10]
283   - ]
284   - ],
285   - 'type': 'MultiLineString'
286   - },
287   - jsonStr: '{"coordinates": [[[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]]], "type": "MultiLineString"}'
288   - },
289   -
290   - multipolygon: {
291   - str: 'MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))',
292   - cmp: [
293   - [
294   - [{
295   - x: 30,
296   - y: 20
297   - }, {
298   - x: 10,
299   - y: 40
300   - }, {
301   - x: 45,
302   - y: 40
303   - }, {
304   - x: 30,
305   - y: 20
306   - }, ]
307   - ],
308   - [
309   - [{
310   - x: 15,
311   - y: 5
312   - }, {
313   - x: 40,
314   - y: 10
315   - }, {
316   - x: 10,
317   - y: 20
318   - }, {
319   - x: 5,
320   - y: 10
321   - }, {
322   - x: 15,
323   - y: 5
324   - }]
325   - ]
326   - ],
327   - obj: [
328   - new google.maps.Polygon({
329   - editable: false,
330   - paths: [
331   - [
332   - new google.maps.LatLng(20, 30),
333   - new google.maps.LatLng(40, 10),
334   - new google.maps.LatLng(40, 45)
335   - ]
336   - ]
337   - }),
338   - new google.maps.Polygon({
339   - editable: false,
340   - paths: [
341   - [
342   - new google.maps.LatLng(5, 15),
343   - new google.maps.LatLng(10, 40),
344   - new google.maps.LatLng(20, 10),
345   - new google.maps.LatLng(10, 5)
346   - ]
347   - ]
348   - })
349   - ],
350   - json: {
351   - 'coordinates': [
352   - [
353   - [
354   - [30, 20],
355   - [10, 40],
356   - [45, 40],
357   - [30, 20]
358   - ]
359   - ],
360   - [
361   - [
362   - [15, 5],
363   - [40, 10],
364   - [10, 20],
365   - [5, 10],
366   - [15, 5]
367   - ]
368   - ]
369   - ],
370   - 'type': 'MultiPolygon'
371   - },
372   - jsonStr: '{"coordinates": [[[[30, 20], [10, 40], [45, 40], [30, 20]]], [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]], "type": "MultiPolygon"}'
373   - },
374   -
375   - multipolygon2: {
376   - str: 'MULTIPOLYGON(((40 40,20 45,45 30,40 40)),((20 35,45 20,30 5,10 10,10 30,20 35),(30 20,20 25,20 15,30 20)))',
377   - cmp: [
378   - [
379   - [{
380   - x: 40,
381   - y: 40
382   - }, {
383   - x: 20,
384   - y: 45
385   - }, {
386   - x: 45,
387   - y: 30
388   - }, {
389   - x: 40,
390   - y: 40
391   - }, ]
392   - ],
393   - [
394   - [{
395   - x: 20,
396   - y: 35
397   - }, {
398   - x: 45,
399   - y: 20
400   - }, {
401   - x: 30,
402   - y: 5
403   - }, {
404   - x: 10,
405   - y: 10
406   - }, {
407   - x: 10,
408   - y: 30
409   - }, {
410   - x: 20,
411   - y: 35
412   - }, ],
413   - [{
414   - x: 30,
415   - y: 20
416   - }, {
417   - x: 20,
418   - y: 25
419   - }, {
420   - x: 20,
421   - y: 15
422   - }, {
423   - x: 30,
424   - y: 20
425   - }]
426   - ]
427   - ],
428   - obj: [
429   - new google.maps.Polygon({
430   - editable: false,
431   - paths: [
432   - [
433   - new google.maps.LatLng(40, 40),
434   - new google.maps.LatLng(45, 20),
435   - new google.maps.LatLng(30, 45)
436   - ]
437   - ]
438   - }),
439   - new google.maps.Polygon({
440   - editable: false,
441   - paths: [
442   - [
443   - new google.maps.LatLng(35, 20),
444   - new google.maps.LatLng(20, 45),
445   - new google.maps.LatLng(5, 30),
446   - new google.maps.LatLng(10, 10),
447   - new google.maps.LatLng(30, 10)
448   - ],
449   - [
450   - new google.maps.LatLng(15, 20),
451   - new google.maps.LatLng(25, 20),
452   - new google.maps.LatLng(20, 30)
453   - ]
454   - ]
455   - })
456   - ],
457   - json: {
458   - 'coordinates': [
459   - [
460   - [
461   - [40, 40],
462   - [20, 45],
463   - [45, 30],
464   - [40, 40]
465   - ]
466   - ],
467   - [
468   - [
469   - [20, 35],
470   - [45, 20],
471   - [30, 5],
472   - [10, 10],
473   - [10, 30],
474   - [20, 35]
475   - ],
476   - [
477   - [30, 20],
478   - [20, 25],
479   - [20, 15],
480   - [30, 20]
481   - ]
482   - ]
483   - ],
484   - 'type': 'MultiPolygon'
485   - },
486   - jsonStr: '{"coordinates": [[[[40, 40], [20, 45], [45, 30], [40, 40]]], [[[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]]]], "type": "MultiPolygon"}'
487   - },
488   -
489   - rectangle: {
490   - str: 'POLYGON((-50 20,0 20,0 0,-50 0,-50 20))',
491   - cmp: [
492   - [{
493   - x: -50,
494   - y: 20
495   - }, {
496   - x: 0,
497   - y: 20
498   - }, {
499   - x: 0,
500   - y: 0
501   - }, {
502   - x: -50,
503   - y: 0
504   - }, {
505   - x: -50,
506   - y: 20
507   - }]
508   - ],
509   - obj: new google.maps.Rectangle({
510   - bounds: new google.maps.LatLngBounds(new google.maps.LatLng(0, -50),
511   - new google.maps.LatLng(20, 0))
512   - })
513   - },
514   -
515   -
516   -
517   - box: {
518   - str: 'BOX(0 0,20 20)',
519   - cmp: [{
520   - x: 0,
521   - y: 0
522   - }, {
523   - x: 20,
524   - y: 20
525   - }],
526   - obj: new google.maps.Rectangle({
527   - bounds: new google.maps.LatLngBounds(new google.maps.LatLng(0, 0),
528   - new google.maps.LatLng(20, 20))
529   - }),
530   - json: {
531   - 'coordinates': [
532   - [
533   - [0, 0],
534   - [0, 20],
535   - [20, 20],
536   - [20, 0],
537   - [0, 0]
538   - ]
539   - ],
540   - 'type': 'Polygon',
541   - 'bbox': [0, 0, 20, 20]
542   - }
543   - },
544   -
545   - geometrycollection: {
546   - str: 'GEOMETRYCOLLECTION(POINT(30 10),LINESTRING(30 10,10 30,40 40),POLYGON((30 10,10 20,20 40,40 40,30 10)))',
547   - json: {
548   - "type": "GeometryCollection",
549   - "geometries": [{
550   - "type": "Point",
551   - "coordinates": [30, 10]
552   - }, {
553   - 'type': 'LineString',
554   - 'coordinates': [
555   - [30, 10],
556   - [10, 30],
557   - [40, 40]
558   - ]
559   - },
560   -
561   - {
562   - "type": "Polygon",
563   - "coordinates": [
564   - [
565   - [30, 10],
566   - [10, 20],
567   - [20, 40],
568   - [40, 40],
569   - [30, 10]
570   - ]
571   - ]
572   - }
573   - ]
574   - }
575   - }
576   -
577   - };
578   -
579   - dataObjects = new google.maps.Data;
580   -
581   -
582   -
583   -
584   -
585   - describe('Converting objects into WKT strings: ', function () {
586   -
587   - afterEach(function () {
588   - wkt.delimiter = ' ';
589   - });
590   -
591   - it('should convert a Marker instance into a basic POINT string', function () {
592   - wkt.fromObject(cases.point.obj);
593   - expect(wkt.type).toBe('point');
594   - expect(wkt.isCollection()).toBe(false);
595   - expect(wkt.components).toEqual(cases.point.cmp);
596   - expect(wkt.write()).toBe(cases.point.str);
597   - });
598   -
599   - it('should convert a Polyline instance into a basic LINESTRING string', function () {
600   - wkt.fromObject(cases.linestring.obj);
601   - expect(wkt.type).toBe('linestring');
602   - expect(wkt.isCollection()).toBe(false);
603   - expect(wkt.components).toEqual(cases.linestring.cmp);
604   - expect(wkt.write()).toBe(cases.linestring.str);
605   - });
606   -
607   - it('should convert a Polygon instance into a basic POLYGON string', function () {
608   - wkt.fromObject(cases.polygon.obj);
609   - expect(wkt.type).toBe('polygon');
610   - expect(wkt.isCollection()).toBe(true);
611   - expect(wkt.components).toEqual(cases.polygon.cmp);
612   - expect(wkt.write()).toBe(cases.polygon.str);
613   - });
614   -
615   - it('should convert a Polygon instance with a hole into a POLYGON string with the same hole', function () {
616   - wkt.fromObject(cases.polygon2.obj);
617   - expect(wkt.type).toBe('polygon');
618   - expect(wkt.isCollection()).toBe(true);
619   - expect(wkt.components).toEqual(cases.polygon2.cmp);
620   - expect(wkt.write()).toBe(cases.polygon2.str);
621   - });
622   -
623   - it('should convert a Rectangle instance into a POLYGON string', function () {
624   - wkt.fromObject(cases.rectangle.obj);
625   - expect(wkt.type).toBe('polygon');
626   - expect(wkt.isRectangle).toBe(true);
627   - expect(wkt.isCollection()).toBe(true);
628   - expect(wkt.components).toEqual(cases.rectangle.cmp);
629   - expect(wkt.write()).toBe(cases.rectangle.str);
630   - });
631   -
632   - it('should convert an Array of Marker instances into a MULTIPOINT string', function () {
633   - wkt.fromObject(cases.multipoint.obj);
634   - expect(wkt.type).toBe('multipoint');
635   - expect(wkt.isCollection()).toBe(true);
636   - expect(wkt.components).toEqual(cases.multipoint.cmp);
637   - expect(wkt.write()).toBe(cases.multipoint.str);
638   - });
639   -
640   - it('should convert an Array of Polyline instances into a MULTILINESTRING string', function () {
641   - wkt.fromObject(cases.multilinestring.obj);
642   - expect(wkt.type).toBe('multilinestring');
643   - expect(wkt.isCollection()).toBe(true);
644   - expect(wkt.components).toEqual(cases.multilinestring.cmp);
645   - expect(wkt.write()).toBe(cases.multilinestring.str);
646   - });
647   -
648   - it('should convert an Array of Polygon instances into a MULTIPOLYGON string', function () {
649   - wkt.fromObject(cases.multipolygon.obj);
650   - expect(wkt.type).toBe('multipolygon');
651   - expect(wkt.isCollection()).toBe(true);
652   - expect(wkt.components).toEqual(cases.multipolygon.cmp);
653   - expect(wkt.write()).toBe(cases.multipolygon.str);
654   - });
655   -
656   - it('should convert an Array of Polygon instances, some with holes, into a MULTIPOLYGON string with the same hole', function () {
657   - wkt.fromObject(cases.multipolygon2.obj);
658   - expect(wkt.type).toBe('multipolygon');
659   - expect(wkt.isCollection()).toBe(true);
660   - expect(wkt.components).toEqual(cases.multipolygon2.cmp);
661   - expect(wkt.write()).toBe(cases.multipolygon2.str);
662   - });
663   -
664   - });
665   -
666   - describe('Converting google.maps.Data objects into WKT strings: ', function () {
667   -
668   - afterEach(function () {
669   - wkt.delimiter = ' ';
670   - });
671   -
672   - it('should convert a google.maps.Data.Point instance into a basic POINT string', function () {
673   - var dataPoint = dataObjects.addGeoJson({
674   - "type": "Feature",
675   - geometry: cases.point.json
676   - })[0];
677   - wkt.fromObject(dataPoint.getGeometry());
678   - expect(wkt.type).toBe('point');
679   - expect(wkt.isCollection()).toBe(false);
680   - expect(wkt.components).toEqual(cases.point.cmp);
681   - expect(wkt.write()).toBe(cases.point.str);
682   - });
683   -
684   - it('should convert a google.maps.Data.LineString instance into a basic LINESTRING string', function () {
685   - var dataLineString = dataObjects.addGeoJson({
686   - "type": "Feature",
687   - geometry: cases.linestring.json
688   - })[0];
689   - wkt.fromObject(dataLineString.getGeometry());
690   - expect(wkt.type).toBe('linestring');
691   - expect(wkt.isCollection()).toBe(false);
692   - expect(wkt.components).toEqual(cases.linestring.cmp);
693   - expect(wkt.write()).toBe(cases.linestring.str);
694   - });
695   -
696   - it('should convert a google.maps.Data.Polygon instance into a basic POLYGON string', function () {
697   - var dataPolygon = dataObjects.addGeoJson({
698   - "type": "Feature",
699   - geometry: cases.polygon.json
700   - })[0];
701   - wkt.fromObject(dataPolygon.getGeometry());
702   - expect(wkt.type).toBe('polygon');
703   - expect(wkt.isCollection()).toBe(true);
704   - expect(wkt.components).toEqual(cases.polygon.cmp);
705   - expect(wkt.write()).toBe(cases.polygon.str);
706   - });
707   -
708   - it('should convert a google.maps.Data.Polygon instance with a hole into a POLYGON string with the same hole', function () {
709   - var dataPolygon2 = dataObjects.addGeoJson({
710   - "type": "Feature",
711   - geometry: cases.polygon2.json
712   - })[0];
713   - wkt.fromObject(dataPolygon2.getGeometry());
714   - expect(wkt.type).toBe('polygon');
715   - expect(wkt.isCollection()).toBe(true);
716   - expect(wkt.components).toEqual(cases.polygon2.cmp);
717   - expect(wkt.write()).toBe(cases.polygon2.str);
718   - });
719   -
720   -
721   - it('should convert a google.maps.Data.MultiPoint instance into a MULTIPOINT string', function () {
722   - var dataMultiPoint = dataObjects.addGeoJson({
723   - "type": "Feature",
724   - geometry: cases.multipoint.json
725   - })[0];
726   - wkt.fromObject(dataMultiPoint.getGeometry());
727   - expect(wkt.type).toBe('multipoint');
728   - expect(wkt.isCollection()).toBe(true);
729   - expect(wkt.components).toEqual(cases.multipoint.cmp);
730   - expect(wkt.write()).toBe(cases.multipoint.str);
731   - });
732   -
733   - it('should convert a google.maps.Data.MultiLineString instance into a MULTILINESTRING string', function () {
734   - var dataMultiLineString = dataObjects.addGeoJson({
735   - "type": "Feature",
736   - geometry: cases.multilinestring.json
737   - })[0];
738   - wkt.fromObject(dataMultiLineString.getGeometry());
739   - expect(wkt.type).toBe('multilinestring');
740   - expect(wkt.isCollection()).toBe(true);
741   - expect(wkt.components).toEqual(cases.multilinestring.cmp);
742   - expect(wkt.write()).toBe(cases.multilinestring.str);
743   - });
744   -
745   - it('should convert a google.maps.Data.MultiPolygon instance into a MULTIPOLYGON string', function () {
746   - var dataMultiPolygon = dataObjects.addGeoJson({
747   - "type": "Feature",
748   - geometry: cases.multipolygon.json
749   - })[0];
750   - wkt.fromObject(dataMultiPolygon.getGeometry());
751   - expect(wkt.type).toBe('multipolygon');
752   - expect(wkt.isCollection()).toBe(true);
753   - expect(wkt.components).toEqual(cases.multipolygon.cmp);
754   - expect(wkt.write()).toBe(cases.multipolygon.str);
755   - });
756   -
757   - it('should convert a google.maps.Data.MultiPolygon with holes, into a MULTIPOLYGON string with the same holes', function () {
758   - var dataMultiPolygon2 = dataObjects.addGeoJson({
759   - "type": "Feature",
760   - geometry: cases.multipolygon2.json
761   - })[0];
762   - wkt.fromObject(dataMultiPolygon2.getGeometry());
763   - expect(wkt.type).toBe('multipolygon');
764   - expect(wkt.isCollection()).toBe(true);
765   - expect(wkt.components).toEqual(cases.multipolygon2.cmp);
766   - expect(wkt.write()).toBe(cases.multipolygon2.str);
767   - });
768   -
769   - it('should convert a google.maps.Data.GeometryCollection into a GEOMETRYCOLLECTION string', function () {
770   - var dataGeometryCollection = dataObjects.addGeoJson({
771   - "type": "Feature",
772   - geometry: cases.geometrycollection.json
773   - })[0];
774   -
775   - wkt.fromObject(dataGeometryCollection.getGeometry());
776   - expect(wkt.type).toBe('geometrycollection');
777   - //expect(wkt.isCollection()).toBe(true);
778   -
779   - });
780   -
781   - });
782   -
783   -
784   - describe('Coverting WKT strings into objects: ', function () {
785   -
786   - afterEach(function () {
787   - wkt.delimiter = ' ';
788   - });
789   -
790   - it('should convert a basic POINT string to a Marker instance', function () {
791   - wkt.read(cases.marker.str);
792   - expect(wkt.type).toBe('point');
793   - expect(wkt.isCollection()).toBe(false);
794   - expect(wkt.components).toEqual(cases.marker.cmp);
795   - expect(wkt.toObject().getPosition()).toEqual(cases.marker.obj.getPosition());
796   - });
797   -
798   - it('should convert a basic LINESTRING string to a Polyline instance', function () {
799   - wkt.read(cases.linestring.str);
800   - expect(wkt.type).toBe('linestring');
801   - expect(wkt.isCollection()).toBe(false);
802   - expect(wkt.components).toEqual(cases.linestring.cmp);
803   - expect(wkt.toObject().getPath()).toEqual(cases.linestring.obj.getPath());
804   - });
805   -
806   - it('should convert a basic POLYGON string to a Polygon instance', function () {
807   - wkt.read(cases.polygon.str);
808   - expect(wkt.type).toBe('polygon');
809   - expect(wkt.isCollection()).toBe(true);
810   - expect(wkt.components).toEqual(cases.polygon.cmp);
811   - expect(wkt.toObject().getPaths()).toEqual(cases.polygon.obj.getPaths());
812   - });
813   -
814   - it('should convert a POLYGON string with a hole to a Polygon instance with the same hole', function () {
815   - wkt.read(cases.polygon2.str);
816   - expect(wkt.type).toBe('polygon');
817   - expect(wkt.isCollection()).toBe(true);
818   - expect(wkt.components).toEqual(cases.polygon2.cmp);
819   - expect(wkt.toObject().getPaths()).toEqual(cases.polygon2.obj.getPaths());
820   - });
821   -
822   - it('should convert a POLYGON string, with isRectangle=true, into a Rectangle instance', function () {
823   - wkt.read(cases.rectangle.str);
824   - wkt.isRectangle = true;
825   - expect(wkt.type).toBe('polygon');
826   - expect(wkt.isCollection()).toBe(true);
827   - expect(wkt.components).toEqual(cases.rectangle.cmp);
828   - expect(wkt.toObject().getBounds()).toEqual(cases.rectangle.obj.getBounds());
829   - expect(wkt.toObject().constructor).toEqual(google.maps.Rectangle);
830   - });
831   -
832   - it('should convert a MULTIPOINT string into an Array of Marker instances', function () {
833   - var m;
834   -
835   - wkt.read(cases.multipoint.str);
836   - expect(wkt.type).toBe('multipoint');
837   - expect(wkt.isCollection()).toBe(true);
838   - expect(wkt.components).toEqual(cases.multipoint.cmp);
839   -
840   - markers = wkt.toObject();
841   - for (m = 0; m < markers.length; m += 1) {
842   - expect(markers[m].getPosition()).toEqual(cases.multipoint.obj[m].getPosition());
843   - }
844   - });
845   -
846   - it('should convert a MULTILINESTRING string into an Array of Polyline instances', function () {
847   - wkt.read(cases.multilinestring.str);
848   - expect(wkt.type).toBe('multilinestring');
849   - expect(wkt.isCollection()).toBe(true);
850   - expect(wkt.components).toEqual(cases.multilinestring.cmp);
851   - expect(wkt.toObject()).toEqual(cases.multilinestring.obj);
852   - });
853   -
854   - it('should convert a MULTIPOLYGON string into an Array of Polygon instances', function () {
855   - wkt.read(cases.multipolygon.str);
856   - expect(wkt.type).toBe('multipolygon');
857   - expect(wkt.isCollection()).toBe(true);
858   - expect(wkt.components).toEqual(cases.multipolygon.cmp);
859   - expect(wkt.toObject()).toEqual(cases.multipolygon.obj);
860   - });
861   -
862   - it('should convert a MULTIPOLYGON string with holes into an Array of Polygon instances with the same holes', function () {
863   - wkt.read(cases.multipolygon2.str);
864   - expect(wkt.type).toBe('multipolygon');
865   - expect(wkt.isCollection()).toBe(true);
866   - expect(wkt.components).toEqual(cases.multipolygon2.cmp);
867   - expect(wkt.toObject()).toEqual(cases.multipolygon2.obj);
868   - });
869   -
870   - it('should convert a PostGIS 2DBOX string into a Rectangle instance', function () {
871   - wkt.read(cases.box.str);
872   - expect(wkt.type).toBe('box');
873   - expect(wkt.isCollection()).toBe(false);
874   - expect(wkt.components).toEqual(cases.box.cmp);
875   - expect(wkt.toObject().getBounds()).toEqual(cases.box.obj.getBounds());
876   - });
877   -
878   - });
879   -
880   -});
881 0 \ No newline at end of file
pacotes/wicket/tests/wicket-gmap3.html
... ... @@ -1,30 +0,0 @@
1   -<!DOCTYPE HTML>
2   -<html>
3   -<head>
4   - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5   - <title>Jasmine Spec Runner v2.0.0</title>
6   -
7   - <link rel="shortcut icon" type="image/png" href="../node_modules/jasmine-core/dist/lib/jasmine-2.0.0/jasmine_favicon.png">
8   - <link rel="stylesheet" type="text/css" href="../node_modules/jasmine-core/dist/lib/jasmine-2.0.0/jasmine.css">
9   -
10   - <!-- Get Jasmine: https://github.com/pivotal/jasmine -->
11   - <script type="text/javascript" src="../node_modules/jasmine-core/dist/lib/jasmine-2.0.0/jasmine.js"></script>
12   - <script type="text/javascript" src="../node_modules/jasmine-core/dist/lib/jasmine-2.0.0/jasmine-html.js"></script>
13   - <script type="text/javascript" src="../node_modules/jasmine-core/dist/lib/jasmine-2.0.0/boot.js"></script>
14   -
15   - <script src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false" type="text/javascript"></script>
16   -
17   - <!-- include source files here... -->
18   - <script type="text/javascript" src="../wicket.js"></script>
19   - <script type="text/javascript" src="../wicket-gmap3.js"></script>
20   - <!--<script type="text/javascript" src="/static/wicket/wicket-leaflet.src.js"></script>-->
21   - <!--<script type="text/javascript" src="/static/wicket/wicket-arcgis.src.js"></script>-->
22   -
23   - <!-- include spec files here... -->
24   - <script type="text/javascript" src="wicket-gmap3-spec.js"></script>
25   -
26   -</head>
27   -
28   -<body>
29   -</body>
30   -</html>
pacotes/wicket/tests/wicket-spec.js
... ... @@ -1,1952 +0,0 @@
1   -var Wkt = require('../wicket');
2   -var expect = require('chai').expect;
3   -
4   -describe('Consistent Design Patterns', function() {
5   -
6   - it('should read WKT string when instantiated', function() {
7   - var wkt = new Wkt.Wkt('POINT(30 10)');
8   -
9   - expect(wkt.components).deep.equal([{
10   - x: 30,
11   - y: 10
12   - }]);
13   - });
14   -
15   - it('should correctly identify an Array', function() {
16   - expect(Wkt.isArray([0, 1])).equal(true);
17   - expect(Wkt.isArray({
18   - x: 0,
19   - y: 1
20   - })).equal(false);
21   - expect(Wkt.isArray(0)).equal(false);
22   - expect(Wkt.isArray(new Date())).equal(false);
23   - });
24   -
25   -});
26   -
27   -describe('Standard WKT Test Cases: ', function() {
28   - var cases, wkt;
29   -
30   - wkt = new Wkt.Wkt();
31   -
32   - cases = {
33   -
34   - point: {
35   - str: 'POINT(30 10)',
36   - cmp: [{
37   - x: 30,
38   - y: 10
39   - }]
40   - },
41   -
42   - linestring: {
43   - str: 'LINESTRING(30 10,10 30,40 40)',
44   - cmp: [{
45   - x: 30,
46   - y: 10
47   - }, {
48   - x: 10,
49   - y: 30
50   - }, {
51   - x: 40,
52   - y: 40
53   - }]
54   - },
55   -
56   - polygon: {
57   - str: 'POLYGON((30 10,10 20,20 40,40 40,30 10))',
58   - cmp: [
59   - [{
60   - x: 30,
61   - y: 10
62   - }, {
63   - x: 10,
64   - y: 20
65   - }, {
66   - x: 20,
67   - y: 40
68   - }, {
69   - x: 40,
70   - y: 40
71   - }, {
72   - x: 30,
73   - y: 10
74   - }]
75   - ]
76   - },
77   -
78   - polygon2: {
79   - str: 'POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 35,30 20,20 30))',
80   - cmp: [
81   - [{
82   - x: 35,
83   - y: 10
84   - }, {
85   - x: 10,
86   - y: 20
87   - }, {
88   - x: 15,
89   - y: 40
90   - }, {
91   - x: 45,
92   - y: 45
93   - }, {
94   - x: 35,
95   - y: 10
96   - }],
97   - [{
98   - x: 20,
99   - y: 30
100   - }, {
101   - x: 35,
102   - y: 35
103   - }, {
104   - x: 30,
105   - y: 20
106   - }, {
107   - x: 20,
108   - y: 30
109   - }]
110   - ]
111   - },
112   -
113   - multipoint: {
114   - str: 'MULTIPOINT((10 40),(40 30),(20 20),(30 10))',
115   - cmp: [
116   - [{
117   - x: 10,
118   - y: 40
119   - }],
120   - [{
121   - x: 40,
122   - y: 30
123   - }],
124   - [{
125   - x: 20,
126   - y: 20
127   - }],
128   - [{
129   - x: 30,
130   - y: 10
131   - }]
132   - ]
133   - },
134   -
135   - multipoint2: {
136   - str: 'MULTIPOINT(10 40,40 30,20 20,30 10)',
137   - cmp: [
138   - [{
139   - x: 10,
140   - y: 40
141   - }],
142   - [{
143   - x: 40,
144   - y: 30
145   - }],
146   - [{
147   - x: 20,
148   - y: 20
149   - }],
150   - [{
151   - x: 30,
152   - y: 10
153   - }]
154   - ]
155   - },
156   -
157   - multilinestring: {
158   - str: 'MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))',
159   - cmp: [
160   - [{
161   - x: 10,
162   - y: 10
163   - }, {
164   - x: 20,
165   - y: 20
166   - }, {
167   - x: 10,
168   - y: 40
169   - }],
170   - [{
171   - x: 40,
172   - y: 40
173   - }, {
174   - x: 30,
175   - y: 30
176   - }, {
177   - x: 40,
178   - y: 20
179   - }, {
180   - x: 30,
181   - y: 10
182   - }]
183   - ]
184   - },
185   -
186   - multipolygon: {
187   - str: 'MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))',
188   - cmp: [
189   - [
190   - [{
191   - x: 30,
192   - y: 20
193   - }, {
194   - x: 10,
195   - y: 40
196   - }, {
197   - x: 45,
198   - y: 40
199   - }, {
200   - x: 30,
201   - y: 20
202   - }, ]
203   - ],
204   - [
205   - [{
206   - x: 15,
207   - y: 5
208   - }, {
209   - x: 40,
210   - y: 10
211   - }, {
212   - x: 10,
213   - y: 20
214   - }, {
215   - x: 5,
216   - y: 10
217   - }, {
218   - x: 15,
219   - y: 5
220   - }]
221   - ]
222   - ]
223   - },
224   -
225   - multipolygon2: {
226   - str: 'MULTIPOLYGON(((40 40,20 45,45 30,40 40)),((20 35,45 20,30 5,10 10,10 30,20 35),(30 20,20 25,20 15,30 20)))',
227   - cmp: [
228   - [
229   - [{
230   - x: 40,
231   - y: 40
232   - }, {
233   - x: 20,
234   - y: 45
235   - }, {
236   - x: 45,
237   - y: 30
238   - }, {
239   - x: 40,
240   - y: 40
241   - }, ]
242   - ],
243   - [
244   - [{
245   - x: 20,
246   - y: 35
247   - }, {
248   - x: 45,
249   - y: 20
250   - }, {
251   - x: 30,
252   - y: 5
253   - }, {
254   - x: 10,
255   - y: 10
256   - }, {
257   - x: 10,
258   - y: 30
259   - }, {
260   - x: 20,
261   - y: 35
262   - }, ],
263   - [{
264   - x: 30,
265   - y: 20
266   - }, {
267   - x: 20,
268   - y: 25
269   - }, {
270   - x: 20,
271   - y: 15
272   - }, {
273   - x: 30,
274   - y: 20
275   - }]
276   - ]
277   - ]
278   - },
279   -
280   - box: {
281   - str: 'BOX(0 0,20 20)',
282   - cmp: [{
283   - x: 0,
284   - y: 0
285   - }, {
286   - x: 20,
287   - y: 20
288   - }]
289   - }
290   -
291   - };
292   -
293   - describe('Reading WKT Strings: ', function() {
294   -
295   - afterEach(function() {
296   - wkt.delimiter = ' ';
297   - });
298   -
299   - it('should read basic POINT string', function() {
300   - wkt.read(cases.point.str);
301   -
302   - expect(wkt.type).equal('point');
303   - expect(wkt.isCollection()).equal(false);
304   - expect(wkt.components).deep.equal(cases.point.cmp);
305   -
306   - // Now try it for URLs
307   - wkt.delimiter = '+';
308   - wkt.read(cases.point.str.replace(/ /g, '+'));
309   - expect(wkt.components).deep.equal(cases.point.cmp);
310   - });
311   -
312   - it('should read basic LINESTRING string', function() {
313   - wkt.read(cases.linestring.str);
314   -
315   - expect(wkt.type).equal('linestring');
316   - expect(wkt.isCollection()).equal(false);
317   - expect(wkt.components).deep.equal(cases.linestring.cmp);
318   -
319   - // Now try it for URLs
320   - wkt.delimiter = '+';
321   - wkt.read(cases.linestring.str.replace(/ /g, '+'));
322   - expect(wkt.components).deep.equal(cases.linestring.cmp);
323   - });
324   -
325   - it('should read basic POLYGON string', function() {
326   - wkt.read(cases.polygon.str);
327   -
328   - expect(wkt.type).equal('polygon');
329   - expect(wkt.isCollection()).equal(true);
330   - expect(wkt.components).deep.equal(cases.polygon.cmp);
331   -
332   - // Now try it for URLs
333   - wkt.delimiter = '+';
334   - wkt.read(cases.polygon.str.replace(/ /g, '+'));
335   - expect(wkt.components).deep.equal(cases.polygon.cmp);
336   - });
337   -
338   - it('should read basic POLYGON string with one (1) hole', function() {
339   - wkt.read(cases.polygon2.str);
340   -
341   - expect(wkt.type).equal('polygon');
342   - expect(wkt.isCollection()).equal(true);
343   - expect(wkt.components).deep.equal(cases.polygon2.cmp);
344   -
345   - // Now try it for URLs
346   - wkt.delimiter = '+';
347   - wkt.read(cases.polygon2.str.replace(/ /g, '+'));
348   - expect(wkt.components).deep.equal(cases.polygon2.cmp);
349   - });
350   -
351   - it('should read basic MULTIPOINT string with wrapped vertices', function() {
352   - wkt.read(cases.multipoint.str);
353   -
354   - expect(wkt.type).equal('multipoint');
355   - expect(wkt.isCollection()).equal(true);
356   - expect(wkt.components).deep.equal(cases.multipoint.cmp);
357   -
358   - // Now try it for URLs
359   - wkt.delimiter = '+';
360   - wkt.read(cases.multipoint.str.replace(/ /g, '+'));
361   - expect(wkt.components).deep.equal(cases.multipoint.cmp);
362   - });
363   -
364   - it('should read basic MULTIPOINT string without wrapped vertices', function() {
365   - wkt.read(cases.multipoint2.str);
366   -
367   - expect(wkt.type).equal('multipoint');
368   - expect(wkt.isCollection()).equal(true);
369   - expect(wkt.components).deep.equal(cases.multipoint2.cmp);
370   -
371   - // Now try it for URLs
372   - wkt.delimiter = '+';
373   - wkt.read(cases.multipoint2.str.replace(/ /g, '+'));
374   - expect(wkt.components).deep.equal(cases.multipoint2.cmp);
375   - });
376   -
377   - it('should read basic MULTILINESTRING string', function() {
378   - wkt.read(cases.multilinestring.str);
379   -
380   - expect(wkt.type).equal('multilinestring');
381   - expect(wkt.isCollection()).equal(true);
382   - expect(wkt.components).deep.equal(cases.multilinestring.cmp);
383   -
384   - // Now try it for URLs
385   - wkt.delimiter = '+';
386   - wkt.read(cases.multilinestring.str.replace(/ /g, '+'));
387   - expect(wkt.components).deep.equal(cases.multilinestring.cmp);
388   - });
389   -
390   - it('should read basic MULTIPOLYGON string', function() {
391   - wkt.read(cases.multipolygon.str);
392   -
393   - expect(wkt.type).equal('multipolygon');
394   - expect(wkt.isCollection()).equal(true);
395   - expect(wkt.components).deep.equal(cases.multipolygon.cmp);
396   -
397   - // Now try it for URLs
398   - wkt.delimiter = '+';
399   - wkt.read(cases.multipolygon.str.replace(/ /g, '+'));
400   - expect(wkt.components).deep.equal(cases.multipolygon.cmp);
401   - });
402   -
403   - it('should read basic MULTIPOLYGON string with two (2) polygons, one with one (1) hole', function() {
404   - wkt.read(cases.multipolygon2.str);
405   -
406   - expect(wkt.type).equal('multipolygon');
407   - expect(wkt.isCollection()).equal(true);
408   - expect(wkt.components).deep.equal(cases.multipolygon2.cmp);
409   -
410   - // Now try it for URLs
411   - wkt.delimiter = '+';
412   - wkt.read(cases.multipolygon2.str.replace(/ /g, '+'));
413   - expect(wkt.components).deep.equal(cases.multipolygon2.cmp);
414   - });
415   -
416   - it('should read basic PostGIS 2DBOX string', function() {
417   - wkt.read(cases.box.str);
418   -
419   - expect(wkt.type).equal('box');
420   - expect(wkt.isCollection()).equal(false);
421   - expect(wkt.components).deep.equal(cases.box.cmp);
422   -
423   - // Now try it for URLs
424   - wkt.delimiter = '+';
425   - wkt.read(cases.box.str.replace(/ /g, '+'));
426   - expect(wkt.components).deep.equal(cases.box.cmp);
427   - });
428   -
429   - }); // eo describe()
430   -
431   - describe('Writing Well-Formed WKT Strings: ', function() {
432   -
433   - afterEach(function() {
434   - wkt.wrapVertices = false;
435   - wkt.delimiter = ' ';
436   - });
437   -
438   - it('should write basic POINT string', function() {
439   - wkt.components = cases.point.cmp;
440   - wkt.type = 'point';
441   -
442   - expect(wkt.write()).equal(cases.point.str);
443   -
444   - // Now try it for URLs
445   - wkt.delimiter = '+';
446   - expect(wkt.write()).equal(cases.point.str.replace(/ /g, '+'));
447   - });
448   -
449   - it('should write basic LINESTRING string', function() {
450   - wkt.components = cases.linestring.cmp;
451   - wkt.type = 'linestring';
452   -
453   - expect(wkt.write()).equal(cases.linestring.str);
454   -
455   - // Now try it for URLs
456   - wkt.delimiter = '+';
457   - expect(wkt.write()).equal(cases.linestring.str.replace(/ /g, '+'));
458   - });
459   -
460   - it('should write basic POLYGON string', function() {
461   - wkt.components = cases.polygon.cmp;
462   - wkt.type = 'polygon';
463   -
464   - expect(wkt.write()).equal(cases.polygon.str);
465   -
466   - // Now try it for URLs
467   - wkt.delimiter = '+';
468   - expect(wkt.write()).equal(cases.polygon.str.replace(/ /g, '+'));
469   - });
470   -
471   - it('should write basic POLYGON string with one (1) hole', function() {
472   - wkt.components = cases.polygon2.cmp;
473   - wkt.type = 'polygon';
474   -
475   - expect(wkt.write()).equal(cases.polygon2.str);
476   -
477   - // Now try it for URLs
478   - wkt.delimiter = '+';
479   - expect(wkt.write()).equal(cases.polygon2.str.replace(/ /g, '+'));
480   - });
481   -
482   - it('should write basic MULTIPOINT string with wrapped vertices', function() {
483   - wkt.components = cases.multipoint.cmp;
484   - wkt.type = 'multipoint';
485   - wkt.wrapVertices = true;
486   -
487   - expect(wkt.write()).equal(cases.multipoint.str);
488   -
489   - // Now try it for URLs
490   - wkt.delimiter = '+';
491   - expect(wkt.write()).equal(cases.multipoint.str.replace(/ /g, '+'));
492   - });
493   -
494   - it('should write basic MULTIPOINT string without wrapped vertices', function() {
495   - wkt.components = cases.multipoint2.cmp;
496   - wkt.type = 'multipoint';
497   - wkt.wrapVertices = false;
498   -
499   - expect(wkt.write()).equal(cases.multipoint2.str);
500   -
501   - // Now try it for URLs
502   - wkt.delimiter = '+';
503   - expect(wkt.write()).equal(cases.multipoint2.str.replace(/ /g, '+'));
504   - });
505   -
506   - it('should write basic MULTILINESTRING string', function() {
507   - wkt.components = cases.multilinestring.cmp;
508   - wkt.type = 'multilinestring';
509   -
510   - expect(wkt.write()).equal(cases.multilinestring.str);
511   -
512   - // Now try it for URLs
513   - wkt.delimiter = '+';
514   - expect(wkt.write()).equal(cases.multilinestring.str.replace(/ /g, '+'));
515   - });
516   -
517   - it('should write basic MULTIPOLYGON string', function() {
518   - wkt.components = cases.multipolygon.cmp;
519   - wkt.type = 'multipolygon';
520   -
521   - expect(wkt.write()).equal(cases.multipolygon.str);
522   -
523   - // Now try it for URLs
524   - wkt.delimiter = '+';
525   - expect(wkt.write()).equal(cases.multipolygon.str.replace(/ /g, '+'));
526   - });
527   -
528   - it('should write basic MULTIPOLYGON string with two (2) polygons, one with one (1) hole', function() {
529   - wkt.components = cases.multipolygon2.cmp;
530   - wkt.type = 'multipolygon';
531   -
532   - expect(wkt.write()).equal(cases.multipolygon2.str);
533   -
534   - // Now try it for URLs
535   - wkt.delimiter = '+';
536   - expect(wkt.write()).equal(cases.multipolygon2.str.replace(/ /g, '+'));
537   - });
538   -
539   - it('should write basic PostGIS 2DBOX string', function() {
540   - wkt.components = cases.box.cmp;
541   - wkt.type = 'box';
542   -
543   - expect(wkt.write()).equal(cases.box.str);
544   -
545   - // Now try it for URLs
546   - wkt.delimiter = '+';
547   - expect(wkt.write()).equal(cases.box.str.replace(/ /g, '+'));
548   - });
549   -
550   - });
551   -
552   -}); // eo describe()
553   -
554   -describe('Arbitrary WKT Test Cases: ', function() {
555   - var cases, wkt;
556   -
557   - wkt = new Wkt.Wkt();
558   -
559   - function randomLat(a, b) {
560   - var n;
561   -
562   - a = a || 0;
563   - b = b || 90;
564   - n = Math.random() * (a + (b - a));
565   - return (Math.random() < 0.5) ? -n : n;
566   - };
567   -
568   - function randomLng(a, b) {
569   - var n;
570   -
571   - a = a || 0;
572   - b = b || 180;
573   - n = Math.random() * (a + (b - a));
574   - return (Math.random() < 0.5) ? -n : n;
575   - };
576   -
577   - function randomCoords(n, a1, b1, a2, b2) {
578   - var i, c, cs;
579   -
580   - i = 0;
581   - a1 = a1 || 0;
582   - b1 = b1 || 180;
583   - a2 = a2 || 0;
584   - b2 = b2 || 90;
585   - cs = [];
586   -
587   - while (i < n) {
588   - cs.push({
589   - x: randomLng(a1, b1),
590   - y: randomLat(a2, b2)
591   - });
592   - i += 1;
593   - }
594   -
595   - return cs;
596   - };
597   -
598   - it('should be able to read WKT strings with bizarre whitespace', function() {
599   - wkt.read(' LINESTRING ( 30 10, 10 30, 40 40) ');
600   - expect(wkt.write()).equal('LINESTRING(30 10,10 30,40 40)');
601   - });
602   -
603   - it('should be able to read WKT strings with (somewhat) arbitrary precision', function() {
604   - wkt.read('MULTIPOINT((9.12345 40),(40 30),(20 19.999999),(30 10.000001))');
605   - expect(wkt.write()).equal('MULTIPOINT((9.12345 40),(40 30),(20 19.999999),(30 10.000001))');
606   - });
607   -
608   - describe('Working with Random Coordinates: ', function() {
609   - var c;
610   -
611   - it('should read and write arbitrary POINT string', function() {
612   - c = wkt.components = randomCoords(1);
613   - wkt.type = 'point';
614   -
615   - expect(wkt.read(wkt.write()).components).deep.equal(c);
616   - });
617   -
618   - it('should read and write long, arbitrary LINESTRING string', function() {
619   - c = wkt.components = randomCoords(100);
620   - wkt.type = 'linestring';
621   -
622   - expect(wkt.read(wkt.write()).components).deep.equal(c);
623   - });
624   -
625   - it('should read and write long, arbitrary POLYGON string', function() {
626   - c = wkt.components = [randomCoords(100)];
627   - wkt.type = 'polygon';
628   -
629   - expect(wkt.read(wkt.write()).components).deep.equal(c);
630   - });
631   -
632   - });
633   -});
634   -
635   -describe('Edge Cases: ', function() {
636   - var wkt = new Wkt.Wkt();
637   -
638   - afterEach(function() {
639   - wkt.wrapVertices = false;
640   - wkt.delimiter = ' ';
641   - });
642   -
643   - it('should read a POINT string with single-digit coordinates', function() {
644   - var test = {
645   - str: 'POINT(4 4)',
646   - cmp: [{
647   - x: 4,
648   - y: 4
649   - }]
650   - };
651   -
652   - wkt.read(test.str);
653   -
654   - expect(wkt.type).equal('point');
655   - expect(wkt.isCollection()).equal(false);
656   - expect(wkt.components).deep.equal(test.cmp);
657   -
658   - // Now try it for URLs
659   - wkt.delimiter = '+';
660   - wkt.read(test.str.replace(/ /g, '+'));
661   - expect(wkt.components).deep.equal(test.cmp);
662   - });
663   -
664   - it('should read a LINESTRING string with single-digit coordinates', function() {
665   - var test = {
666   - str: 'LINESTRING(4 4,3 5,6 7)',
667   - cmp: [{
668   - x: 4,
669   - y: 4
670   - }, {
671   - x: 3,
672   - y: 5
673   - }, {
674   - x: 6,
675   - y: 7
676   - }]
677   - };
678   -
679   - wkt.read(test.str);
680   -
681   - expect(wkt.type).equal('linestring');
682   - expect(wkt.isCollection()).equal(false);
683   - expect(wkt.components).deep.equal(test.cmp);
684   -
685   - // Now try it for URLs
686   - wkt.delimiter = '+';
687   - wkt.read(test.str.replace(/ /g, '+'));
688   - expect(wkt.components).deep.equal(test.cmp);
689   - });
690   -
691   - it('should read a POLYGON string with single-digit coordinates', function() {
692   - var test = {
693   - str: 'POLYGON((4 4,3 5,6 7,7 5,4 4))',
694   - cmp: [
695   - [{
696   - x: 4,
697   - y: 4
698   - }, {
699   - x: 3,
700   - y: 5
701   - }, {
702   - x: 6,
703   - y: 7
704   - }, {
705   - x: 7,
706   - y: 5
707   - }, {
708   - x: 4,
709   - y: 4
710   - }]
711   - ]
712   - };
713   -
714   - wkt.read(test.str);
715   -
716   - expect(wkt.type).equal('polygon');
717   - expect(wkt.isCollection()).equal(true);
718   - expect(wkt.components).deep.equal(test.cmp);
719   -
720   - // Now try it for URLs
721   - wkt.delimiter = '+';
722   - wkt.read(test.str.replace(/ /g, '+'));
723   - expect(wkt.components).deep.equal(test.cmp);
724   - });
725   -
726   - it('should read a POLYGON string with excess precision', function() {
727   - var test = {
728   - str: 'POLYGON((4.1234 4,3 5,6 7,7 5.5678,4 4))',
729   - cmp: [
730   - [{
731   - x: 4.1234,
732   - y: 4
733   - }, {
734   - x: 3,
735   - y: 5
736   - }, {
737   - x: 6,
738   - y: 7
739   - }, {
740   - x: 7,
741   - y: 5.5678
742   - }, {
743   - x: 4,
744   - y: 4
745   - }]
746   - ]
747   - };
748   -
749   - wkt.read(test.str);
750   -
751   - expect(wkt.type).equal('polygon');
752   - expect(wkt.isCollection()).equal(true);
753   - expect(wkt.components).deep.equal(test.cmp);
754   -
755   - // Now try it for URLs
756   - wkt.delimiter = '+';
757   - wkt.read(test.str.replace(/ /g, '+'));
758   - expect(wkt.components).deep.equal(test.cmp);
759   - });
760   -
761   -}); // eo describe()
762   -
763   -describe('Merged WKT Test Cases: ', function() {
764   - var cases = {
765   -
766   - pointA: {
767   - str: 'POINT(30 10)',
768   - cmp: [{
769   - x: 30,
770   - y: 10
771   - }]
772   - },
773   -
774   - pointB: {
775   - str: 'POINT(25 45)',
776   - cmp: [{
777   - x: 25,
778   - y: 45
779   - }]
780   - },
781   -
782   - linestringA: {
783   - str: 'LINESTRING(25 15,15 35,35 35)',
784   - cmp: [{
785   - x: 25,
786   - y: 15
787   - }, {
788   - x: 15,
789   - y: 35
790   - }, {
791   - x: 35,
792   - y: 35
793   - }]
794   - },
795   -
796   - linestringB: {
797   - str: 'LINESTRING(30 10,10 30,40 40)',
798   - cmp: [{
799   - x: 30,
800   - y: 10
801   - }, {
802   - x: 10,
803   - y: 30
804   - }, {
805   - x: 40,
806   - y: 40
807   - }]
808   - },
809   -
810   - polygonA: {
811   - str: 'POLYGON((30 10,10 20,20 40,40 40,30 10))',
812   - cmp: [
813   - [{
814   - x: 30,
815   - y: 10
816   - }, {
817   - x: 10,
818   - y: 20
819   - }, {
820   - x: 20,
821   - y: 40
822   - }, {
823   - x: 40,
824   - y: 40
825   - }, {
826   - x: 30,
827   - y: 10
828   - }]
829   - ]
830   - },
831   -
832   - polygonB: {
833   - str: 'POLYGON((35 15,15 25,25 45,45 45,35 15))',
834   - cmp: [
835   - [{
836   - x: 35,
837   - y: 15
838   - }, {
839   - x: 15,
840   - y: 25
841   - }, {
842   - x: 25,
843   - y: 45
844   - }, {
845   - x: 45,
846   - y: 45
847   - }, {
848   - x: 35,
849   - y: 15
850   - }]
851   - ]
852   - },
853   -
854   - polygon2A: {
855   - str: 'POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 35,30 20,20 30))',
856   - cmp: [
857   - [{
858   - x: 35,
859   - y: 10
860   - }, {
861   - x: 10,
862   - y: 20
863   - }, {
864   - x: 15,
865   - y: 40
866   - }, {
867   - x: 45,
868   - y: 45
869   - }, {
870   - x: 35,
871   - y: 10
872   - }],
873   - [{
874   - x: 20,
875   - y: 30
876   - }, {
877   - x: 35,
878   - y: 35
879   - }, {
880   - x: 30,
881   - y: 20
882   - }, {
883   - x: 20,
884   - y: 30
885   - }]
886   - ]
887   - },
888   -
889   - polygon2B: {
890   - str: 'POLYGON((135 110,110 120,115 140,145 145,135 110),(120 130,135 135,130 120,120 130))',
891   - cmp: [
892   - [{
893   - x: 135,
894   - y: 110
895   - }, {
896   - x: 110,
897   - y: 120
898   - }, {
899   - x: 115,
900   - y: 140
901   - }, {
902   - x: 145,
903   - y: 145
904   - }, {
905   - x: 135,
906   - y: 110
907   - }],
908   - [{
909   - x: 120,
910   - y: 130
911   - }, {
912   - x: 135,
913   - y: 135
914   - }, {
915   - x: 130,
916   - y: 120
917   - }, {
918   - x: 120,
919   - y: 130
920   - }]
921   - ]
922   - },
923   -
924   - multipointA: {
925   - str: 'MULTIPOINT((10 40),(40 30),(20 20),(30 10))',
926   - cmp: [
927   - [{
928   - x: 10,
929   - y: 40
930   - }],
931   - [{
932   - x: 40,
933   - y: 30
934   - }],
935   - [{
936   - x: 20,
937   - y: 20
938   - }],
939   - [{
940   - x: 30,
941   - y: 10
942   - }]
943   - ]
944   - },
945   -
946   - multipointB: {
947   - str: 'MULTIPOINT((15 45),(45 35),(25 25),(35 15))',
948   - cmp: [
949   - [{
950   - x: 15,
951   - y: 45
952   - }],
953   - [{
954   - x: 45,
955   - y: 35
956   - }],
957   - [{
958   - x: 25,
959   - y: 25
960   - }],
961   - [{
962   - x: 35,
963   - y: 15
964   - }]
965   - ]
966   - },
967   -
968   - multilinestringA: {
969   - str: 'MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))',
970   - cmp: [
971   - [{
972   - x: 10,
973   - y: 10
974   - }, {
975   - x: 20,
976   - y: 20
977   - }, {
978   - x: 10,
979   - y: 40
980   - }],
981   - [{
982   - x: 40,
983   - y: 40
984   - }, {
985   - x: 30,
986   - y: 30
987   - }, {
988   - x: 40,
989   - y: 20
990   - }, {
991   - x: 30,
992   - y: 10
993   - }]
994   - ]
995   - },
996   -
997   - multilinestringB: {
998   - str: 'MULTILINESTRING((15 15,25 25,15 45),(45 45,35 35,45 25,35 15))',
999   - cmp: [
1000   - [{
1001   - x: 15,
1002   - y: 15
1003   - }, {
1004   - x: 25,
1005   - y: 25
1006   - }, {
1007   - x: 15,
1008   - y: 45
1009   - }],
1010   - [{
1011   - x: 45,
1012   - y: 45
1013   - }, {
1014   - x: 35,
1015   - y: 35
1016   - }, {
1017   - x: 45,
1018   - y: 25
1019   - }, {
1020   - x: 35,
1021   - y: 15
1022   - }]
1023   - ]
1024   - },
1025   -
1026   - multipolygonA: {
1027   - str: 'MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))',
1028   - cmp: [
1029   - [
1030   - [{
1031   - x: 30,
1032   - y: 20
1033   - }, {
1034   - x: 10,
1035   - y: 40
1036   - }, {
1037   - x: 45,
1038   - y: 40
1039   - }, {
1040   - x: 30,
1041   - y: 20
1042   - }, ]
1043   - ],
1044   - [
1045   - [{
1046   - x: 15,
1047   - y: 5
1048   - }, {
1049   - x: 40,
1050   - y: 10
1051   - }, {
1052   - x: 10,
1053   - y: 20
1054   - }, {
1055   - x: 5,
1056   - y: 10
1057   - }, {
1058   - x: 15,
1059   - y: 5
1060   - }]
1061   - ]
1062   - ]
1063   - },
1064   -
1065   - multipolygonB: {
1066   - str: 'MULTIPOLYGON(((130 120,110 140,145 140,130 120)),((115 15,140 110,110 120,15 110,115 15)))',
1067   - cmp: [
1068   - [
1069   - [{
1070   - x: 130,
1071   - y: 120
1072   - }, {
1073   - x: 110,
1074   - y: 140
1075   - }, {
1076   - x: 145,
1077   - y: 140
1078   - }, {
1079   - x: 130,
1080   - y: 120
1081   - }, ]
1082   - ],
1083   - [
1084   - [{
1085   - x: 115,
1086   - y: 15
1087   - }, {
1088   - x: 140,
1089   - y: 110
1090   - }, {
1091   - x: 110,
1092   - y: 120
1093   - }, {
1094   - x: 15,
1095   - y: 110
1096   - }, {
1097   - x: 115,
1098   - y: 15
1099   - }]
1100   - ]
1101   - ]
1102   - }
1103   -
1104   - };
1105   -
1106   - it('should merge POINT strings together', function() {
1107   - var a = new Wkt.Wkt(cases.pointA.str),
1108   - b = new Wkt.Wkt(cases.pointB.str);
1109   -
1110   - a.merge(b);
1111   - expect(a.type).equal('multipoint');
1112   - expect(b.type).equal('point');
1113   - expect(a.isCollection()).equal(true);
1114   - expect(b.isCollection()).equal(false);
1115   - expect(a.write()).equal('MULTIPOINT((30 10),(25 45))');
1116   - expect(a.components).deep.equal([
1117   - [{
1118   - x: 30,
1119   - y: 10
1120   - }, {
1121   - x: 25,
1122   - y: 45
1123   - }]
1124   - ]);
1125   -
1126   - });
1127   -
1128   - it('should merge LINESTRING strings together', function() {
1129   - var a = new Wkt.Wkt(cases.linestringA.str),
1130   - b = new Wkt.Wkt(cases.linestringB.str);
1131   -
1132   - a.merge(b);
1133   - expect(a.type).equal('multilinestring');
1134   - expect(b.type).equal('linestring');
1135   - expect(a.isCollection()).equal(true);
1136   - expect(b.isCollection()).equal(false);
1137   - expect(a.write()).equal('MULTILINESTRING((25 15,15 35,35 35),(30 10,10 30,40 40))');
1138   - expect(a.components).deep.equal([
1139   - [{
1140   - x: 25,
1141   - y: 15
1142   - }, {
1143   - x: 15,
1144   - y: 35
1145   - }, {
1146   - x: 35,
1147   - y: 35
1148   - }],
1149   - [{
1150   - x: 30,
1151   - y: 10
1152   - }, {
1153   - x: 10,
1154   - y: 30
1155   - }, {
1156   - x: 40,
1157   - y: 40
1158   - }]
1159   - ]);
1160   -
1161   - });
1162   -
1163   - it('should merge POLYGON strings together', function() {
1164   - var a = new Wkt.Wkt(cases.polygonA.str),
1165   - b = new Wkt.Wkt(cases.polygonB.str);
1166   -
1167   - a.merge(b);
1168   - expect(a.type).equal('multipolygon');
1169   - expect(b.type).equal('polygon');
1170   - expect(a.isCollection()).equal(true);
1171   - expect(b.isCollection()).equal(true);
1172   - expect(a.write()).equal('MULTIPOLYGON(((30 10,10 20,20 40,40 40,30 10)),((35 15,15 25,25 45,45 45,35 15)))');
1173   - expect(a.components).deep.equal([
1174   - [
1175   - [{
1176   - x: 30,
1177   - y: 10
1178   - }, {
1179   - x: 10,
1180   - y: 20
1181   - }, {
1182   - x: 20,
1183   - y: 40
1184   - }, {
1185   - x: 40,
1186   - y: 40
1187   - }, {
1188   - x: 30,
1189   - y: 10
1190   - }]
1191   - ],
1192   - [
1193   - [{
1194   - x: 35,
1195   - y: 15
1196   - }, {
1197   - x: 15,
1198   - y: 25
1199   - }, {
1200   - x: 25,
1201   - y: 45
1202   - }, {
1203   - x: 45,
1204   - y: 45
1205   - }, {
1206   - x: 35,
1207   - y: 15
1208   - }]
1209   - ]
1210   - ]);
1211   -
1212   - });
1213   -
1214   - it('should merge POLYGON strings together even if they have holes', function() {
1215   - var a = new Wkt.Wkt(cases.polygon2A.str),
1216   - b = new Wkt.Wkt(cases.polygon2B.str);
1217   -
1218   - a.merge(b);
1219   - expect(a.type).equal('multipolygon');
1220   - expect(b.type).equal('polygon');
1221   - expect(a.isCollection()).equal(true);
1222   - expect(b.isCollection()).equal(true);
1223   - expect(a.write()).equal('MULTIPOLYGON(((35 10,10 20,15 40,45 45,35 10),(20 30,35 35,30 20,20 30)),((135 110,110 120,115 140,145 145,135 110),(120 130,135 135,130 120,120 130)))');
1224   - expect(a.components).deep.equal([
1225   - [
1226   - [{
1227   - x: 35,
1228   - y: 10
1229   - }, {
1230   - x: 10,
1231   - y: 20
1232   - }, {
1233   - x: 15,
1234   - y: 40
1235   - }, {
1236   - x: 45,
1237   - y: 45
1238   - }, {
1239   - x: 35,
1240   - y: 10
1241   - }],
1242   - [{
1243   - x: 20,
1244   - y: 30
1245   - }, {
1246   - x: 35,
1247   - y: 35
1248   - }, {
1249   - x: 30,
1250   - y: 20
1251   - }, {
1252   - x: 20,
1253   - y: 30
1254   - }]
1255   - ],
1256   - [
1257   - [{
1258   - x: 135,
1259   - y: 110
1260   - }, {
1261   - x: 110,
1262   - y: 120
1263   - }, {
1264   - x: 115,
1265   - y: 140
1266   - }, {
1267   - x: 145,
1268   - y: 145
1269   - }, {
1270   - x: 135,
1271   - y: 110
1272   - }],
1273   - [{
1274   - x: 120,
1275   - y: 130
1276   - }, {
1277   - x: 135,
1278   - y: 135
1279   - }, {
1280   - x: 130,
1281   - y: 120
1282   - }, {
1283   - x: 120,
1284   - y: 130
1285   - }]
1286   - ]
1287   - ]);
1288   -
1289   - });
1290   -
1291   - it('should merge MULTIPOINT strings together', function() {
1292   - var a = new Wkt.Wkt(cases.multipointA.str),
1293   - b = new Wkt.Wkt(cases.multipointB.str);
1294   -
1295   - a.merge(b);
1296   - expect(a.type).equal('multipoint');
1297   - expect(b.type).equal('multipoint');
1298   - expect(a.isCollection()).equal(true);
1299   - expect(b.isCollection()).equal(true);
1300   - expect(a.write()).equal('MULTIPOINT((10 40),(40 30),(20 20),(30 10),(15 45),(45 35),(25 25),(35 15))');
1301   - expect(a.components).deep.equal([
1302   - [{
1303   - x: 10,
1304   - y: 40
1305   - }],
1306   - [{
1307   - x: 40,
1308   - y: 30
1309   - }],
1310   - [{
1311   - x: 20,
1312   - y: 20
1313   - }],
1314   - [{
1315   - x: 30,
1316   - y: 10
1317   - }],
1318   - [{
1319   - x: 15,
1320   - y: 45
1321   - }],
1322   - [{
1323   - x: 45,
1324   - y: 35
1325   - }],
1326   - [{
1327   - x: 25,
1328   - y: 25
1329   - }],
1330   - [{
1331   - x: 35,
1332   - y: 15
1333   - }]
1334   - ]);
1335   -
1336   - });
1337   -
1338   - it('should merge MULTILINESTRING strings together', function() {
1339   - var a = new Wkt.Wkt(cases.multilinestringA.str),
1340   - b = new Wkt.Wkt(cases.multilinestringB.str);
1341   -
1342   - a.merge(b);
1343   - expect(a.type).equal('multilinestring');
1344   - expect(b.type).equal('multilinestring');
1345   - expect(a.isCollection()).equal(true);
1346   - expect(b.isCollection()).equal(true);
1347   - expect(a.write()).equal('MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10),(15 15,25 25,15 45),(45 45,35 35,45 25,35 15))');
1348   - expect(a.components).deep.equal([
1349   - [{
1350   - x: 10,
1351   - y: 10
1352   - }, {
1353   - x: 20,
1354   - y: 20
1355   - }, {
1356   - x: 10,
1357   - y: 40
1358   - }],
1359   - [{
1360   - x: 40,
1361   - y: 40
1362   - }, {
1363   - x: 30,
1364   - y: 30
1365   - }, {
1366   - x: 40,
1367   - y: 20
1368   - }, {
1369   - x: 30,
1370   - y: 10
1371   - }],
1372   - [{
1373   - x: 15,
1374   - y: 15
1375   - }, {
1376   - x: 25,
1377   - y: 25
1378   - }, {
1379   - x: 15,
1380   - y: 45
1381   - }],
1382   - [{
1383   - x: 45,
1384   - y: 45
1385   - }, {
1386   - x: 35,
1387   - y: 35
1388   - }, {
1389   - x: 45,
1390   - y: 25
1391   - }, {
1392   - x: 35,
1393   - y: 15
1394   - }]
1395   - ]);
1396   -
1397   - });
1398   -
1399   - it('should merge MULTIPOLYGON strings together', function() {
1400   - var a = new Wkt.Wkt(cases.multipolygonA.str),
1401   - b = new Wkt.Wkt(cases.multipolygonB.str);
1402   -
1403   - a.merge(b);
1404   - expect(a.type).equal('multipolygon');
1405   - expect(b.type).equal('multipolygon');
1406   - expect(a.isCollection()).equal(true);
1407   - expect(b.isCollection()).equal(true);
1408   - expect(a.write()).equal('MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)),((130 120,110 140,145 140,130 120)),((115 15,140 110,110 120,15 110,115 15)))');
1409   - expect(a.components).deep.equal([
1410   - [
1411   - [{
1412   - x: 30,
1413   - y: 20
1414   - }, {
1415   - x: 10,
1416   - y: 40
1417   - }, {
1418   - x: 45,
1419   - y: 40
1420   - }, {
1421   - x: 30,
1422   - y: 20
1423   - }, ]
1424   - ],
1425   - [
1426   - [{
1427   - x: 15,
1428   - y: 5
1429   - }, {
1430   - x: 40,
1431   - y: 10
1432   - }, {
1433   - x: 10,
1434   - y: 20
1435   - }, {
1436   - x: 5,
1437   - y: 10
1438   - }, {
1439   - x: 15,
1440   - y: 5
1441   - }]
1442   - ],
1443   - [
1444   - [{
1445   - x: 130,
1446   - y: 120
1447   - }, {
1448   - x: 110,
1449   - y: 140
1450   - }, {
1451   - x: 145,
1452   - y: 140
1453   - }, {
1454   - x: 130,
1455   - y: 120
1456   - }, ]
1457   - ],
1458   - [
1459   - [{
1460   - x: 115,
1461   - y: 15
1462   - }, {
1463   - x: 140,
1464   - y: 110
1465   - }, {
1466   - x: 110,
1467   - y: 120
1468   - }, {
1469   - x: 15,
1470   - y: 110
1471   - }, {
1472   - x: 115,
1473   - y: 15
1474   - }]
1475   - ]
1476   - ]);
1477   -
1478   - });
1479   -
1480   - it('should merge POINT strings into MULTIPOINT strings', function() {
1481   - var a = new Wkt.Wkt(cases.multipointA.str),
1482   - b = new Wkt.Wkt(cases.pointB.str);
1483   -
1484   - a.merge(b);
1485   - expect(a.type).equal('multipoint');
1486   - expect(b.type).equal('point');
1487   - expect(a.isCollection()).equal(true);
1488   - expect(b.isCollection()).equal(false);
1489   - expect(a.write()).equal('MULTIPOINT((10 40),(40 30),(20 20),(30 10),(25 45))');
1490   - expect(a.components).deep.equal([
1491   - [{
1492   - x: 10,
1493   - y: 40
1494   - }],
1495   - [{
1496   - x: 40,
1497   - y: 30
1498   - }],
1499   - [{
1500   - x: 20,
1501   - y: 20
1502   - }],
1503   - [{
1504   - x: 30,
1505   - y: 10
1506   - }],
1507   - [{
1508   - x: 25,
1509   - y: 45
1510   - }]
1511   - ]);
1512   -
1513   - });
1514   -
1515   - it('should merge LINESTRING strings into MULTILINESTRING strings', function() {
1516   - var a = new Wkt.Wkt(cases.multilinestringA.str),
1517   - b = new Wkt.Wkt(cases.linestringB.str);
1518   -
1519   - a.merge(b);
1520   - expect(a.type).equal('multilinestring');
1521   - expect(b.type).equal('linestring');
1522   - expect(a.isCollection()).equal(true);
1523   - expect(b.isCollection()).equal(false);
1524   - expect(a.write()).equal('MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10),(30 10,10 30,40 40))');
1525   - expect(a.components).deep.equal([
1526   - [{
1527   - x: 10,
1528   - y: 10
1529   - }, {
1530   - x: 20,
1531   - y: 20
1532   - }, {
1533   - x: 10,
1534   - y: 40
1535   - }],
1536   - [{
1537   - x: 40,
1538   - y: 40
1539   - }, {
1540   - x: 30,
1541   - y: 30
1542   - }, {
1543   - x: 40,
1544   - y: 20
1545   - }, {
1546   - x: 30,
1547   - y: 10
1548   - }],
1549   - [{
1550   - x: 30,
1551   - y: 10
1552   - }, {
1553   - x: 10,
1554   - y: 30
1555   - }, {
1556   - x: 40,
1557   - y: 40
1558   - }]
1559   - ]);
1560   -
1561   - });
1562   -
1563   - it('should merge POLYGON strings into MULTIPOLYGON strings', function() {
1564   - var a = new Wkt.Wkt(cases.multipolygonA.str),
1565   - b = new Wkt.Wkt(cases.polygonB.str);
1566   -
1567   - a.merge(b);
1568   - expect(a.type).equal('multipolygon');
1569   - expect(b.type).equal('polygon');
1570   - expect(a.isCollection()).equal(true);
1571   - expect(b.isCollection()).equal(true);
1572   - expect(a.write()).equal('MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)),((35 15,15 25,25 45,45 45,35 15)))');
1573   - expect(a.components).deep.equal([
1574   - [
1575   - [{
1576   - x: 30,
1577   - y: 20
1578   - }, {
1579   - x: 10,
1580   - y: 40
1581   - }, {
1582   - x: 45,
1583   - y: 40
1584   - }, {
1585   - x: 30,
1586   - y: 20
1587   - }, ]
1588   - ],
1589   - [
1590   - [{
1591   - x: 15,
1592   - y: 5
1593   - }, {
1594   - x: 40,
1595   - y: 10
1596   - }, {
1597   - x: 10,
1598   - y: 20
1599   - }, {
1600   - x: 5,
1601   - y: 10
1602   - }, {
1603   - x: 15,
1604   - y: 5
1605   - }]
1606   - ],
1607   - [
1608   - [{
1609   - x: 35,
1610   - y: 15
1611   - }, {
1612   - x: 15,
1613   - y: 25
1614   - }, {
1615   - x: 25,
1616   - y: 45
1617   - }, {
1618   - x: 45,
1619   - y: 45
1620   - }, {
1621   - x: 35,
1622   - y: 15
1623   - }]
1624   - ]
1625   - ]);
1626   -
1627   - });
1628   -
1629   -});
1630   -
1631   -describe('GeoJSON Cases:', function() {
1632   - var cases = { // See: http://en.wikipedia.org/wiki/GeoJSON#Geometries
1633   -
1634   - point: {
1635   - str: 'POINT(30 10)',
1636   - json: {
1637   - 'coordinates': [30, 10],
1638   - 'type': 'Point'
1639   - },
1640   - jsonStr: '{"coordinates": [30, 10], "type": "Point"}'
1641   - },
1642   -
1643   - linestring: {
1644   - str: 'LINESTRING(30 10,10 30,40 40)',
1645   - json: {
1646   - 'coordinates': [
1647   - [30, 10],
1648   - [10, 30],
1649   - [40, 40]
1650   - ],
1651   - 'type': 'LineString'
1652   - },
1653   - jsonStr: '{"coordinates": [[30, 10], [10, 30], [40, 40]], "type": "LineString"}'
1654   - },
1655   -
1656   - polygon: {
1657   - str: 'POLYGON((30 10,10 20,20 40,40 40,30 10))',
1658   - json: {
1659   - 'coordinates': [
1660   - [
1661   - [30, 10],
1662   - [10, 20],
1663   - [20, 40],
1664   - [40, 40],
1665   - [30, 10]
1666   - ]
1667   - ],
1668   - 'type': 'Polygon'
1669   - },
1670   - jsonStr: '{"coordinates": [[[30, 10], [10, 20], [20, 40], [40, 40], [30, 10]]], "type": "Polygon"}'
1671   - },
1672   -
1673   - polygon2: {
1674   - str: 'POLYGON((35 10,45 45,15 40,10 20,35 10),(20 30,35 35,30 20,20 30))',
1675   - json: {
1676   - 'coordinates': [
1677   - [
1678   - [35, 10],
1679   - [45, 45],
1680   - [15, 40],
1681   - [10, 20],
1682   - [35, 10]
1683   - ],
1684   - [
1685   - [20, 30],
1686   - [35, 35],
1687   - [30, 20],
1688   - [20, 30]
1689   - ]
1690   - ],
1691   - 'type': 'Polygon'
1692   - },
1693   - jsonStr: '{"coordinates": [[[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]]], "type": "Polygon"}'
1694   - },
1695   -
1696   - multipolygon: {
1697   - str: 'MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))',
1698   - json: {
1699   - 'coordinates': [
1700   - [
1701   - [
1702   - [30, 20],
1703   - [10, 40],
1704   - [45, 40],
1705   - [30, 20]
1706   - ]
1707   - ],
1708   - [
1709   - [
1710   - [15, 5],
1711   - [40, 10],
1712   - [10, 20],
1713   - [5, 10],
1714   - [15, 5]
1715   - ]
1716   - ]
1717   - ],
1718   - 'type': 'MultiPolygon'
1719   - },
1720   - jsonStr: '{"coordinates": [[[[30, 20], [10, 40], [45, 40], [30, 20]]], [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]], "type": "MultiPolygon"}'
1721   - },
1722   -
1723   - multipolygon2: {
1724   - str: 'MULTIPOLYGON(((40 40,20 45,45 30,40 40)),((20 35,10 30,10 10,30 5,45 20,20 35),(30 20,20 15,20 25,30 20)))',
1725   - json: {
1726   - 'coordinates': [
1727   - [
1728   - [
1729   - [40, 40],
1730   - [20, 45],
1731   - [45, 30],
1732   - [40, 40]
1733   - ]
1734   - ],
1735   - [
1736   - [
1737   - [20, 35],
1738   - [10, 30],
1739   - [10, 10],
1740   - [30, 5],
1741   - [45, 20],
1742   - [20, 35]
1743   - ],
1744   - [
1745   - [30, 20],
1746   - [20, 15],
1747   - [20, 25],
1748   - [30, 20]
1749   - ]
1750   - ]
1751   - ],
1752   - 'type': 'MultiPolygon'
1753   - },
1754   - jsonStr: '{"coordinates": [[[[40, 40], [20, 45], [45, 30], [40, 40]]], [[[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]]]], "type": "MultiPolygon"}'
1755   - },
1756   -
1757   - multipoint: {
1758   - str: 'MULTIPOINT((10 40),(40 30),(20 20),(30 10))',
1759   - json: {
1760   - 'coordinates': [
1761   - [10, 40],
1762   - [40, 30],
1763   - [20, 20],
1764   - [30, 10]
1765   - ],
1766   - 'type': 'MultiPoint'
1767   - },
1768   - jsonStr: '{"coordinates": [[10, 40], [40, 30], [20, 20], [30, 10]], "type": "MultiPoint"}'
1769   - },
1770   -
1771   - multilinestring: {
1772   - str: 'MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))',
1773   - json: {
1774   - 'coordinates': [
1775   - [
1776   - [10, 10],
1777   - [20, 20],
1778   - [10, 40]
1779   - ],
1780   - [
1781   - [40, 40],
1782   - [30, 30],
1783   - [40, 20],
1784   - [30, 10]
1785   - ]
1786   - ],
1787   - 'type': 'MultiLineString'
1788   - },
1789   - jsonStr: '{"coordinates": [[[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]]], "type": "MultiLineString"}'
1790   - },
1791   -
1792   - box: {
1793   - str: 'BOX(0 0,20 20)',
1794   - json: {
1795   - 'coordinates': [
1796   - [
1797   - [0, 0],
1798   - [0, 20],
1799   - [20, 20],
1800   - [20, 0],
1801   - [0, 0]
1802   - ]
1803   - ],
1804   - 'type': 'Polygon',
1805   - 'bbox': [0, 0, 20, 20]
1806   - }
1807   - }
1808   -
1809   - };
1810   -
1811   - describe('GeoJSON Construction:', function() {
1812   -
1813   - it('should create valid JSON for WKT Point type', function() {
1814   - var a = new Wkt.Wkt(cases.point.str);
1815   - expect(a.toJson()).deep.equal(cases.point.json);
1816   - });
1817   -
1818   - it('should create valid JSON for WKT LineString type', function() {
1819   - var a = new Wkt.Wkt(cases.linestring.str);
1820   - expect(a.toJson()).deep.equal(cases.linestring.json);
1821   - });
1822   -
1823   - it('should create valid JSON for WKT Polygon type', function() {
1824   - var a = new Wkt.Wkt(cases.polygon.str);
1825   - expect(a.toJson()).deep.equal(cases.polygon.json);
1826   - });
1827   -
1828   - it('should create valid JSON for WKT Polygon type with a hole', function() {
1829   - var a = new Wkt.Wkt(cases.polygon2.str);
1830   - expect(a.toJson()).deep.equal(cases.polygon2.json);
1831   - });
1832   -
1833   - it('should create valid JSON for WKT MultiPolygon type', function() {
1834   - var a = new Wkt.Wkt(cases.multipolygon.str);
1835   - expect(a.toJson()).deep.equal(cases.multipolygon.json);
1836   - });
1837   -
1838   - it('should create valid JSON for WKT MultiPolygon type with a hole', function() {
1839   - var a = new Wkt.Wkt(cases.multipolygon2.str);
1840   - expect(a.toJson()).deep.equal(cases.multipolygon2.json);
1841   - });
1842   -
1843   - it('should create valid JSON for WKT MultiPoint type', function() {
1844   - var a = new Wkt.Wkt(cases.multipoint.str);
1845   - expect(a.toJson()).deep.equal(cases.multipoint.json);
1846   - });
1847   -
1848   - it('should create valid JSON for WKT MultiLineString type', function() {
1849   - var a = new Wkt.Wkt(cases.multilinestring.str);
1850   - expect(a.toJson()).deep.equal(cases.multilinestring.json);
1851   - });
1852   -
1853   - it('should create valid JSON for WKT Box type', function() {
1854   - var a = new Wkt.Wkt(cases.box.str);
1855   - expect(a.toJson()).deep.equal(cases.box.json);
1856   - });
1857   -
1858   - });
1859   -
1860   - describe('GeoJSON Deconstruction (from Objects):', function() {
1861   -
1862   - it('should write the WKT string corresponding to a GeoJSON Point', function() {
1863   - var a = new Wkt.Wkt(cases.point.json);
1864   - expect(a.write()).deep.equal(cases.point.str);
1865   - });
1866   -
1867   - it('should write the WKT string corresponding to a GeoJSON LineString', function() {
1868   - var a = new Wkt.Wkt(cases.linestring.json);
1869   - expect(a.write()).deep.equal(cases.linestring.str);
1870   - });
1871   -
1872   - it('should write the WKT string corresponding to a GeoJSON Polygon', function() {
1873   - var a = new Wkt.Wkt(cases.polygon.json);
1874   - expect(a.write()).deep.equal(cases.polygon.str);
1875   - });
1876   -
1877   - it('should write the WKT string corresponding to a GeoJSON Polygon with a hole', function() {
1878   - var a = new Wkt.Wkt(cases.polygon2.json);
1879   - expect(a.write()).deep.equal(cases.polygon2.str);
1880   - });
1881   -
1882   - it('should write the WKT string corresponding to a GeoJSON MultiPolygon', function() {
1883   - var a = new Wkt.Wkt(cases.multipolygon.json);
1884   - expect(a.write()).deep.equal(cases.multipolygon.str);
1885   - });
1886   -
1887   - it('should write the WKT string corresponding to a GeoJSON MultiPolygon with a hole', function() {
1888   - var a = new Wkt.Wkt(cases.multipolygon2.json);
1889   - expect(a.write()).deep.equal(cases.multipolygon2.str);
1890   - });
1891   -
1892   - it('should write the WKT string corresponding to a GeoJSON MultiPoint', function() {
1893   - var a = new Wkt.Wkt(cases.multipoint.json);
1894   - expect(a.write()).deep.equal(cases.multipoint.str);
1895   - });
1896   -
1897   - it('should write the WKT string corresponding to a GeoJSON MultiLineString', function() {
1898   - var a = new Wkt.Wkt(cases.multilinestring.json);
1899   - expect(a.write()).deep.equal(cases.multilinestring.str);
1900   - });
1901   -
1902   - });
1903   -
1904   - describe('GeoJSON Deconstruction (from Strings):', function() {
1905   - it('should provide support for JSON.parse() in the environment...', function() {
1906   - expect(typeof JSON).deep.equal('object');
1907   - expect(typeof JSON.parse).deep.equal('function');
1908   - });
1909   -
1910   - it('should parse a GeoJSON Point string', function() {
1911   - var a = new Wkt.Wkt(cases.point.jsonStr);
1912   - expect(a.write()).deep.equal(cases.point.str);
1913   - });
1914   -
1915   - it('should parse a GeoJSON LineString string', function() {
1916   - var a = new Wkt.Wkt(cases.linestring.jsonStr);
1917   - expect(a.write()).deep.equal(cases.linestring.str);
1918   - });
1919   -
1920   - it('should parse a GeoJSON Polygon string', function() {
1921   - var a = new Wkt.Wkt(cases.polygon.jsonStr);
1922   - expect(a.write()).deep.equal(cases.polygon.str);
1923   - });
1924   -
1925   - it('should parse a GeoJSON Polygon string with a hole', function() {
1926   - var a = new Wkt.Wkt(cases.polygon2.jsonStr);
1927   - expect(a.write()).deep.equal(cases.polygon2.str);
1928   - });
1929   -
1930   - it('should parse a GeoJSON MultiPolygon string', function() {
1931   - var a = new Wkt.Wkt(cases.multipolygon.jsonStr);
1932   - expect(a.write()).deep.equal(cases.multipolygon.str);
1933   - });
1934   -
1935   - it('should parse a GeoJSON MultiPolygon string with a hole', function() {
1936   - var a = new Wkt.Wkt(cases.multipolygon2.jsonStr);
1937   - expect(a.write()).deep.equal(cases.multipolygon2.str);
1938   - });
1939   -
1940   - it('should parse a GeoJSON MultiPoint string', function() {
1941   - var a = new Wkt.Wkt(cases.multipoint.jsonStr);
1942   - expect(a.write()).deep.equal(cases.multipoint.str);
1943   - });
1944   -
1945   - it('should parse a GeoJSON MultiLineString string', function() {
1946   - var a = new Wkt.Wkt(cases.multilinestring.jsonStr);
1947   - expect(a.write()).deep.equal(cases.multilinestring.str);
1948   - });
1949   -
1950   - });
1951   -
1952   -});
temas/teste.map 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +MAP
  2 + FONTSET "/var/www/i3geo/symbols/fontes.txt"
  3 + SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym"
  4 + LAYER
  5 + CONNECTION "ses"
  6 + CONNECTIONTYPE POSTGIS
  7 + DATA "waygeo from (select st_transform(way,4326) AS waygeo,osm_id,highway from public.planet_osm_line) as foo using unique osm_id using srid=4326"
  8 + METADATA
  9 + "CLASSE" "SIM"
  10 + "TEMA" "Teste"
  11 +
  12 + END # METADATA
  13 + NAME "teste"
  14 + PROCESSING "LABEL_NO_CLIP=True"
  15 + PROCESSING "POLYLINE_NO_CLIP=True"
  16 + STATUS DEFAULT
  17 + TEMPLATE "none.htm"
  18 + TILEITEM "location"
  19 + TYPE LINE
  20 + classitem "highway"
  21 +class
  22 + expression "motorway"
  23 + style
  24 + color 0 0 0
  25 + width 8
  26 + end
  27 + style
  28 + color 128 155 192
  29 + width 6
  30 + end
  31 + end
  32 +
  33 + END # LAYER
  34 +END # MAP
  35 +
... ...
testainstal/index.php
... ... @@ -193,7 +193,6 @@ if (! function_exists(&quot;ms_GetVersion&quot;)) {
193 193 if (get_cfg_var("safe_mode") == 1) {
194 194 echo '<div class="alert alert-warning" role="alert">Problema: safe_mode no php.ini deveria estar como Off. O i3Geo n&atilde;o ir&aacute; funcionar!!!</div>';
195 195 }
196   -// TODO ao fechar versao verificar esses acentos
197 196 echo <<<HTML
198 197 <h3>Acentua&ccedil;&atilde;o</h3>
199 198 <pre>
... ...
versao.php
... ... @@ -4,10 +4,7 @@ Utilizado como um include em ms_configura.php
4 4 */
5 5 /**
6 6 * TODO Verificar ao fechar versao
7   - * v7 numero da versao esta correto?
8   - * v7 guia de instalacao esta correto?
9   - * v7 guia de migracao esta correto?
10   - * v7 gerar repositorio no SVN com o nome i3geo6
  7 + * numero da versao esta correto?
11 8 */
12   -$mensagemInicia = 'V. 7.0 beta';
  9 +$mensagemInicia = 'V. 8.0 alfa';
13 10 ?>
... ...