Commit f522c40c99c9b67163de61544b350557a5da9d42
1 parent
a0472888
Exists in
master
and in
6 other branches
Remoção de arquivos não utilizados
Showing
18 changed files
with
40 additions
and
3946 deletions
Show diff stats
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
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"> | |
| 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 | - 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 © 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"> | |
| 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 | - 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 © 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"> | |
| 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 | - 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 © 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 | -}); |
| ... | ... | @@ -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("ms_GetVersion")) { |
| 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ão irá funcionar!!!</div>'; |
| 195 | 195 | } |
| 196 | -// TODO ao fechar versao verificar esses acentos | |
| 197 | 196 | echo <<<HTML |
| 198 | 197 | <h3>Acentuaçã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 | ?> | ... | ... |