Commit c89f148fe31351a42819fc73006738e860961751
1 parent
f6ce28b0
Exists in
master
and in
7 other branches
Atualização do Wicket no editor vetorial googlemaps e atualização da interface d…
…o editor do sistema metaestat
Showing
7 changed files
with
861 additions
and
411 deletions
Show diff stats
admin/php/classe_metaestat.php
@@ -1929,7 +1929,7 @@ class Metaestat{ | @@ -1929,7 +1929,7 @@ class Metaestat{ | ||
1929 | } | 1929 | } |
1930 | $data = implode("||",$data); | 1930 | $data = implode("||",$data); |
1931 | /** | 1931 | /** |
1932 | - * @TODO falta a hora | 1932 | + * TODO falta a hora |
1933 | */ | 1933 | */ |
1934 | return "to_date($data,'$tipodata')"; | 1934 | return "to_date($data,'$tipodata')"; |
1935 | } | 1935 | } |
classesjs/classe_editorgm.js
@@ -384,7 +384,7 @@ i3GEO.editorGM = { | @@ -384,7 +384,7 @@ i3GEO.editorGM = { | ||
384 | */ | 384 | */ |
385 | captura: function(){ | 385 | captura: function(){ |
386 | var temp,tema="",regiao="",p,par, | 386 | var temp,tema="",regiao="",p,par, |
387 | - aguarde = $i("janelaEditorLimites_imagemCabecalho"); | 387 | + aguarde = $i("i3GEOjanelaEditor_imagemCabecalho"); |
388 | if(!$i("i3geoCartoRegioesEditaveis")){ | 388 | if(!$i("i3geoCartoRegioesEditaveis")){ |
389 | i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.editorGM.capturaPoligonoTema.captura()"); | 389 | i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.editorGM.capturaPoligonoTema.captura()"); |
390 | } | 390 | } |
@@ -396,7 +396,7 @@ i3GEO.editorGM = { | @@ -396,7 +396,7 @@ i3GEO.editorGM = { | ||
396 | valorid = "", | 396 | valorid = "", |
397 | colunanome = i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"], | 397 | colunanome = i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"], |
398 | valornome = "", | 398 | valornome = "", |
399 | - aguarde = $i("janelaEditorLimites_imagemCabecalho"); | 399 | + aguarde = $i("i3GEOjanelaEditor_imagemCabecalho"); |
400 | if(aguarde){ | 400 | if(aguarde){ |
401 | aguarde.style.visibility = "hidden"; | 401 | aguarde.style.visibility = "hidden"; |
402 | } | 402 | } |
@@ -1159,311 +1159,728 @@ google.maps.Polygon.prototype.type = 'polygon'; | @@ -1159,311 +1159,728 @@ google.maps.Polygon.prototype.type = 'polygon'; | ||
1159 | google.maps.Rectangle.prototype.type = 'rectangle'; | 1159 | google.maps.Rectangle.prototype.type = 'rectangle'; |
1160 | google.maps.Circle.prototype.type = 'circle'; | 1160 | google.maps.Circle.prototype.type = 'circle'; |
1161 | 1161 | ||
1162 | -//TODO atualizar | ||
1163 | -/** | ||
1164 | - * An object of framework-dependent construction methods used to generate | ||
1165 | - * objects belonging to the various geometry classes of the framework. | ||
1166 | - */ | ||
1167 | -Wkt.Wkt.prototype.construct = { | ||
1168 | - /** | ||
1169 | - * Creates the framework's equivalent point geometry object. | ||
1170 | - * @param config {Object} An optional properties hash the object should use | ||
1171 | - * @param component {Object} An optional component to build from | ||
1172 | - * @return {google.maps.Marker} | ||
1173 | - */ | ||
1174 | - 'point': function (config, component) { | ||
1175 | - var c = component || this.components; | ||
1176 | - | ||
1177 | - config = config || {}; | ||
1178 | - | ||
1179 | - config.position = new google.maps.LatLng(c[0].y, c[0].x); | ||
1180 | - | ||
1181 | - return new google.maps.Marker(config); | ||
1182 | - }, | ||
1183 | - | ||
1184 | - /** | ||
1185 | - * Creates the framework's equivalent multipoint geometry object. | ||
1186 | - * @param config {Object} An optional properties hash the object should use | ||
1187 | - * @return {Array} Array containing multiple google.maps.Marker | ||
1188 | - */ | ||
1189 | - 'multipoint': function (config) { | ||
1190 | - var i, c, arr; | ||
1191 | - | ||
1192 | - c = this.components; | ||
1193 | - | ||
1194 | - config = config || {}; | ||
1195 | - | ||
1196 | - arr = []; | ||
1197 | - | ||
1198 | - for (i = 0; i < c.length; i += 1) { | ||
1199 | - arr.push(this.construct.point(config, c[i])); | ||
1200 | - } | ||
1201 | - | ||
1202 | - return arr; | ||
1203 | - }, | ||
1204 | - | ||
1205 | - /** | ||
1206 | - * Creates the framework's equivalent multipoint geometry object. | ||
1207 | - * @param config {Object} An optional properties hash the object should use | ||
1208 | - * @param component {Object} An optional component to build from | ||
1209 | - * @return {google.maps.Polyline} | ||
1210 | - */ | ||
1211 | - 'linestring': function (config, component) { | ||
1212 | - var i, c; | ||
1213 | - | ||
1214 | - c = component || this.components; | ||
1215 | - | ||
1216 | - config = config || { | ||
1217 | - editable: false | ||
1218 | - }; | ||
1219 | - | ||
1220 | - config.path = []; | ||
1221 | - | ||
1222 | - for (i = 0; i < c.length; i += 1) { | ||
1223 | - config.path.push(new google.maps.LatLng(c[i].y, c[i].x)); | ||
1224 | - } | ||
1225 | - | ||
1226 | - return new google.maps.Polyline(config); | ||
1227 | - }, | ||
1228 | - | ||
1229 | - /** | ||
1230 | - * Creates the framework's equivalent multilinestring geometry object. | ||
1231 | - * @param config {Object} An optional properties hash the object should use | ||
1232 | - * @return {Array} Array containing multiple google.maps.Polyline instances | ||
1233 | - */ | ||
1234 | - 'multilinestring': function (config) { | ||
1235 | - var i, c, arr; | ||
1236 | - | ||
1237 | - c = this.components; | ||
1238 | - | ||
1239 | - config = config || { | ||
1240 | - editable: false | ||
1241 | - }; | ||
1242 | - | ||
1243 | - config.path = []; | ||
1244 | - | ||
1245 | - arr = []; | ||
1246 | - | ||
1247 | - for (i = 0; i < c.length; i += 1) { | ||
1248 | - arr.push(this.construct.linestring(config, c[i])); | ||
1249 | - } | ||
1250 | - | ||
1251 | - return arr; | ||
1252 | - }, | ||
1253 | - | ||
1254 | - /** | ||
1255 | - * Creates the framework's equivalent polygon geometry object. | ||
1256 | - * @param config {Object} An optional properties hash the object should use | ||
1257 | - * @return {google.maps.Polygon} | ||
1258 | - */ | ||
1259 | - 'polygon': function (config) { | ||
1260 | - var j, k, c, rings, verts; | ||
1261 | - | ||
1262 | - c = this.components; | ||
1263 | - | ||
1264 | - config = config || { | ||
1265 | - editable: false // Editable geometry off by default | ||
1266 | - }; | ||
1267 | - | ||
1268 | - config.paths = []; | 1162 | +/** @license |
1163 | +* | ||
1164 | +* Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu) | ||
1165 | +* Michigan Tech Research Institute (MTRI) | ||
1166 | +* 3600 Green Court, Suite 100, Ann Arbor, MI, 48105 | ||
1167 | +* | ||
1168 | +* This program is free software: you can redistribute it and/or modify | ||
1169 | +* it under the terms of the GNU General Public License as published by | ||
1170 | +* the Free Software Foundation, either version 3 of the License, or | ||
1171 | +* (at your option) any later version. | ||
1172 | +* | ||
1173 | +* This program is distributed in the hope that it will be useful, | ||
1174 | +* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1175 | +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
1176 | +* GNU General Public License for more details. | ||
1177 | +* | ||
1178 | +* You should have received a copy of the GNU General Public License | ||
1179 | +* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
1180 | +* | ||
1181 | +*/ | ||
1182 | +(function (Wkt) { | ||
1183 | + | ||
1184 | + /** | ||
1185 | + * @augments Wkt.Wkt | ||
1186 | + * A framework-dependent flag, set for each Wkt.Wkt() instance, that indicates | ||
1187 | + * whether or not a closed polygon geometry should be interpreted as a rectangle. | ||
1188 | + */ | ||
1189 | + Wkt.Wkt.prototype.isRectangle = false; | ||
1190 | + | ||
1191 | + /** | ||
1192 | + * @augments Wkt.Wkt | ||
1193 | + * An object of framework-dependent construction methods used to generate | ||
1194 | + * objects belonging to the various geometry classes of the framework. | ||
1195 | + */ | ||
1196 | + Wkt.Wkt.prototype.construct = { | ||
1197 | + /** | ||
1198 | + * Creates the framework's equivalent point geometry object. | ||
1199 | + * @param config {Object} An optional properties hash the object should use | ||
1200 | + * @param component {Object} An optional component to build from | ||
1201 | + * @return {google.maps.Marker} | ||
1202 | + */ | ||
1203 | + point: function (config, component) { | ||
1204 | + var c = component || this.components; | ||
1205 | + | ||
1206 | + config = config || {}; | ||
1207 | + | ||
1208 | + config.position = new google.maps.LatLng(c[0].y, c[0].x); | ||
1209 | + | ||
1210 | + return new google.maps.Marker(config); | ||
1211 | + }, | ||
1212 | + | ||
1213 | + /** | ||
1214 | + * Creates the framework's equivalent multipoint geometry object. | ||
1215 | + * @param config {Object} An optional properties hash the object should use | ||
1216 | + * @return {Array} Array containing multiple google.maps.Marker | ||
1217 | + */ | ||
1218 | + multipoint: function (config) { | ||
1219 | + var i, c, arr; | ||
1220 | + | ||
1221 | + c = this.components; | ||
1222 | + | ||
1223 | + config = config || {}; | ||
1224 | + | ||
1225 | + arr = []; | ||
1226 | + | ||
1227 | + for (i = 0; i < c.length; i += 1) { | ||
1228 | + arr.push(this.construct.point(config, c[i])); | ||
1229 | + } | ||
1230 | + | ||
1231 | + return arr; | ||
1232 | + }, | ||
1233 | + | ||
1234 | + /** | ||
1235 | + * Creates the framework's equivalent linestring geometry object. | ||
1236 | + * @param config {Object} An optional properties hash the object should use | ||
1237 | + * @param component {Object} An optional component to build from | ||
1238 | + * @return {google.maps.Polyline} | ||
1239 | + */ | ||
1240 | + linestring: function (config, component) { | ||
1241 | + var i, c; | ||
1242 | + | ||
1243 | + c = component || this.components; | ||
1244 | + | ||
1245 | + config = config || { | ||
1246 | + editable: false | ||
1247 | + }; | ||
1248 | + | ||
1249 | + config.path = []; | ||
1250 | + | ||
1251 | + for (i = 0; i < c.length; i += 1) { | ||
1252 | + config.path.push(new google.maps.LatLng(c[i].y, c[i].x)); | ||
1253 | + } | ||
1254 | + | ||
1255 | + return new google.maps.Polyline(config); | ||
1256 | + }, | ||
1257 | + | ||
1258 | + /** | ||
1259 | + * Creates the framework's equivalent multilinestring geometry object. | ||
1260 | + * @param config {Object} An optional properties hash the object should use | ||
1261 | + * @return {Array} Array containing multiple google.maps.Polyline instances | ||
1262 | + */ | ||
1263 | + multilinestring: function (config) { | ||
1264 | + var i, c, arr; | ||
1265 | + | ||
1266 | + c = this.components; | ||
1267 | + | ||
1268 | + config = config || { | ||
1269 | + editable: false | ||
1270 | + }; | ||
1271 | + | ||
1272 | + config.path = []; | ||
1273 | + | ||
1274 | + arr = []; | ||
1275 | + | ||
1276 | + for (i = 0; i < c.length; i += 1) { | ||
1277 | + arr.push(this.construct.linestring(config, c[i])); | ||
1278 | + } | ||
1279 | + | ||
1280 | + return arr; | ||
1281 | + }, | ||
1282 | + | ||
1283 | + /** | ||
1284 | + * Creates the framework's equivalent Box or Rectangle geometry object. | ||
1285 | + * @param config {Object} An optional properties hash the object should use | ||
1286 | + * @param component {Object} An optional component to build from | ||
1287 | + * @return {google.maps.Rectangle} | ||
1288 | + */ | ||
1289 | + box: function (config, component) { | ||
1290 | + var c = component || this.components; | ||
1291 | + | ||
1292 | + config = config || {}; | ||
1293 | + | ||
1294 | + config.bounds = new google.maps.LatLngBounds( | ||
1295 | + new google.maps.LatLng(c[0].y, c[0].x), | ||
1296 | + new google.maps.LatLng(c[1].y, c[1].x)); | ||
1297 | + | ||
1298 | + return new google.maps.Rectangle(config); | ||
1299 | + }, | ||
1269 | 1300 | ||
1270 | - rings = []; | ||
1271 | - for (j = 0; j < c.length; j += 1) { // For each ring... | ||
1272 | - | ||
1273 | - verts = []; | ||
1274 | - for (k = 0; k < c[j].length; k += 1) { // For each vertex... | ||
1275 | - verts.push(new google.maps.LatLng(c[j][k].y, c[j][k].x)); | ||
1276 | - | ||
1277 | - } // eo for each vertex | ||
1278 | - | ||
1279 | - if (j !== 0) { // Reverse the order of coordinates in inner rings | ||
1280 | - if (config.reverseInnerPolygons == null || config.reverseInnerPolygons) { | ||
1281 | - verts.reverse(); | ||
1282 | - } | ||
1283 | - } | ||
1284 | - | ||
1285 | - rings.push(verts); | ||
1286 | - } // eo for each ring | ||
1287 | - | ||
1288 | - config.paths = config.paths.concat(rings); | ||
1289 | - | ||
1290 | - if (this.isRectangle) { | ||
1291 | - console.log('Rectangles are not yet supported; set the isRectangle property to false (default).'); | ||
1292 | - } else { | ||
1293 | - return new google.maps.Polygon(config); | ||
1294 | - } | ||
1295 | - }, | ||
1296 | - | ||
1297 | - /** | ||
1298 | - * Creates the framework's equivalent multipolygon geometry object. | ||
1299 | - * @param config {Object} An optional properties hash the object should use | ||
1300 | - * @return {Array} Array containing multiple google.maps.Polygon | ||
1301 | - */ | ||
1302 | - 'multipolygon': function (config) { | ||
1303 | - var i, j, k, c, rings, verts; | ||
1304 | - | ||
1305 | - c = this.components; | ||
1306 | - | ||
1307 | - config = config || { | ||
1308 | - editable: false // Editable geometry off by default | ||
1309 | - }; | ||
1310 | - | ||
1311 | - config.paths = []; // Must ensure this property is available | ||
1312 | - | ||
1313 | - for (i = 0; i < c.length; i += 1) { // For each polygon... | ||
1314 | - | ||
1315 | - rings = []; | ||
1316 | - for (j = 0; j < c[i].length; j += 1) { // For each ring... | ||
1317 | - | ||
1318 | - verts = []; | ||
1319 | - for (k = 0; k < c[i][j].length; k += 1) { // For each vertex... | ||
1320 | - verts.push(new google.maps.LatLng(c[i][j][k].y, c[i][j][k].x)); | ||
1321 | - | ||
1322 | - } // eo for each vertex | ||
1323 | - | ||
1324 | - /* // This is apparently not needed in multipolygon cases | ||
1325 | - if (j !== 0) { // Reverse the order of coordinates in inner rings | ||
1326 | - verts.reverse(); | ||
1327 | - } | ||
1328 | - */ | ||
1329 | - rings.push(verts); | ||
1330 | - } // eo for each ring | ||
1331 | - | ||
1332 | - config.paths = config.paths.concat(rings); | ||
1333 | - | ||
1334 | - } // eo for each polygon | ||
1335 | - | ||
1336 | - return new google.maps.Polygon(config); | ||
1337 | - } | ||
1338 | - | ||
1339 | -}; | ||
1340 | - | ||
1341 | -/** | ||
1342 | - * A framework-dependent deconstruction method used to generate internal | ||
1343 | - * geometric representations from instances of framework geometry. This method | ||
1344 | - * uses object detection to attempt to classify members of framework geometry | ||
1345 | - * classes into the standard WKT types. | ||
1346 | - * @param obj {Object} An instance of one of the framework's geometry classes | ||
1347 | - * @return {Object} A hash of the 'type' and 'components' thus derived | ||
1348 | - */ | ||
1349 | -Wkt.Wkt.prototype.deconstruct = function (obj) { | ||
1350 | - var i, j, verts, rings, tmp; | ||
1351 | - | ||
1352 | - // google.maps.Marker ////////////////////////////////////////////////////// | ||
1353 | - if (obj.getPosition && typeof obj.getPosition === 'function') { | ||
1354 | - // Only Markers, among all overlays, have the getPosition property | ||
1355 | - | ||
1356 | - return { | ||
1357 | - type: 'point', | ||
1358 | - components: [{ | ||
1359 | - x: obj.getPosition().lng(), | ||
1360 | - y: obj.getPosition().lat() | ||
1361 | - }] | ||
1362 | - }; | ||
1363 | - | ||
1364 | - // google.maps.Polyline //////////////////////////////////////////////////// | ||
1365 | - } else if (obj.getPath && !obj.getPaths) { | ||
1366 | - // Polylines have a single path (getPath) not paths (getPaths) | ||
1367 | - | ||
1368 | - verts = []; | ||
1369 | - for (i = 0; i < obj.getPath().length; i += 1) { | ||
1370 | - tmp = obj.getPath().getAt(i); | ||
1371 | - verts.push({ | ||
1372 | - x: tmp.lng(), | ||
1373 | - y: tmp.lat() | ||
1374 | - }); | ||
1375 | - } | ||
1376 | - | ||
1377 | - return { | ||
1378 | - type: 'linestring', | ||
1379 | - components: verts | ||
1380 | - }; | ||
1381 | - | ||
1382 | - // google.maps.Polygon ///////////////////////////////////////////////////// | ||
1383 | - } else if (obj.getPaths) { | ||
1384 | - // Polygon is the only class with the getPaths property | ||
1385 | - | ||
1386 | - // TODO Polygons with holes cannot be distinguished from multipolygons | ||
1387 | - rings = []; | ||
1388 | - for (i = 0; i < obj.getPaths().length; i += 1) { // For each polygon (ring)... | ||
1389 | - tmp = obj.getPaths().getAt(i); | ||
1390 | - | ||
1391 | - verts = []; | ||
1392 | - for (j = 0; j < obj.getPaths().getAt(i).length; j += 1) { // For each vertex... | ||
1393 | - verts.push({ | ||
1394 | - x: tmp.getAt(j).lng(), | ||
1395 | - y: tmp.getAt(j).lat() | ||
1396 | - }); | ||
1397 | - } | ||
1398 | - | ||
1399 | - verts.push({ // Add the first coordinate again for closure | ||
1400 | - x: tmp.getAt(0).lng(), | ||
1401 | - y: tmp.getAt(0).lat() | ||
1402 | - }); | ||
1403 | - | ||
1404 | - // Since we can't distinguish between single polygons with holes | ||
1405 | - // and multipolygons, we always create multipolygons | ||
1406 | - if (obj.getPaths().length > 1) { | ||
1407 | - verts = [verts]; // Wrap multipolygons once more (collection) | ||
1408 | - } | ||
1409 | - | ||
1410 | - rings.push(verts); | ||
1411 | - } | ||
1412 | - | ||
1413 | - return { | ||
1414 | - type: 'polygon', | ||
1415 | - components: rings | ||
1416 | - }; | ||
1417 | - | ||
1418 | - // google.maps.Rectangle /////////////////////////////////////////////////// | ||
1419 | - } else if (obj.getBounds && !obj.getRadius) { | ||
1420 | - // Rectangle is only overlay class with getBounds property and not getRadius property | ||
1421 | - | ||
1422 | - tmp = obj.getBounds(); | ||
1423 | - return { | ||
1424 | - type: 'polygon', | ||
1425 | - isRectangle: true, | ||
1426 | - components: [ | ||
1427 | - [ | ||
1428 | - { // NW corner | ||
1429 | - x: tmp.getSouthWest().lng(), | ||
1430 | - y: tmp.getNorthEast().lat() | ||
1431 | - }, | ||
1432 | - { // NE corner | ||
1433 | - x: tmp.getNorthEast().lng(), | ||
1434 | - y: tmp.getNorthEast().lat() | ||
1435 | - }, | ||
1436 | - { // SE corner | ||
1437 | - x: tmp.getNorthEast().lng(), | ||
1438 | - y: tmp.getSouthWest().lat() | ||
1439 | - }, | ||
1440 | - { // SW corner | ||
1441 | - x: tmp.getSouthWest().lng(), | ||
1442 | - y: tmp.getSouthWest().lat() | ||
1443 | - }, | ||
1444 | - { // NW corner (again, for closure) | ||
1445 | - x: tmp.getSouthWest().lng(), | ||
1446 | - y: tmp.getNorthEast().lat() | ||
1447 | - } | ||
1448 | - ] | ||
1449 | - ] | ||
1450 | - }; | ||
1451 | - | ||
1452 | - // google.maps.Circle ////////////////////////////////////////////////////// | ||
1453 | - } else if (obj.getBounds && obj.getRadius) { | ||
1454 | - // Circle is the only overlay class with both the getBounds and getRadius properties | ||
1455 | - | ||
1456 | - console.log('Deconstruction of google.maps.Circle objects is not yet supported'); | ||
1457 | - | ||
1458 | - } else { | ||
1459 | - console.log('The passed object does not have any recognizable properties.'); | ||
1460 | - } | ||
1461 | - | ||
1462 | -}; | ||
1463 | - | ||
1464 | -/** | ||
1465 | - * A framework-dependent flag, set for each Wkt.Wkt() instance, that indicates | ||
1466 | - * whether or not a closed polygon geometry should be interpreted as a rectangle. | ||
1467 | - */ | ||
1468 | -Wkt.Wkt.prototype.isRectangle = false; | 1301 | + /** |
1302 | + * Creates the framework's equivalent polygon geometry object. | ||
1303 | + * @param config {Object} An optional properties hash the object should use | ||
1304 | + * @param component {Object} An optional component to build from | ||
1305 | + * @return {google.maps.Polygon} | ||
1306 | + */ | ||
1307 | + polygon: function (config, component) { | ||
1308 | + var j, k, c, rings, verts; | ||
1469 | 1309 | ||
1310 | + c = component || this.components; | ||
1311 | + | ||
1312 | + config = config || { | ||
1313 | + editable: false // Editable geometry off by default | ||
1314 | + }; | ||
1315 | + | ||
1316 | + config.paths = []; | ||
1317 | + | ||
1318 | + rings = []; | ||
1319 | + for (j = 0; j < c.length; j += 1) { // For each ring... | ||
1320 | + | ||
1321 | + verts = []; | ||
1322 | + // NOTE: We iterate to one (1) less than the Array length to skip the last vertex | ||
1323 | + for (k = 0; k < c[j].length - 1; k += 1) { // For each vertex... | ||
1324 | + verts.push(new google.maps.LatLng(c[j][k].y, c[j][k].x)); | ||
1325 | + | ||
1326 | + } // eo for each vertex | ||
1327 | + | ||
1328 | + if (j !== 0) { // Reverse the order of coordinates in inner rings | ||
1329 | + if (config.reverseInnerPolygons == null || config.reverseInnerPolygons) { | ||
1330 | + verts.reverse(); | ||
1331 | + } | ||
1332 | + } | ||
1333 | + | ||
1334 | + rings.push(verts); | ||
1335 | + } // eo for each ring | ||
1336 | + | ||
1337 | + config.paths = config.paths.concat(rings); | ||
1338 | + | ||
1339 | + if (this.isRectangle) { | ||
1340 | + return (function () { | ||
1341 | + var bounds, v; | ||
1342 | + | ||
1343 | + bounds = new google.maps.LatLngBounds(); | ||
1344 | + | ||
1345 | + for (v in rings[0]) { // Ought to be only 1 ring in a Rectangle | ||
1346 | + if (rings[0].hasOwnProperty(v)) { | ||
1347 | + bounds.extend(rings[0][v]); | ||
1348 | + } | ||
1349 | + } | ||
1350 | + | ||
1351 | + return new google.maps.Rectangle({ | ||
1352 | + bounds: bounds | ||
1353 | + }); | ||
1354 | + }()); | ||
1355 | + } else { | ||
1356 | + return new google.maps.Polygon(config); | ||
1357 | + } | ||
1358 | + }, | ||
1359 | + | ||
1360 | + /** | ||
1361 | + * Creates the framework's equivalent multipolygon geometry object. | ||
1362 | + * @param config {Object} An optional properties hash the object should use | ||
1363 | + * @return {Array} Array containing multiple google.maps.Polygon | ||
1364 | + */ | ||
1365 | + multipolygon: function (config) { | ||
1366 | + var i, c, arr; | ||
1367 | + | ||
1368 | + c = this.components; | ||
1369 | + | ||
1370 | + config = config || { | ||
1371 | + editable: false | ||
1372 | + }; | ||
1373 | + | ||
1374 | + config.path = []; | ||
1375 | + | ||
1376 | + arr = []; | ||
1377 | + | ||
1378 | + for (i = 0; i < c.length; i += 1) { | ||
1379 | + arr.push(this.construct.polygon(config, c[i])); | ||
1380 | + } | ||
1381 | + | ||
1382 | + return arr; | ||
1383 | + } | ||
1384 | + | ||
1385 | + }; | ||
1386 | + | ||
1387 | + /** | ||
1388 | + * @augments Wkt.Wkt | ||
1389 | + * A framework-dependent deconstruction method used to generate internal | ||
1390 | + * geometric representations from instances of framework geometry. This method | ||
1391 | + * uses object detection to attempt to classify members of framework geometry | ||
1392 | + * classes into the standard WKT types. | ||
1393 | + * @param obj {Object} An instance of one of the framework's geometry classes | ||
1394 | + * @param multiFlag {Boolean} If true, then the deconstructor will be forced to return a MultiGeometry (multipoint, multilinestring or multipolygon) | ||
1395 | + * @return {Object} A hash of the 'type' and 'components' thus derived, plus the WKT string of the feature. | ||
1396 | + */ | ||
1397 | + Wkt.Wkt.prototype.deconstruct = function (obj, multiFlag) { | ||
1398 | + var features, i, j, multiFlag, verts, rings, sign, tmp, response, lat, lng; | ||
1399 | + | ||
1400 | + // Shortcut to signed area function (determines clockwise vs counter-clock) | ||
1401 | + if (google.maps.geometry) { | ||
1402 | + sign = google.maps.geometry.spherical.computeSignedArea; | ||
1403 | + }; | ||
1404 | + | ||
1405 | + // google.maps.LatLng ////////////////////////////////////////////////////// | ||
1406 | + if (obj.constructor === google.maps.LatLng) { | ||
1407 | + | ||
1408 | + response = { | ||
1409 | + type: 'point', | ||
1410 | + components: [{ | ||
1411 | + x: obj.lng(), | ||
1412 | + y: obj.lat() | ||
1413 | + }] | ||
1414 | + }; | ||
1415 | + return response; | ||
1416 | + } | ||
1417 | + | ||
1418 | + // google.maps.Point ////////////////////////////////////////////////////// | ||
1419 | + if (obj.constructor === google.maps.Point) { | ||
1420 | + response = { | ||
1421 | + type: 'point', | ||
1422 | + components: [{ | ||
1423 | + x: obj.x, | ||
1424 | + y: obj.y | ||
1425 | + }] | ||
1426 | + }; | ||
1427 | + return response; | ||
1428 | + } | ||
1429 | + | ||
1430 | + // google.maps.Marker ////////////////////////////////////////////////////// | ||
1431 | + if (obj.constructor === google.maps.Marker) { | ||
1432 | + response = { | ||
1433 | + type: 'point', | ||
1434 | + components: [{ | ||
1435 | + x: obj.getPosition().lng(), | ||
1436 | + y: obj.getPosition().lat() | ||
1437 | + }] | ||
1438 | + }; | ||
1439 | + return response; | ||
1440 | + } | ||
1441 | + | ||
1442 | + // google.maps.Polyline //////////////////////////////////////////////////// | ||
1443 | + if (obj.constructor === google.maps.Polyline) { | ||
1444 | + | ||
1445 | + verts = []; | ||
1446 | + for (i = 0; i < obj.getPath().length; i += 1) { | ||
1447 | + tmp = obj.getPath().getAt(i); | ||
1448 | + verts.push({ | ||
1449 | + x: tmp.lng(), | ||
1450 | + y: tmp.lat() | ||
1451 | + }); | ||
1452 | + } | ||
1453 | + response = { | ||
1454 | + type: 'linestring', | ||
1455 | + components: verts | ||
1456 | + }; | ||
1457 | + return response; | ||
1458 | + | ||
1459 | + } | ||
1460 | + | ||
1461 | + // google.maps.Polygon ///////////////////////////////////////////////////// | ||
1462 | + if (obj.constructor === google.maps.Polygon) { | ||
1463 | + | ||
1464 | + rings = []; | ||
1465 | + | ||
1466 | + if (multiFlag === undefined) { | ||
1467 | + multiFlag = (function () { | ||
1468 | + var areas, i, l; | ||
1469 | + | ||
1470 | + l = obj.getPaths().length; | ||
1471 | + if (l <= 1) { // Trivial; this is a single polygon | ||
1472 | + return false; | ||
1473 | + } | ||
1474 | + | ||
1475 | + if (l === 2) { | ||
1476 | + // If clockwise*clockwise or counter*counter, i.e. | ||
1477 | + // (-1)*(-1) or (1)*(1), then result would be positive | ||
1478 | + if (sign(obj.getPaths().getAt(0)) * sign(obj.getPaths().getAt(1)) < 0) { | ||
1479 | + return false; // Most likely single polygon with 1 hole | ||
1480 | + } | ||
1481 | + | ||
1482 | + return true; | ||
1483 | + } | ||
1484 | + | ||
1485 | + // Must be longer than 3 polygons at this point... | ||
1486 | + areas = obj.getPaths().getArray().map(function (k) { | ||
1487 | + return sign(k) / Math.abs(sign(k)); // Unit normalization (outputs 1 or -1) | ||
1488 | + }); | ||
1489 | + | ||
1490 | + // If two clockwise or two counter-clockwise rings are found | ||
1491 | + // (at different indices)... | ||
1492 | + if (areas.indexOf(areas[0]) !== areas.lastIndexOf(areas[0])) { | ||
1493 | + multiFlag = true; // Flag for holes in one or more polygons | ||
1494 | + return true; | ||
1495 | + } | ||
1496 | + | ||
1497 | + return false; | ||
1498 | + | ||
1499 | + }()); | ||
1500 | + } | ||
1501 | + | ||
1502 | + for (i = 0; i < obj.getPaths().length; i += 1) { // For each polygon (ring)... | ||
1503 | + tmp = obj.getPaths().getAt(i); | ||
1504 | + verts = []; | ||
1505 | + for (j = 0; j < obj.getPaths().getAt(i).length; j += 1) { // For each vertex... | ||
1506 | + verts.push({ | ||
1507 | + x: tmp.getAt(j).lng(), | ||
1508 | + y: tmp.getAt(j).lat() | ||
1509 | + }); | ||
1510 | + | ||
1511 | + } | ||
1512 | + | ||
1513 | + if (!tmp.getAt(tmp.length - 1).equals(tmp.getAt(0))) { | ||
1514 | + if (i % 2 !== 0) { // In inner rings, coordinates are reversed... | ||
1515 | + verts.unshift({ // Add the first coordinate again for closure | ||
1516 | + x: tmp.getAt(tmp.length - 1).lng(), | ||
1517 | + y: tmp.getAt(tmp.length - 1).lat() | ||
1518 | + }); | ||
1519 | + | ||
1520 | + } else { | ||
1521 | + verts.push({ // Add the first coordinate again for closure | ||
1522 | + x: tmp.getAt(0).lng(), | ||
1523 | + y: tmp.getAt(0).lat() | ||
1524 | + }); | ||
1525 | + | ||
1526 | + } | ||
1527 | + | ||
1528 | + } | ||
1529 | + | ||
1530 | + if (obj.getPaths().length > 1 && i > 0) { | ||
1531 | + // If this and the last ring have the same signs... | ||
1532 | + if (sign(obj.getPaths().getAt(i)) > 0 && sign(obj.getPaths().getAt(i - 1)) > 0 || | ||
1533 | + sign(obj.getPaths().getAt(i)) < 0 && sign(obj.getPaths().getAt(i - 1)) < 0 && !multiFlag) { | ||
1534 | + // ...They must both be inner rings (or both be outer rings, in a multipolygon) | ||
1535 | + verts = [verts]; // Wrap multipolygons once more (collection) | ||
1536 | + } | ||
1537 | + | ||
1538 | + } | ||
1539 | + | ||
1540 | + if (i % 2 !== 0) { // In inner rings, coordinates are reversed... | ||
1541 | + verts.reverse(); | ||
1542 | + } | ||
1543 | + rings.push(verts); | ||
1544 | + } | ||
1545 | + | ||
1546 | + response = { | ||
1547 | + type: (multiFlag) ? 'multipolygon' : 'polygon', | ||
1548 | + components: rings | ||
1549 | + }; | ||
1550 | + return response; | ||
1551 | + | ||
1552 | + } | ||
1553 | + | ||
1554 | + // google.maps.Circle ////////////////////////////////////////////////////// | ||
1555 | + if (obj.constructor === google.maps.Circle) { | ||
1556 | + var point = obj.getCenter(); | ||
1557 | + var radius = obj.getRadius(); | ||
1558 | + verts = []; | ||
1559 | + var d2r = Math.PI / 180; // degrees to radians | ||
1560 | + var r2d = 180 / Math.PI; // radians to degrees | ||
1561 | + radius = radius / 1609; // meters to miles | ||
1562 | + var earthsradius = 3963; // 3963 is the radius of the earth in miles | ||
1563 | + var num_seg = 32; // number of segments used to approximate a circle | ||
1564 | + var rlat = (radius / earthsradius) * r2d; | ||
1565 | + var rlng = rlat / Math.cos(point.lat() * d2r); | ||
1566 | + | ||
1567 | + for (var n = 0; n <= num_seg; n++) { | ||
1568 | + var theta = Math.PI * (n / (num_seg / 2)); | ||
1569 | + lng = point.lng() + (rlng * Math.cos(theta)); // center a + radius x * cos(theta) | ||
1570 | + lat = point.lat() + (rlat * Math.sin(theta)); // center b + radius y * sin(theta) | ||
1571 | + verts.push({ | ||
1572 | + x: lng, | ||
1573 | + y: lat | ||
1574 | + }); | ||
1575 | + } | ||
1576 | + | ||
1577 | + response = { | ||
1578 | + type: 'polygon', | ||
1579 | + components: [verts] | ||
1580 | + }; | ||
1581 | + | ||
1582 | + return response; | ||
1583 | + | ||
1584 | + } | ||
1585 | + | ||
1586 | + // google.maps.LatLngBounds /////////////////////////////////////////////////// | ||
1587 | + if (obj.constructor === google.maps.LatLngBounds) { | ||
1588 | + | ||
1589 | + tmp = obj; | ||
1590 | + verts = []; | ||
1591 | + verts.push({ // NW corner | ||
1592 | + x: tmp.getSouthWest().lng(), | ||
1593 | + y: tmp.getNorthEast().lat() | ||
1594 | + }); | ||
1595 | + | ||
1596 | + verts.push({ // NE corner | ||
1597 | + x: tmp.getNorthEast().lng(), | ||
1598 | + y: tmp.getNorthEast().lat() | ||
1599 | + }); | ||
1600 | + | ||
1601 | + verts.push({ // SE corner | ||
1602 | + x: tmp.getNorthEast().lng(), | ||
1603 | + y: tmp.getSouthWest().lat() | ||
1604 | + }); | ||
1605 | + | ||
1606 | + verts.push({ // SW corner | ||
1607 | + x: tmp.getSouthWest().lng(), | ||
1608 | + y: tmp.getSouthWest().lat() | ||
1609 | + }); | ||
1610 | + | ||
1611 | + verts.push({ // NW corner (again, for closure) | ||
1612 | + x: tmp.getSouthWest().lng(), | ||
1613 | + y: tmp.getNorthEast().lat() | ||
1614 | + }); | ||
1615 | + | ||
1616 | + | ||
1617 | + response = { | ||
1618 | + type: 'polygon', | ||
1619 | + isRectangle: true, | ||
1620 | + components: [verts] | ||
1621 | + }; | ||
1622 | + | ||
1623 | + return response; | ||
1624 | + | ||
1625 | + } | ||
1626 | + | ||
1627 | + // google.maps.Rectangle /////////////////////////////////////////////////// | ||
1628 | + if (obj.constructor === google.maps.Rectangle) { | ||
1629 | + | ||
1630 | + tmp = obj.getBounds(); | ||
1631 | + verts = []; | ||
1632 | + verts.push({ // NW corner | ||
1633 | + x: tmp.getSouthWest().lng(), | ||
1634 | + y: tmp.getNorthEast().lat() | ||
1635 | + }); | ||
1636 | + | ||
1637 | + verts.push({ // NE corner | ||
1638 | + x: tmp.getNorthEast().lng(), | ||
1639 | + y: tmp.getNorthEast().lat() | ||
1640 | + }); | ||
1641 | + | ||
1642 | + verts.push({ // SE corner | ||
1643 | + x: tmp.getNorthEast().lng(), | ||
1644 | + y: tmp.getSouthWest().lat() | ||
1645 | + }); | ||
1646 | + | ||
1647 | + verts.push({ // SW corner | ||
1648 | + x: tmp.getSouthWest().lng(), | ||
1649 | + y: tmp.getSouthWest().lat() | ||
1650 | + }); | ||
1651 | + | ||
1652 | + verts.push({ // NW corner (again, for closure) | ||
1653 | + x: tmp.getSouthWest().lng(), | ||
1654 | + y: tmp.getNorthEast().lat() | ||
1655 | + }); | ||
1656 | + | ||
1657 | + | ||
1658 | + response = { | ||
1659 | + type: 'polygon', | ||
1660 | + isRectangle: true, | ||
1661 | + components: [verts] | ||
1662 | + }; | ||
1663 | + | ||
1664 | + return response; | ||
1665 | + | ||
1666 | + } | ||
1667 | + | ||
1668 | + // google.maps.Data Geometry Types ///////////////////////////////////////////////////// | ||
1669 | + | ||
1670 | + // google.maps.Data.Feature ///////////////////////////////////////////////////// | ||
1671 | + if (obj.constructor === google.maps.Data.Feature) { | ||
1672 | + return this.deconstruct.call(this, obj.getGeometry()); | ||
1673 | + } | ||
1674 | + | ||
1675 | + // google.maps.Data.Point ///////////////////////////////////////////////////// | ||
1676 | + if (obj.constructor === google.maps.Data.Point) { | ||
1677 | + //console.log('It is a google.maps.Data.Point'); | ||
1678 | + response = { | ||
1679 | + type: 'point', | ||
1680 | + components: [{ | ||
1681 | + x: obj.get().lng(), | ||
1682 | + y: obj.get().lat() | ||
1683 | + }] | ||
1684 | + }; | ||
1685 | + return response; | ||
1686 | + } | ||
1687 | + | ||
1688 | + // google.maps.Data.LineString ///////////////////////////////////////////////////// | ||
1689 | + if (obj.constructor === google.maps.Data.LineString) { | ||
1690 | + verts = []; | ||
1691 | + //console.log('It is a google.maps.Data.LineString'); | ||
1692 | + for (i = 0; i < obj.getLength(); i += 1) { | ||
1693 | + vertex = obj.getAt(i); | ||
1694 | + verts.push({ | ||
1695 | + x: vertex.lng(), | ||
1696 | + y: vertex.lat() | ||
1697 | + }); | ||
1698 | + } | ||
1699 | + response = { | ||
1700 | + type: 'linestring', | ||
1701 | + components: verts | ||
1702 | + }; | ||
1703 | + return response; | ||
1704 | + } | ||
1705 | + | ||
1706 | + | ||
1707 | + | ||
1708 | + | ||
1709 | + // google.maps.Data.Polygon ///////////////////////////////////////////////////// | ||
1710 | + if (obj.constructor === google.maps.Data.Polygon) { | ||
1711 | + var rings = []; | ||
1712 | + //console.log('It is a google.maps.Data.Polygon'); | ||
1713 | + for (i = 0; i < obj.getLength(); i += 1) { // For each ring... | ||
1714 | + ring = obj.getAt(i); | ||
1715 | + var verts = []; | ||
1716 | + for (j = 0; j < ring.getLength(); j += 1) { // For each vertex... | ||
1717 | + vertex = ring.getAt(j); | ||
1718 | + verts.push({ | ||
1719 | + x: vertex.lng(), | ||
1720 | + y: vertex.lat() | ||
1721 | + }); | ||
1722 | + } | ||
1723 | + verts.push({ | ||
1724 | + x: ring.getAt(0).lng(), | ||
1725 | + y: ring.getAt(0).lat() | ||
1726 | + }); | ||
1727 | + | ||
1728 | + rings.push(verts); | ||
1729 | + } | ||
1730 | + response = { | ||
1731 | + type: 'polygon', | ||
1732 | + components: rings | ||
1733 | + }; | ||
1734 | + | ||
1735 | + return response; | ||
1736 | + } | ||
1737 | + | ||
1738 | + | ||
1739 | + // google.maps.Data.MultiPoint ///////////////////////////////////////////////////// | ||
1740 | + if (obj.constructor === google.maps.Data.MultiPoint) { | ||
1741 | + verts = []; | ||
1742 | + for (i = 0; i < obj.getLength(); i += 1) { | ||
1743 | + vertex = obj.getAt(i); | ||
1744 | + verts.push([{ | ||
1745 | + x: vertex.lng(), | ||
1746 | + y: vertex.lat() | ||
1747 | + }]); | ||
1748 | + } | ||
1749 | + response = { | ||
1750 | + type: 'multipoint', | ||
1751 | + components: verts | ||
1752 | + }; | ||
1753 | + return response; | ||
1754 | + } | ||
1755 | + | ||
1756 | + // google.maps.Data.MultiLineString ///////////////////////////////////////////////////// | ||
1757 | + if (obj.constructor === google.maps.Data.MultiLineString) { | ||
1758 | + linestrings = []; | ||
1759 | + for (i = 0; i < obj.getLength(); i += 1) { | ||
1760 | + verts = []; | ||
1761 | + var linestring = obj.getAt(i); | ||
1762 | + for (j = 0; j < linestring.getLength(); j += 1) { | ||
1763 | + vertex = linestring.getAt(j); | ||
1764 | + verts.push({ | ||
1765 | + x: vertex.lng(), | ||
1766 | + y: vertex.lat() | ||
1767 | + }); | ||
1768 | + } | ||
1769 | + linestrings.push(verts); | ||
1770 | + } | ||
1771 | + response = { | ||
1772 | + type: 'multilinestring', | ||
1773 | + components: linestrings | ||
1774 | + }; | ||
1775 | + return response; | ||
1776 | + } | ||
1777 | + | ||
1778 | + // google.maps.Data.MultiPolygon ///////////////////////////////////////////////////// | ||
1779 | + if (obj.constructor === google.maps.Data.MultiPolygon) { | ||
1780 | + | ||
1781 | + var polygons = []; | ||
1782 | + | ||
1783 | + //console.log('It is a google.maps.Data.MultiPolygon'); | ||
1784 | + for (k = 0; k < obj.getLength(); k += 1) { // For each multipolygon | ||
1785 | + var polygon = obj.getAt(k); | ||
1786 | + var rings = []; | ||
1787 | + for (i = 0; i < polygon.getLength(); i += 1) { // For each ring... | ||
1788 | + ring = polygon.getAt(i); | ||
1789 | + var verts = []; | ||
1790 | + for (j = 0; j < ring.getLength(); j += 1) { // For each vertex... | ||
1791 | + vertex = ring.getAt(j); | ||
1792 | + verts.push({ | ||
1793 | + x: vertex.lng(), | ||
1794 | + y: vertex.lat() | ||
1795 | + }); | ||
1796 | + } | ||
1797 | + verts.push({ | ||
1798 | + x: ring.getAt(0).lng(), | ||
1799 | + y: ring.getAt(0).lat() | ||
1800 | + }); | ||
1801 | + | ||
1802 | + rings.push(verts); | ||
1803 | + } | ||
1804 | + polygons.push(rings); | ||
1805 | + } | ||
1806 | + | ||
1807 | + response = { | ||
1808 | + type: 'multipolygon', | ||
1809 | + components: polygons | ||
1810 | + }; | ||
1811 | + return response; | ||
1812 | + } | ||
1813 | + | ||
1814 | + // google.maps.Data.GeometryCollection ///////////////////////////////////////////////////// | ||
1815 | + if (obj.constructor === google.maps.Data.GeometryCollection) { | ||
1816 | + | ||
1817 | + var objects = []; | ||
1818 | + for (k = 0; k < obj.getLength(); k += 1) { // For each multipolygon | ||
1819 | + var object = obj.getAt(k); | ||
1820 | + objects.push(this.deconstruct.call(this, object)); | ||
1821 | + } | ||
1822 | + //console.log('It is a google.maps.Data.GeometryCollection', objects); | ||
1823 | + response = { | ||
1824 | + type: 'geometrycollection', | ||
1825 | + components: objects | ||
1826 | + }; | ||
1827 | + return response; | ||
1828 | + } | ||
1829 | + | ||
1830 | + | ||
1831 | + // Array /////////////////////////////////////////////////////////////////// | ||
1832 | + if (Wkt.isArray(obj)) { | ||
1833 | + features = []; | ||
1834 | + | ||
1835 | + for (i = 0; i < obj.length; i += 1) { | ||
1836 | + features.push(this.deconstruct.call(this, obj[i], true)); | ||
1837 | + } | ||
1838 | + | ||
1839 | + response = { | ||
1840 | + | ||
1841 | + type: (function () { | ||
1842 | + var k, type = obj[0].constructor; | ||
1843 | + | ||
1844 | + for (k = 0; k < obj.length; k += 1) { | ||
1845 | + // Check that all items have the same constructor as the first item | ||
1846 | + if (obj[k].constructor !== type) { | ||
1847 | + // If they don't, type is heterogeneous geometry collection | ||
1848 | + return 'geometrycollection'; | ||
1849 | + } | ||
1850 | + } | ||
1851 | + | ||
1852 | + switch (type) { | ||
1853 | + case google.maps.Marker: | ||
1854 | + return 'multipoint'; | ||
1855 | + case google.maps.Polyline: | ||
1856 | + return 'multilinestring'; | ||
1857 | + case google.maps.Polygon: | ||
1858 | + return 'multipolygon'; | ||
1859 | + default: | ||
1860 | + return 'geometrycollection'; | ||
1861 | + } | ||
1862 | + | ||
1863 | + }()), | ||
1864 | + components: (function () { | ||
1865 | + // Pluck the components from each Wkt | ||
1866 | + var i, comps; | ||
1867 | + | ||
1868 | + comps = []; | ||
1869 | + for (i = 0; i < features.length; i += 1) { | ||
1870 | + if (features[i].components) { | ||
1871 | + comps.push(features[i].components); | ||
1872 | + } | ||
1873 | + } | ||
1874 | + | ||
1875 | + return { | ||
1876 | + comps: comps | ||
1877 | + }; | ||
1878 | + }()) | ||
1879 | + | ||
1880 | + }; | ||
1881 | + response.components = response.components.comps; | ||
1882 | + return response; | ||
1883 | + | ||
1884 | + } | ||
1885 | + }; | ||
1886 | +}(Wkt || require('./wicket'))); |
classesjs/compactados/classe_editorgm_compacto.js
1 | -if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.editorGM={iconePonto:function(sel){if(sel){return i3GEO.configura.locaplic+"/imagens/google/symbol_middot_y.png"}else{return i3GEO.configura.locaplic+"/imagens/google/symbol_middot.png"}},aguarde:"",iddiv:"",drawingManager:"",selectedShape:null,regioestemas:{},temasregioes:{},descregioes:[],inicia:function(iddiv){var i,n,ics;i3GEO.janela.tempoMsg("Atenção: apenas tabelas no esquema i3geo_metaestat podem ser editadas.");i3GEO.editorGM.iddiv=iddiv;$i(iddiv).innerHTML=i3GEO.editorGM.html();ics=$i(iddiv).getElementsByTagName("button");n=ics.length;i3GEO.barraDeBotoes.ativaBotoes();i3GEO.editorGM.comboRegiaoEditavel();for(i=0;i<n;i++){ics[i].style.backgroundColor="white";ics[i].className="iconeGuiaMovel";ics[i].onmouseout=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOut"};ics[i].onmouseover=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOver"};ics[i].style.backgroundImage="none";ics[i].style.height="32px";ics[i].style.width="32px";ics[i].style.border="1px solid gray";ics[i].style.margin="0px"}i3GEO.editorGM.drawingManager=new google.maps.drawing.DrawingManager({drawingMode:google.maps.drawing.OverlayType.POLYGON,drawingControl:false,drawingControlOptions:{position:google.maps.ControlPosition.TOP_CENTER,drawingModes:[google.maps.drawing.OverlayType.POLYGON,google.maps.drawing.OverlayType.MARKER,google.maps.drawing.OverlayType.POLYLINE]},markerOptions:{icon:i3GEO.editorGM.iconePonto(),clickable:true,zIndex:1,draggable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:"",editable:false},polygonOptions:{fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:""}});i3GEO.editorGM.drawingManager.setMap(i3GeoMap);i3GEO.editorGM.drawingManager.setDrawingMode(null);google.maps.event.addListener(i3GEO.editorGM.drawingManager,'overlaycomplete',function(e){i3GEO.editorGM.drawingManager.setDrawingMode(null);i3GEO.editorGM.mudaicone();var newShape=e.overlay;newShape.type=e.type;newShape.tema=$i("i3geoCartoRegioesEditaveis").value;newShape.colunaid="";newShape.valorid="";newShape.colunanome="";newShape.valornome="";google.maps.event.addListener(newShape,'click',function(){i3GEO.editorGM.setSelection(newShape)});i3GEO.editorGM.setSelection(newShape);i3GEO.desenho.googlemaps.shapes.push(newShape)});google.maps.event.addListener(i3GEO.editorGM.drawingManager,'drawingmode_changed',i3GEO.editorGM.clearSelection);google.maps.event.addListener(i3GeoMap,'click',i3GEO.editorGM.clearSelection)},atualizaCamadasMetaestat:function(){var p=i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=LISTACAMADASMETAESTAT&g_sid="+i3GEO.configura.sid,temp=function(retorno){var n=retorno.data.length,i;for(i=0;i<n;i++){i3GEO.Interface.atualizaTema("",retorno.data[i])}};cpJSON.call(p,"foo",temp)},html:function(){var ins='<div style=margin-left:5px >'+' <button title="Desenhar um poligono" onclick="i3GEO.editorGM.digitalizaPol(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/polygon-create.png" /></button>'+' <button title="Adicionar ponto" onclick="i3GEO.editorGM.digitalizaPt(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/point-create.png" /></button>'+' <button title="Capturar elemento de um tema" onclick="i3GEO.editorGM.capturaPoligonoTema.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/layer-import.png" /></button>'+' <button title="Selecionar" onclick="i3GEO.editorGM.seleciona(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/select.png" /></button>'+' <button title="Remove selecionado (não apaga)" onclick="i3GEO.editorGM.deleteSelectedShape()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/selected-delete.png" /></button>'+' <button title="Salvar/excluir dados" onclick="i3GEO.editorGM.salvaLimite.inicia()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/vector-save.png" /></button>'+' <button title="Editar atributos" onclick="i3GEO.editorGM.editarAtributos.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/annotation-form.png" /></button>'+' <button title="Ajuda" onmousedown="i3GEO.editorGM.mudaicone()" onclick="i3GEO.editorGM.ajuda()" ><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/help-contents.png" /></button>'+' <br><div id="i3geoCartoRegioesEditaveisDiv" ><img style="display:block;z-index:2" src="'+i3GEO.configura.locaplic+'/imagens/aguarde.gif" /></div></div>';return ins},ativaFoco:function(){i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.barraDeBotoes.ativaIcone("pan");i3GEO.editorGM.mudaicone();i3GEO.Interface.googlemaps.recalcPar()},setSelection:function(shape){if(shape.setEditable){shape.setEditable(!shape.editable)}else{shape.editable=true;shape.setIcon({url:i3GEO.editorGM.iconePonto(true)})}},clearSelection:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(false)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=false;if(i3GEO.desenho.googlemaps.shapes[i].setIcon){i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(false)})}}}},selectAll:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(true)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=true;i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(true)})}}},deleteSelectedShape:function(naoconfirma){if(!naoconfirma){naoconfirma=false}var i,n=i3GEO.desenho.googlemaps.shapes.length;if(n>0){if(naoconfirma===false){var x=window.confirm("Remove as figuras selecionadas?")}else{x=true}if(x){for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable&&i3GEO.desenho.googlemaps.shapes[i].editable===true){i3GEO.desenho.googlemaps.shapes[i].setMap(null);i3GEO.desenho.googlemaps.shapes[i]=""}}}}else{i3GEO.janela.tempoMsg("Selecione pelo menos uma figura")}},selectedShapes:function(){var i,s=[],n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){s.push(i3GEO.desenho.googlemaps.shapes[i])}}return s},getCoordenadas:function(){var coordenadas=[],lista=[],n=i3GEO.desenho.googlemaps.shapes.length,tipo="",ps,nps,j,p,i,r={};for(i=0;i<n;i++){coordenadas=[];if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){if(tipo==""){tipo=i3GEO.desenho.googlemaps.shapes[i].type}ps=i3GEO.desenho.googlemaps.shapes[i].getPath();nps=ps.getLength();for(j=0;j<nps;j++){p=ps.getAt(j);coordenadas.push([p.lng()+" "+p.lat()])}lista.push(coordenadas)}}r={"tipo":tipo,"coordenadas":lista};return r},toWKT:function(obj){var wkt=new Wkt.Wkt();wkt.fromObject(obj);return wkt.write()},merge:function(geoms){var n=geoms.length,w=new Wkt.Wkt(),g,m,i;w.read(geoms[0].toString());if(n>1){for(i=1;i<n;i++){g=geoms[i].toString();m=new Wkt.Wkt();m.read(g);w.merge(m)}}return w.write()},capturaPoligonoTema:{ativa:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.eventos.cliquePerm.desativa();if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.editorGM.capturaPoligonoTema.captura()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.editorGM.capturaPoligonoTema.captura()")}i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic)},desativa:function(){},captura:function(){var temp,tema="",regiao="",p,par,aguarde=$i("janelaEditorLimites_imagemCabecalho");if(!$i("i3geoCartoRegioesEditaveis")){i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.editorGM.capturaPoligonoTema.captura()")}else{temp=function(retorno){var temp,n,i,WicketWkt,wkt="",colunaid=i3GEO.editorGM.descregioes["a_"+regiao]["identificador"],valorid="",colunanome=i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"],valornome="",aguarde=$i("janelaEditorLimites_imagemCabecalho");if(aguarde){aguarde.style.visibility="hidden"}temp=retorno.data[0].resultado[0];if(temp===" "){i3GEO.janela.tempoMsg("Nada encontrado");return}i3GEO.editorGM.mudaicone();n=temp.length;for(i=0;i<n;i++){if(temp[i].alias=="wkt"){wkt=temp[i].valor}if(temp[i].alias==colunaid||temp[i].item==colunaid){valorid=temp[i].valor}if(temp[i].alias==colunanome||temp[i].item==colunanome){valornome=temp[i].valor}}WicketWkt=new Wkt.Wkt();try{WicketWkt.read(wkt)}catch(e1){try{wkt.read(wkt.replace('\n','').replace('\r','').replace('\t',''))}catch(e2){if(e2.name==='WKTError'){alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');return}}}obj=WicketWkt.toObject(i3GeoMap.defaults);i3GEO.editorGM.adicionaPoligonos(obj,tema,colunaid,valorid,colunanome,valornome);i3GEO.eventos.MOUSECLIQUE=[]};regiao=$i("i3geoCartoRegioesEditaveis").value;if(regiao!=""){tema=i3GEO.editorGM.regioestemas["a"+regiao];if(aguarde&&aguarde.style.visibility=="hidden"){aguarde.style.visibility="visible";p=i3GEO.configura.locaplic+"/classesphp/mapa_controle.php";par="funcao=identifica3&opcao=tema&xy="+objposicaocursor.ddx+","+objposicaocursor.ddy+"&resolucao=5&g_sid="+i3GEO.configura.sid+"&ext="+i3GEO.parametros.mapexten+"&listaDeTemas=&wkt=sim&tema="+tema;cpJSON.call(p,"identifica",temp,par)}}}}},comboRegiaoEditavel:function(codigo_tipo_regiao){if(!codigo_tipo_regiao){codigo_tipo_regiao=""}var onde=$i("i3geoCartoRegioesEditaveisDiv"),temp=function(dados){var n=dados.length,ins='<br><p class="paragrafo" >Camadas editáveis:</p>',i;ins+="<select onchange='i3GEO.editorGM.comboRegiaoEditavelOnchange(this)' id='i3geoCartoRegioesEditaveis' style='width:175px' ><option value=''>---</option>";for(i=0;i<n;i++){if(dados[i].esquemadb=="i3geo_metaestat"){ins+="<option value='"+dados[i].codigo_tipo_regiao+"'>"+dados[i].nome_tipo_regiao+"</option>";i3GEO.editorGM.descregioes["a_"+dados[i].codigo_tipo_regiao]=dados[i]}}ins+="</select>";if(onde){onde.innerHTML=ins}return ins};i3GEO.php.listaTipoRegiao(temp,codigo_tipo_regiao)},comboRegiaoEditavelOnchange:function(combo){if(combo.value===""){return}i3GEO.editorGM.editarAtributos.desativa();var temp=function(retorno){if(i3GEO.arvoreDeCamadas.pegaTema(retorno.layer)==""){i3GEO.php.adtema(i3GEO.atualiza,retorno.mapfile);i3GEO.editorGM.regioestemas["a"+$i("i3geoCartoRegioesEditaveis").value]=retorno.layer;i3GEO.editorGM.temasregioes[retorno.layer]=$i("i3geoCartoRegioesEditaveis").value}};i3GEO.php.mapfileTipoRegiao(temp,combo.value)},mudaicone:function(botao){var c=$i(i3GEO.editorGM.iddiv),ci=c.getElementsByTagName("img"),n=ci.length,i;for(i=0;i<n;i++){ci[i].parentNode.style.backgroundColor="#F5F5F5"}i3GEO.eventos.MOUSECLIQUE=[];i3GEO.editorGM.capturaPoligonoTema.desativa();i3GEO.editorGM.editarAtributos.desativa();if(botao&&botao.style){botao.style.backgroundColor="#cedff2"}},digitalizaPol:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.POLYGON})},digitalizaPt:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.MARKER})},seleciona:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:null})},adicionaPoligonos:function(obj,tema,colunaid,valorid,colunanome,valornome){if(!tema){tema=$i("i3geoCartoRegioesEditaveis").value}if(!colunaid){colunaid=""}if(!valorid){valorid=""}if(!colunanome){colunanome=""}if(!valornome){valornome=""}var pol;if(Wkt.isArray(obj)){for(i in obj){if(obj.hasOwnProperty(i)&&!Wkt.isArray(obj[i])){pol=new google.maps.Polygon({path:obj[i].getPath(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol)}}return}if(obj.type==='polygon'||obj.type==='linestring'){pol=new google.maps.Polygon({paths:obj.getPaths(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}if(obj.type==='marker'){i3GEO.editorGM.selectAll();if(i3GEO.desenho.googlemaps.shapes.length>0){i3GEO.editorGM.deleteSelectedShape(true)}pol=new google.maps.Marker({position:new google.maps.LatLng(obj.getPosition().ob,obj.getPosition().pb),map:i3GeoMap,icon:{url:i3GEO.editorGM.iconePonto(false)},clickable:true,zIndex:1,draggable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome,editable:false});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}},salvaLimite:{inicia:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var s=i3GEO.editorGM.selectedShapes(),n=s.length,janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}if(n==1){s=s[0];i3GEO.editorGM.salvaLimite.criaJanelaFlutuante(i3GEO.editorGM.salvaLimite.html(s.colunaid,s.valorid,s.colunanome,s.valornome));new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao1",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(true)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao2",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(false)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao3",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.excluiPoligono()}}})}else{i3GEO.janela.tempoMsg("Selecione uma figura")}},html:function(colunaIdElemento,valorIdElemento,colunaNomeElemento,valorNomeElemento){var ins=''+'<p class=paragrafo >Se o valor do código for vazio, será criado um novo elemento. Caso contrário, os valores atualmente registrados serão atualizados.</p>'+'<p class=paragrafo >Edite os atributos:</p>'+'<input type=hidden id="inputColunaIdElemento" value="'+colunaIdElemento+'" />'+'<input type=hidden id="inputColunaNomeElemento" value="'+colunaNomeElemento+'" />'+'<input type=hidden id="inputIdentificadorElemento" value="'+valorIdElemento+'" />'+'<input type=hidden id="inputNomeElemento" value="'+valorNomeElemento+'" />'+'<p class=paragrafo >Código:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputIdentificadorNovoElemento" value="'+valorIdElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Nome:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputNomeNovoElemento" value="'+valorNomeElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Escolha a operação desejada:</p>'+'<input id=i3GEOFmetaestati3GEO.editorGMBotao1 type="button" value="Salvar tudo" />'+' <input id=i3GEOFmetaestati3GEO.editorGMBotao2 type="button" value="Salvar apenas os atributos" />'+'<br><br><input id=i3GEOFmetaestati3GEO.editorGMBotao3 type="button" value="Excluir" />';return ins},criaJanelaFlutuante:function(html){var titulo,cabecalho,minimiza,janela;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("salvaLimite")};titulo="Salva limite </a>";janela=i3GEO.janela.cria("300px","265px","","","",titulo,"salvaLimite",true,"hd",cabecalho,minimiza);$i("salvaLimite_corpo").style.backgroundColor="white";$i("salvaLimite_corpo").innerHTML=html;YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},gravaDados:function(comwkt){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}if(!window.confirm("Grava mesmo os dados?")){return}var p,codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificadornovo=$i("inputIdentificadorNovoElemento").value,identificador=$i("inputIdentificadorElemento").value,nome=$i("inputNomeNovoElemento").value,wkt="",temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()};if(comwkt===true){wkt=i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0])}else{if(identificadornovo===identificador&&$i("inputNomeElemento").value===nome){i3GEO.janela.tempoMsg("Valores iguais ao original");return}}p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=";cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificadornovo="+identificadornovo+"&identificador="+identificador+"&nome="+nome+"&wkt="+wkt)},excluiPoligono:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}if(!window.confirm("Exclui mesmo o poligono?")){return}var codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificador=$i("inputIdentificadorElemento").value,temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()},p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=excluir";cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador="+identificador)}},editarAtributos:{aliascolunas:"",x:"",y:"",ativa:function(botao){if($i("i3geoCartoRegioesEditaveis").value==""){i3GEO.janela.tempoMsg("Escolha uma regiao");return}i3GEO.editorGM.mudaicone(botao);if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.editorGM.editarAtributos.captura()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.editorGM.editarAtributos.captura()")}var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){$i("editarAtributosForm").innerHTML=""}else{i3GEO.editorGM.editarAtributos.criaJanelaFlutuante(i3GEO.editorGM.editarAtributos.html());i3GEO.editorGM.editarAtributos.comboVariaveis()}},desativa:function(){var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){janela.destroy()}},criaJanelaFlutuante:function(html){var janela,titulo,cabecalho,minimiza;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributos")};titulo="Atributos </a>";janela=i3GEO.janela.cria("250px","265px","","","",titulo,"editaAtributos",false,"hd",cabecalho,minimiza);$i("editaAtributos_corpo").style.backgroundColor="white";$i("editaAtributos_corpo").innerHTML=html;i3GEO.janela.tempoMsg("Após escolher a medida da variável, clique no mapa para escolher o limite geográfico.");YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},html:function(){var ins=''+'<p class="paragrafo" ><div id="editarAtributosVariaveis" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosMedidasVariavel" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosRegiao" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosForm" ></div></p>'+'';return ins},comboVariaveis:function(){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma variável para editar</p>';ins+="<select style='box-shadow:0 1px 5px gray;width:200px' onchange='i3GEO.editorGM.editarAtributos.comboMedidasVariavel(this)'><option value=''>---</option>";for(i=0;i<n;i++){ins+="<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"}ins+="</select>";$i("editarAtributosVariaveis").innerHTML=ins};i3GEO.php.listaVariavel(temp,"i3geo_metaestat")},comboMedidasVariavel:function(comboMedidas){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma medida da variável para editar</p>';ins+="<select id='editarAtributosComboMedidas' style='box-shadow:0 1px 5px gray;width:200px' onchange=''><option value=''>---</option>";for(i=0;i<n;i++){if(dados[i].esquemadb=="i3geo_metaestat"&&dados[i].codigo_tipo_regiao==$i("i3geoCartoRegioesEditaveis").value){ins+="<option value='"+dados[i].id_medida_variavel+"'>"+dados[i].nomemedida+"</option>"}}ins+="</select>";$i("editarAtributosMedidasVariavel").innerHTML=ins};if(comboMedidas.value!==""){i3GEO.php.listaMedidaVariavel(comboMedidas.value,temp)}},captura:function(){if(!YAHOO.i3GEO.janela.manager.find("editaAtributos")){i3GEO.editorGM.mudaicone(botao);return}i3GEO.editorGM.editarAtributos.x=objposicaocursor.ddx;i3GEO.editorGM.editarAtributos.y=objposicaocursor.ddy;i3GEO.editorGM.editarAtributos.pegaDados()},pegaDados:function(){var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaAtributosMedidaVariavelXY",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,temp=function(retorno){var atr=retorno.atributos,i=0,n=atr.dados.length,j=0,idunico="",nj=atr.aliascolunas.length,ins=""+'<p class=paragrafo >Limite geográfico escolhido:</p>'+'<p class=paragrafo ><b>Nome: </b>'+retorno.regiao.nomeregiao+'</p>'+'<p class=paragrafo ><b>Código: </b>'+retorno.regiao.identificador_regiao+'</p>'+'<input type=hidden id="editarAtributosidentificador_regiao" value="'+retorno.regiao.identificador_regiao+'" />'+'<p class=paragrafo >Atributos:</p>'+'<input id=editarAtributosAdicionar value="Adicionar um novo" />'+' <input id=editarAtributosSalvar value="Salvar" />';$i("editarAtributosRegiao").innerHTML=ins;ins="";for(i=0;i<n;i++){for(j=0;j<nj;j++){if(atr.aliascolunas[j]=="idunico"){idunico=atr.dados[i][atr.colunas[j]]}}ins+="<hr><div><p class=paragrafo style='color:blue;cursor:pointer' onclick='i3GEO.editorGM.editarAtributos.excluir("+idunico+")' >excluir</p>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+':<br>'+'<input class=digitar id="idunico_'+idunico+'" value="'+atr.dados[i][atr.colunas[j]]+'" name="'+atr.colunas[j]+'" /></p>'}}}$i("editarAtributosForm").innerHTML=ins;new YAHOO.widget.Button("editarAtributosAdicionar",{onclick:{fn:function(){var novoel=document.createElement("div"),ins="<hr><br>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+' - '+atr.descricao[j]+':<br>'+'<input class=digitar id="" value="" name="'+atr.colunas[j]+'" /></p>'}}ins+"<br></div>";novoel.innerHTML=ins;$i("editarAtributosForm").appendChild(novoel)}}});new YAHOO.widget.Button("editarAtributosSalvar",{onclick:{fn:function(){i3GEO.editorGM.editarAtributos.salva()}}})};cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&id_medida_variavel="+id_medida_variavel+"&x="+i3GEO.editorGM.editarAtributos.x+"&y="+i3GEO.editorGM.editarAtributos.y)},excluir:function(id){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=excluiAtributosMedidaVariavel",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&id="+id)},salva:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var container=$i("editarAtributosForm"),divsT=container.getElementsByTagName("div"),n=divsT.length,i=0,dv="",inputs="",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,nj,j,colunas=[],colunasT=[],valores=[],valoresT=[],idsunicosT=[],p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=salvaAtributosMedidaVariavel",re=new RegExp("idunico_","g"),temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.editorGM.atualizaCamadasMetaestat();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};if(codigo_tipo_regiao==""){i3GEO.janela.tempoMsg("Problemas com o codigo da regiao");return}if(id_medida_variavel==""){i3GEO.janela.tempoMsg("Escolha uma medida");return}if(identificador_regiao==""){i3GEO.janela.tempoMsg("Problemas com o identificador da regiao");return}for(i=0;i<n;i++){dv=divsT[i];inputs=dv.getElementsByTagName("input");nj=inputs.length;colunas=[];valores=[];for(j=0;j<nj;j++){colunas.push(inputs[j].name);valores.push(inputs[j].value)}idsunicosT.push(inputs[0].id.replace(re,''));colunasT.push(colunas.join(";"));valoresT.push(valores.join(";"))}i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&colunas="+colunasT[0]+"&valores="+valoresT.join("|")+"&idsunicos="+idsunicosT.join(";"))}},ajuda:function(){var titulo,cabecalho,minimiza,html="";cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributosAjuda")};titulo="Ajuda </a>";i3GEO.janela.cria("400px","350px","","","",titulo,"editaAtributosAjuda",false,"hd",cabecalho,minimiza);$i("editaAtributosAjuda_corpo").style.backgroundColor="white";html+="<table class=lista8 >"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/polygon-create.png' /></td>"+"<td>Clique no mapa para traçar um polígono novo. Cada clique corresponde a um vértice do polígono. Para encerrar o traçado utilize um duplo clique. Após traçar um novo polígono pode-se selecioná-lo novamente e editar os vértices, se for necessário, ou mesmo apagar o polígono por completo. O novo polígono só será salvo por meio da opção específica para isso.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/layer-import.png' /></td>"+"<td>Utilize essa opção para capturar os vértices de um polígono existente. O resultado da captura é uma figura que pode ser editada, ou seja, os vértices podem ser modificados de posição ou mesmo removidos. Após editar, salve o novo polígono.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/select.png' /></td>"+"<td>Após ativar essa opção clique no mapa sobre uma figura existente (que tenha sido capturada ou digtalizada). A figura passará então para o estado de 'selecionada' podendo ser utilizada por outras ferramentas de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/selected-delete.png' /></td>"+"<td>Remove da tela a figura que estiver selecionada. Essa operação não apaga o polígono do banco de dados, apenas remove do modo de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/vector-save.png' /></td>"+"<td>Salva no banco de dados a figura que estiver selecionada. Essa opção altera apenas os atributos do limite geográfico, não afetando os valores armazenados em cada medida de variável.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/annotation-form.png' /></td>"+"<td>Abre um formulário que permite alterar os valores de uma medida de variável relacionada a uma determinada região. Após abrir o formulário, clique no mapa sobre a região desejada, mas escolha a medida da variável primeiro. Os valores já existentes poderão então ser alterados ou podem ser adicionados novos.</td></tr>"+"</table>";$i("editaAtributosAjuda_corpo").innerHTML=html}};google.maps.Marker.prototype.type='marker';google.maps.Polyline.prototype.type='polyline';google.maps.Polygon.prototype.type='polygon';google.maps.Rectangle.prototype.type='rectangle';google.maps.Circle.prototype.type='circle';Wkt.Wkt.prototype.construct={'point':function(config,component){var c=component||this.components;config=config||{};config.position=new google.maps.LatLng(c[0].y,c[0].x);return new google.maps.Marker(config)},'multipoint':function(config){var i,c,arr;c=this.components;config=config||{};arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.point(config,c[i]))}return arr},'linestring':function(config,component){var i,c;c=component||this.components;config=config||{editable:false};config.path=[];for(i=0;i<c.length;i+=1){config.path.push(new google.maps.LatLng(c[i].y,c[i].x))}return new google.maps.Polyline(config)},'multilinestring':function(config){var i,c,arr;c=this.components;config=config||{editable:false};config.path=[];arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.linestring(config,c[i]))}return arr},'polygon':function(config){var j,k,c,rings,verts;c=this.components;config=config||{editable:false};config.paths=[];rings=[];for(j=0;j<c.length;j+=1){verts=[];for(k=0;k<c[j].length;k+=1){verts.push(new google.maps.LatLng(c[j][k].y,c[j][k].x))}if(j!==0){if(config.reverseInnerPolygons==null||config.reverseInnerPolygons){verts.reverse()}}rings.push(verts)}config.paths=config.paths.concat(rings);if(this.isRectangle){console.log('Rectangles are not yet supported; set the isRectangle property to false (default).')}else{return new google.maps.Polygon(config)}},'multipolygon':function(config){var i,j,k,c,rings,verts;c=this.components;config=config||{editable:false};config.paths=[];for(i=0;i<c.length;i+=1){rings=[];for(j=0;j<c[i].length;j+=1){verts=[];for(k=0;k<c[i][j].length;k+=1){verts.push(new google.maps.LatLng(c[i][j][k].y,c[i][j][k].x))}rings.push(verts)}config.paths=config.paths.concat(rings)}return new google.maps.Polygon(config)}};Wkt.Wkt.prototype.deconstruct=function(obj){var i,j,verts,rings,tmp;if(obj.getPosition&&typeof obj.getPosition==='function'){return{type:'point',components:[{x:obj.getPosition().lng(),y:obj.getPosition().lat()}]}}else if(obj.getPath&&!obj.getPaths){verts=[];for(i=0;i<obj.getPath().length;i+=1){tmp=obj.getPath().getAt(i);verts.push({x:tmp.lng(),y:tmp.lat()})}return{type:'linestring',components:verts}}else if(obj.getPaths){rings=[];for(i=0;i<obj.getPaths().length;i+=1){tmp=obj.getPaths().getAt(i);verts=[];for(j=0;j<obj.getPaths().getAt(i).length;j+=1){verts.push({x:tmp.getAt(j).lng(),y:tmp.getAt(j).lat()})}verts.push({x:tmp.getAt(0).lng(),y:tmp.getAt(0).lat()});if(obj.getPaths().length>1){verts=[verts]}rings.push(verts)}return{type:'polygon',components:rings}}else if(obj.getBounds&&!obj.getRadius){tmp=obj.getBounds();return{type:'polygon',isRectangle:true,components:[[{x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()},{x:tmp.getNorthEast().lng(),y:tmp.getNorthEast().lat()},{x:tmp.getNorthEast().lng(),y:tmp.getSouthWest().lat()},{x:tmp.getSouthWest().lng(),y:tmp.getSouthWest().lat()},{x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()}]]}}else if(obj.getBounds&&obj.getRadius){console.log('Deconstruction of google.maps.Circle objects is not yet supported')}else{console.log('The passed object does not have any recognizable properties.')}};Wkt.Wkt.prototype.isRectangle=false; | ||
2 | \ No newline at end of file | 1 | \ No newline at end of file |
2 | +if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.editorGM={iconePonto:function(sel){if(sel){return i3GEO.configura.locaplic+"/imagens/google/symbol_middot_y.png"}else{return i3GEO.configura.locaplic+"/imagens/google/symbol_middot.png"}},aguarde:"",iddiv:"",drawingManager:"",selectedShape:null,regioestemas:{},temasregioes:{},descregioes:[],inicia:function(iddiv){var i,n,ics;i3GEO.janela.tempoMsg("Atenção: apenas tabelas no esquema i3geo_metaestat podem ser editadas.");i3GEO.editorGM.iddiv=iddiv;$i(iddiv).innerHTML=i3GEO.editorGM.html();ics=$i(iddiv).getElementsByTagName("button");n=ics.length;i3GEO.barraDeBotoes.ativaBotoes();i3GEO.editorGM.comboRegiaoEditavel();for(i=0;i<n;i++){ics[i].style.backgroundColor="white";ics[i].className="iconeGuiaMovel";ics[i].onmouseout=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOut"};ics[i].onmouseover=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOver"};ics[i].style.backgroundImage="none";ics[i].style.height="32px";ics[i].style.width="32px";ics[i].style.border="1px solid gray";ics[i].style.margin="0px"}i3GEO.editorGM.drawingManager=new google.maps.drawing.DrawingManager({drawingMode:google.maps.drawing.OverlayType.POLYGON,drawingControl:false,drawingControlOptions:{position:google.maps.ControlPosition.TOP_CENTER,drawingModes:[google.maps.drawing.OverlayType.POLYGON,google.maps.drawing.OverlayType.MARKER,google.maps.drawing.OverlayType.POLYLINE]},markerOptions:{icon:i3GEO.editorGM.iconePonto(),clickable:true,zIndex:1,draggable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:"",editable:false},polygonOptions:{fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:""}});i3GEO.editorGM.drawingManager.setMap(i3GeoMap);i3GEO.editorGM.drawingManager.setDrawingMode(null);google.maps.event.addListener(i3GEO.editorGM.drawingManager,'overlaycomplete',function(e){i3GEO.editorGM.drawingManager.setDrawingMode(null);i3GEO.editorGM.mudaicone();var newShape=e.overlay;newShape.type=e.type;newShape.tema=$i("i3geoCartoRegioesEditaveis").value;newShape.colunaid="";newShape.valorid="";newShape.colunanome="";newShape.valornome="";google.maps.event.addListener(newShape,'click',function(){i3GEO.editorGM.setSelection(newShape)});i3GEO.editorGM.setSelection(newShape);i3GEO.desenho.googlemaps.shapes.push(newShape)});google.maps.event.addListener(i3GEO.editorGM.drawingManager,'drawingmode_changed',i3GEO.editorGM.clearSelection);google.maps.event.addListener(i3GeoMap,'click',i3GEO.editorGM.clearSelection)},atualizaCamadasMetaestat:function(){var p=i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=LISTACAMADASMETAESTAT&g_sid="+i3GEO.configura.sid,temp=function(retorno){var n=retorno.data.length,i;for(i=0;i<n;i++){i3GEO.Interface.atualizaTema("",retorno.data[i])}};cpJSON.call(p,"foo",temp)},html:function(){var ins='<div style=margin-left:5px >'+' <button title="Desenhar um poligono" onclick="i3GEO.editorGM.digitalizaPol(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/polygon-create.png" /></button>'+' <button title="Adicionar ponto" onclick="i3GEO.editorGM.digitalizaPt(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/point-create.png" /></button>'+' <button title="Capturar elemento de um tema" onclick="i3GEO.editorGM.capturaPoligonoTema.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/layer-import.png" /></button>'+' <button title="Selecionar" onclick="i3GEO.editorGM.seleciona(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/select.png" /></button>'+' <button title="Remove selecionado (não apaga)" onclick="i3GEO.editorGM.deleteSelectedShape()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/selected-delete.png" /></button>'+' <button title="Salvar/excluir dados" onclick="i3GEO.editorGM.salvaLimite.inicia()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/vector-save.png" /></button>'+' <button title="Editar atributos" onclick="i3GEO.editorGM.editarAtributos.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/annotation-form.png" /></button>'+' <button title="Ajuda" onmousedown="i3GEO.editorGM.mudaicone()" onclick="i3GEO.editorGM.ajuda()" ><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/help-contents.png" /></button>'+' <br><div id="i3geoCartoRegioesEditaveisDiv" ><img style="display:block;z-index:2" src="'+i3GEO.configura.locaplic+'/imagens/aguarde.gif" /></div></div>';return ins},ativaFoco:function(){i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.barraDeBotoes.ativaIcone("pan");i3GEO.editorGM.mudaicone();i3GEO.Interface.googlemaps.recalcPar()},setSelection:function(shape){if(shape.setEditable){shape.setEditable(!shape.editable)}else{shape.editable=true;shape.setIcon({url:i3GEO.editorGM.iconePonto(true)})}},clearSelection:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(false)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=false;if(i3GEO.desenho.googlemaps.shapes[i].setIcon){i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(false)})}}}},selectAll:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(true)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=true;i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(true)})}}},deleteSelectedShape:function(naoconfirma){if(!naoconfirma){naoconfirma=false}var i,n=i3GEO.desenho.googlemaps.shapes.length;if(n>0){if(naoconfirma===false){var x=window.confirm("Remove as figuras selecionadas?")}else{x=true}if(x){for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable&&i3GEO.desenho.googlemaps.shapes[i].editable===true){i3GEO.desenho.googlemaps.shapes[i].setMap(null);i3GEO.desenho.googlemaps.shapes[i]=""}}}}else{i3GEO.janela.tempoMsg("Selecione pelo menos uma figura")}},selectedShapes:function(){var i,s=[],n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){s.push(i3GEO.desenho.googlemaps.shapes[i])}}return s},getCoordenadas:function(){var coordenadas=[],lista=[],n=i3GEO.desenho.googlemaps.shapes.length,tipo="",ps,nps,j,p,i,r={};for(i=0;i<n;i++){coordenadas=[];if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){if(tipo==""){tipo=i3GEO.desenho.googlemaps.shapes[i].type}ps=i3GEO.desenho.googlemaps.shapes[i].getPath();nps=ps.getLength();for(j=0;j<nps;j++){p=ps.getAt(j);coordenadas.push([p.lng()+" "+p.lat()])}lista.push(coordenadas)}}r={"tipo":tipo,"coordenadas":lista};return r},toWKT:function(obj){var wkt=new Wkt.Wkt();wkt.fromObject(obj);return wkt.write()},merge:function(geoms){var n=geoms.length,w=new Wkt.Wkt(),g,m,i;w.read(geoms[0].toString());if(n>1){for(i=1;i<n;i++){g=geoms[i].toString();m=new Wkt.Wkt();m.read(g);w.merge(m)}}return w.write()},capturaPoligonoTema:{ativa:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.eventos.cliquePerm.desativa();if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.editorGM.capturaPoligonoTema.captura()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.editorGM.capturaPoligonoTema.captura()")}i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic)},desativa:function(){},captura:function(){var temp,tema="",regiao="",p,par,aguarde=$i("i3GEOjanelaEditor_imagemCabecalho");if(!$i("i3geoCartoRegioesEditaveis")){i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.editorGM.capturaPoligonoTema.captura()")}else{temp=function(retorno){var temp,n,i,WicketWkt,wkt="",colunaid=i3GEO.editorGM.descregioes["a_"+regiao]["identificador"],valorid="",colunanome=i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"],valornome="",aguarde=$i("i3GEOjanelaEditor_imagemCabecalho");if(aguarde){aguarde.style.visibility="hidden"}temp=retorno.data[0].resultado[0];if(temp===" "){i3GEO.janela.tempoMsg("Nada encontrado");return}i3GEO.editorGM.mudaicone();n=temp.length;for(i=0;i<n;i++){if(temp[i].alias=="wkt"){wkt=temp[i].valor}if(temp[i].alias==colunaid||temp[i].item==colunaid){valorid=temp[i].valor}if(temp[i].alias==colunanome||temp[i].item==colunanome){valornome=temp[i].valor}}WicketWkt=new Wkt.Wkt();try{WicketWkt.read(wkt)}catch(e1){try{wkt.read(wkt.replace('\n','').replace('\r','').replace('\t',''))}catch(e2){if(e2.name==='WKTError'){alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');return}}}obj=WicketWkt.toObject(i3GeoMap.defaults);i3GEO.editorGM.adicionaPoligonos(obj,tema,colunaid,valorid,colunanome,valornome);i3GEO.eventos.MOUSECLIQUE=[]};regiao=$i("i3geoCartoRegioesEditaveis").value;if(regiao!=""){tema=i3GEO.editorGM.regioestemas["a"+regiao];if(aguarde&&aguarde.style.visibility=="hidden"){aguarde.style.visibility="visible";p=i3GEO.configura.locaplic+"/classesphp/mapa_controle.php";par="funcao=identifica3&opcao=tema&xy="+objposicaocursor.ddx+","+objposicaocursor.ddy+"&resolucao=5&g_sid="+i3GEO.configura.sid+"&ext="+i3GEO.parametros.mapexten+"&listaDeTemas=&wkt=sim&tema="+tema;cpJSON.call(p,"identifica",temp,par)}}}}},comboRegiaoEditavel:function(codigo_tipo_regiao){if(!codigo_tipo_regiao){codigo_tipo_regiao=""}var onde=$i("i3geoCartoRegioesEditaveisDiv"),temp=function(dados){var n=dados.length,ins='<br><p class="paragrafo" >Camadas editáveis:</p>',i;ins+="<select onchange='i3GEO.editorGM.comboRegiaoEditavelOnchange(this)' id='i3geoCartoRegioesEditaveis' style='width:175px' ><option value=''>---</option>";for(i=0;i<n;i++){if(dados[i].esquemadb=="i3geo_metaestat"){ins+="<option value='"+dados[i].codigo_tipo_regiao+"'>"+dados[i].nome_tipo_regiao+"</option>";i3GEO.editorGM.descregioes["a_"+dados[i].codigo_tipo_regiao]=dados[i]}}ins+="</select>";if(onde){onde.innerHTML=ins}return ins};i3GEO.php.listaTipoRegiao(temp,codigo_tipo_regiao)},comboRegiaoEditavelOnchange:function(combo){if(combo.value===""){return}i3GEO.editorGM.editarAtributos.desativa();var temp=function(retorno){if(i3GEO.arvoreDeCamadas.pegaTema(retorno.layer)==""){i3GEO.php.adtema(i3GEO.atualiza,retorno.mapfile);i3GEO.editorGM.regioestemas["a"+$i("i3geoCartoRegioesEditaveis").value]=retorno.layer;i3GEO.editorGM.temasregioes[retorno.layer]=$i("i3geoCartoRegioesEditaveis").value}};i3GEO.php.mapfileTipoRegiao(temp,combo.value)},mudaicone:function(botao){var c=$i(i3GEO.editorGM.iddiv),ci=c.getElementsByTagName("img"),n=ci.length,i;for(i=0;i<n;i++){ci[i].parentNode.style.backgroundColor="#F5F5F5"}i3GEO.eventos.MOUSECLIQUE=[];i3GEO.editorGM.capturaPoligonoTema.desativa();i3GEO.editorGM.editarAtributos.desativa();if(botao&&botao.style){botao.style.backgroundColor="#cedff2"}},digitalizaPol:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.POLYGON})},digitalizaPt:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.MARKER})},seleciona:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:null})},adicionaPoligonos:function(obj,tema,colunaid,valorid,colunanome,valornome){if(!tema){tema=$i("i3geoCartoRegioesEditaveis").value}if(!colunaid){colunaid=""}if(!valorid){valorid=""}if(!colunanome){colunanome=""}if(!valornome){valornome=""}var pol;if(Wkt.isArray(obj)){for(i in obj){if(obj.hasOwnProperty(i)&&!Wkt.isArray(obj[i])){pol=new google.maps.Polygon({path:obj[i].getPath(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol)}}return}if(obj.type==='polygon'||obj.type==='linestring'){pol=new google.maps.Polygon({paths:obj.getPaths(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}if(obj.type==='marker'){i3GEO.editorGM.selectAll();if(i3GEO.desenho.googlemaps.shapes.length>0){i3GEO.editorGM.deleteSelectedShape(true)}pol=new google.maps.Marker({position:new google.maps.LatLng(obj.getPosition().ob,obj.getPosition().pb),map:i3GeoMap,icon:{url:i3GEO.editorGM.iconePonto(false)},clickable:true,zIndex:1,draggable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome,editable:false});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}},salvaLimite:{inicia:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var s=i3GEO.editorGM.selectedShapes(),n=s.length,janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}if(n==1){s=s[0];i3GEO.editorGM.salvaLimite.criaJanelaFlutuante(i3GEO.editorGM.salvaLimite.html(s.colunaid,s.valorid,s.colunanome,s.valornome));new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao1",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(true)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao2",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(false)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao3",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.excluiPoligono()}}})}else{i3GEO.janela.tempoMsg("Selecione uma figura")}},html:function(colunaIdElemento,valorIdElemento,colunaNomeElemento,valorNomeElemento){var ins=''+'<p class=paragrafo >Se o valor do código for vazio, será criado um novo elemento. Caso contrário, os valores atualmente registrados serão atualizados.</p>'+'<p class=paragrafo >Edite os atributos:</p>'+'<input type=hidden id="inputColunaIdElemento" value="'+colunaIdElemento+'" />'+'<input type=hidden id="inputColunaNomeElemento" value="'+colunaNomeElemento+'" />'+'<input type=hidden id="inputIdentificadorElemento" value="'+valorIdElemento+'" />'+'<input type=hidden id="inputNomeElemento" value="'+valorNomeElemento+'" />'+'<p class=paragrafo >Código:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputIdentificadorNovoElemento" value="'+valorIdElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Nome:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputNomeNovoElemento" value="'+valorNomeElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Escolha a operação desejada:</p>'+'<input id=i3GEOFmetaestati3GEO.editorGMBotao1 type="button" value="Salvar tudo" />'+' <input id=i3GEOFmetaestati3GEO.editorGMBotao2 type="button" value="Salvar apenas os atributos" />'+'<br><br><input id=i3GEOFmetaestati3GEO.editorGMBotao3 type="button" value="Excluir" />';return ins},criaJanelaFlutuante:function(html){var titulo,cabecalho,minimiza,janela;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("salvaLimite")};titulo="Salva limite </a>";janela=i3GEO.janela.cria("300px","265px","","","",titulo,"salvaLimite",true,"hd",cabecalho,minimiza);$i("salvaLimite_corpo").style.backgroundColor="white";$i("salvaLimite_corpo").innerHTML=html;YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},gravaDados:function(comwkt){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}if(!window.confirm("Grava mesmo os dados?")){return}var p,codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificadornovo=$i("inputIdentificadorNovoElemento").value,identificador=$i("inputIdentificadorElemento").value,nome=$i("inputNomeNovoElemento").value,wkt="",temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()};if(comwkt===true){wkt=i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0])}else{if(identificadornovo===identificador&&$i("inputNomeElemento").value===nome){i3GEO.janela.tempoMsg("Valores iguais ao original");return}}p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=";cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificadornovo="+identificadornovo+"&identificador="+identificador+"&nome="+nome+"&wkt="+wkt)},excluiPoligono:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}if(!window.confirm("Exclui mesmo o poligono?")){return}var codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificador=$i("inputIdentificadorElemento").value,temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()},p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=excluir";cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador="+identificador)}},editarAtributos:{aliascolunas:"",x:"",y:"",ativa:function(botao){if($i("i3geoCartoRegioesEditaveis").value==""){i3GEO.janela.tempoMsg("Escolha uma regiao");return}i3GEO.editorGM.mudaicone(botao);if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.editorGM.editarAtributos.captura()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.editorGM.editarAtributos.captura()")}var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){$i("editarAtributosForm").innerHTML=""}else{i3GEO.editorGM.editarAtributos.criaJanelaFlutuante(i3GEO.editorGM.editarAtributos.html());i3GEO.editorGM.editarAtributos.comboVariaveis()}},desativa:function(){var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){janela.destroy()}},criaJanelaFlutuante:function(html){var janela,titulo,cabecalho,minimiza;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributos")};titulo="Atributos </a>";janela=i3GEO.janela.cria("250px","265px","","","",titulo,"editaAtributos",false,"hd",cabecalho,minimiza);$i("editaAtributos_corpo").style.backgroundColor="white";$i("editaAtributos_corpo").innerHTML=html;i3GEO.janela.tempoMsg("Após escolher a medida da variável, clique no mapa para escolher o limite geográfico.");YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},html:function(){var ins=''+'<p class="paragrafo" ><div id="editarAtributosVariaveis" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosMedidasVariavel" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosRegiao" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosForm" ></div></p>'+'';return ins},comboVariaveis:function(){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma variável para editar</p>';ins+="<select style='box-shadow:0 1px 5px gray;width:200px' onchange='i3GEO.editorGM.editarAtributos.comboMedidasVariavel(this)'><option value=''>---</option>";for(i=0;i<n;i++){ins+="<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"}ins+="</select>";$i("editarAtributosVariaveis").innerHTML=ins};i3GEO.php.listaVariavel(temp,"i3geo_metaestat")},comboMedidasVariavel:function(comboMedidas){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma medida da variável para editar</p>';ins+="<select id='editarAtributosComboMedidas' style='box-shadow:0 1px 5px gray;width:200px' onchange=''><option value=''>---</option>";for(i=0;i<n;i++){if(dados[i].esquemadb=="i3geo_metaestat"&&dados[i].codigo_tipo_regiao==$i("i3geoCartoRegioesEditaveis").value){ins+="<option value='"+dados[i].id_medida_variavel+"'>"+dados[i].nomemedida+"</option>"}}ins+="</select>";$i("editarAtributosMedidasVariavel").innerHTML=ins};if(comboMedidas.value!==""){i3GEO.php.listaMedidaVariavel(comboMedidas.value,temp)}},captura:function(){if(!YAHOO.i3GEO.janela.manager.find("editaAtributos")){i3GEO.editorGM.mudaicone(botao);return}i3GEO.editorGM.editarAtributos.x=objposicaocursor.ddx;i3GEO.editorGM.editarAtributos.y=objposicaocursor.ddy;i3GEO.editorGM.editarAtributos.pegaDados()},pegaDados:function(){var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaAtributosMedidaVariavelXY",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,temp=function(retorno){var atr=retorno.atributos,i=0,n=atr.dados.length,j=0,idunico="",nj=atr.aliascolunas.length,ins=""+'<p class=paragrafo >Limite geográfico escolhido:</p>'+'<p class=paragrafo ><b>Nome: </b>'+retorno.regiao.nomeregiao+'</p>'+'<p class=paragrafo ><b>Código: </b>'+retorno.regiao.identificador_regiao+'</p>'+'<input type=hidden id="editarAtributosidentificador_regiao" value="'+retorno.regiao.identificador_regiao+'" />'+'<p class=paragrafo >Atributos:</p>'+'<input id=editarAtributosAdicionar value="Adicionar um novo" />'+' <input id=editarAtributosSalvar value="Salvar" />';$i("editarAtributosRegiao").innerHTML=ins;ins="";for(i=0;i<n;i++){for(j=0;j<nj;j++){if(atr.aliascolunas[j]=="idunico"){idunico=atr.dados[i][atr.colunas[j]]}}ins+="<hr><div><p class=paragrafo style='color:blue;cursor:pointer' onclick='i3GEO.editorGM.editarAtributos.excluir("+idunico+")' >excluir</p>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+':<br>'+'<input class=digitar id="idunico_'+idunico+'" value="'+atr.dados[i][atr.colunas[j]]+'" name="'+atr.colunas[j]+'" /></p>'}}}$i("editarAtributosForm").innerHTML=ins;new YAHOO.widget.Button("editarAtributosAdicionar",{onclick:{fn:function(){var novoel=document.createElement("div"),ins="<hr><br>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+' - '+atr.descricao[j]+':<br>'+'<input class=digitar id="" value="" name="'+atr.colunas[j]+'" /></p>'}}ins+"<br></div>";novoel.innerHTML=ins;$i("editarAtributosForm").appendChild(novoel)}}});new YAHOO.widget.Button("editarAtributosSalvar",{onclick:{fn:function(){i3GEO.editorGM.editarAtributos.salva()}}})};cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&id_medida_variavel="+id_medida_variavel+"&x="+i3GEO.editorGM.editarAtributos.x+"&y="+i3GEO.editorGM.editarAtributos.y)},excluir:function(id){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=excluiAtributosMedidaVariavel",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&id="+id)},salva:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var container=$i("editarAtributosForm"),divsT=container.getElementsByTagName("div"),n=divsT.length,i=0,dv="",inputs="",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,nj,j,colunas=[],colunasT=[],valores=[],valoresT=[],idsunicosT=[],p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=salvaAtributosMedidaVariavel",re=new RegExp("idunico_","g"),temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.editorGM.atualizaCamadasMetaestat();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};if(codigo_tipo_regiao==""){i3GEO.janela.tempoMsg("Problemas com o codigo da regiao");return}if(id_medida_variavel==""){i3GEO.janela.tempoMsg("Escolha uma medida");return}if(identificador_regiao==""){i3GEO.janela.tempoMsg("Problemas com o identificador da regiao");return}for(i=0;i<n;i++){dv=divsT[i];inputs=dv.getElementsByTagName("input");nj=inputs.length;colunas=[];valores=[];for(j=0;j<nj;j++){colunas.push(inputs[j].name);valores.push(inputs[j].value)}idsunicosT.push(inputs[0].id.replace(re,''));colunasT.push(colunas.join(";"));valoresT.push(valores.join(";"))}i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&colunas="+colunasT[0]+"&valores="+valoresT.join("|")+"&idsunicos="+idsunicosT.join(";"))}},ajuda:function(){var titulo,cabecalho,minimiza,html="";cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributosAjuda")};titulo="Ajuda </a>";i3GEO.janela.cria("400px","350px","","","",titulo,"editaAtributosAjuda",false,"hd",cabecalho,minimiza);$i("editaAtributosAjuda_corpo").style.backgroundColor="white";html+="<table class=lista8 >"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/polygon-create.png' /></td>"+"<td>Clique no mapa para traçar um polígono novo. Cada clique corresponde a um vértice do polígono. Para encerrar o traçado utilize um duplo clique. Após traçar um novo polígono pode-se selecioná-lo novamente e editar os vértices, se for necessário, ou mesmo apagar o polígono por completo. O novo polígono só será salvo por meio da opção específica para isso.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/layer-import.png' /></td>"+"<td>Utilize essa opção para capturar os vértices de um polígono existente. O resultado da captura é uma figura que pode ser editada, ou seja, os vértices podem ser modificados de posição ou mesmo removidos. Após editar, salve o novo polígono.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/select.png' /></td>"+"<td>Após ativar essa opção clique no mapa sobre uma figura existente (que tenha sido capturada ou digtalizada). A figura passará então para o estado de 'selecionada' podendo ser utilizada por outras ferramentas de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/selected-delete.png' /></td>"+"<td>Remove da tela a figura que estiver selecionada. Essa operação não apaga o polígono do banco de dados, apenas remove do modo de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/vector-save.png' /></td>"+"<td>Salva no banco de dados a figura que estiver selecionada. Essa opção altera apenas os atributos do limite geográfico, não afetando os valores armazenados em cada medida de variável.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/annotation-form.png' /></td>"+"<td>Abre um formulário que permite alterar os valores de uma medida de variável relacionada a uma determinada região. Após abrir o formulário, clique no mapa sobre a região desejada, mas escolha a medida da variável primeiro. Os valores já existentes poderão então ser alterados ou podem ser adicionados novos.</td></tr>"+"</table>";$i("editaAtributosAjuda_corpo").innerHTML=html}};google.maps.Marker.prototype.type='marker';google.maps.Polyline.prototype.type='polyline';google.maps.Polygon.prototype.type='polygon';google.maps.Rectangle.prototype.type='rectangle';google.maps.Circle.prototype.type='circle';(function(Wkt){Wkt.Wkt.prototype.isRectangle=false;Wkt.Wkt.prototype.construct={point:function(config,component){var c=component||this.components;config=config||{};config.position=new google.maps.LatLng(c[0].y,c[0].x);return new google.maps.Marker(config)},multipoint:function(config){var i,c,arr;c=this.components;config=config||{};arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.point(config,c[i]))}return arr},linestring:function(config,component){var i,c;c=component||this.components;config=config||{editable:false};config.path=[];for(i=0;i<c.length;i+=1){config.path.push(new google.maps.LatLng(c[i].y,c[i].x))}return new google.maps.Polyline(config)},multilinestring:function(config){var i,c,arr;c=this.components;config=config||{editable:false};config.path=[];arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.linestring(config,c[i]))}return arr},box:function(config,component){var c=component||this.components;config=config||{};config.bounds=new google.maps.LatLngBounds(new google.maps.LatLng(c[0].y,c[0].x),new google.maps.LatLng(c[1].y,c[1].x));return new google.maps.Rectangle(config)},polygon:function(config,component){var j,k,c,rings,verts;c=component||this.components;config=config||{editable:false};config.paths=[];rings=[];for(j=0;j<c.length;j+=1){verts=[];for(k=0;k<c[j].length-1;k+=1){verts.push(new google.maps.LatLng(c[j][k].y,c[j][k].x))}if(j!==0){if(config.reverseInnerPolygons==null||config.reverseInnerPolygons){verts.reverse()}}rings.push(verts)}config.paths=config.paths.concat(rings);if(this.isRectangle){return(function(){var bounds,v;bounds=new google.maps.LatLngBounds();for(v in rings[0]){if(rings[0].hasOwnProperty(v)){bounds.extend(rings[0][v])}}return new google.maps.Rectangle({bounds:bounds})}())}else{return new google.maps.Polygon(config)}},multipolygon:function(config){var i,c,arr;c=this.components;config=config||{editable:false};config.path=[];arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.polygon(config,c[i]))}return arr}};Wkt.Wkt.prototype.deconstruct=function(obj,multiFlag){var features,i,j,multiFlag,verts,rings,sign,tmp,response,lat,lng;if(google.maps.geometry){sign=google.maps.geometry.spherical.computeSignedArea};if(obj.constructor===google.maps.LatLng){response={type:'point',components:[{x:obj.lng(),y:obj.lat()}]};return response}if(obj.constructor===google.maps.Point){response={type:'point',components:[{x:obj.x,y:obj.y}]};return response}if(obj.constructor===google.maps.Marker){response={type:'point',components:[{x:obj.getPosition().lng(),y:obj.getPosition().lat()}]};return response}if(obj.constructor===google.maps.Polyline){verts=[];for(i=0;i<obj.getPath().length;i+=1){tmp=obj.getPath().getAt(i);verts.push({x:tmp.lng(),y:tmp.lat()})}response={type:'linestring',components:verts};return response}if(obj.constructor===google.maps.Polygon){rings=[];if(multiFlag===undefined){multiFlag=(function(){var areas,i,l;l=obj.getPaths().length;if(l<=1){return false}if(l===2){if(sign(obj.getPaths().getAt(0))*sign(obj.getPaths().getAt(1))<0){return false}return true}areas=obj.getPaths().getArray().map(function(k){return sign(k)/Math.abs(sign(k)); });if(areas.indexOf(areas[0])!==areas.lastIndexOf(areas[0])){multiFlag=true;return true}return false}())}for(i=0;i<obj.getPaths().length;i+=1){tmp=obj.getPaths().getAt(i);verts=[];for(j=0;j<obj.getPaths().getAt(i).length;j+=1){verts.push({x:tmp.getAt(j).lng(),y:tmp.getAt(j).lat()})}if(!tmp.getAt(tmp.length-1).equals(tmp.getAt(0))){if(i%2!==0){verts.unshift({x:tmp.getAt(tmp.length-1).lng(),y:tmp.getAt(tmp.length-1).lat()})}else{verts.push({x:tmp.getAt(0).lng(),y:tmp.getAt(0).lat()})}}if(obj.getPaths().length>1&&i>0){if(sign(obj.getPaths().getAt(i))>0&&sign(obj.getPaths().getAt(i-1))>0||sign(obj.getPaths().getAt(i))<0&&sign(obj.getPaths().getAt(i-1))<0&&!multiFlag){verts=[verts]}}if(i%2!==0){verts.reverse()}rings.push(verts)}response={type:(multiFlag)?'multipolygon':'polygon',components:rings};return response}if(obj.constructor===google.maps.Circle){var point=obj.getCenter();var radius=obj.getRadius();verts=[];var d2r=Math.PI/180; var r2d=180/Math.PI; radius=radius/1609; var earthsradius=3963;var num_seg=32;var rlat=(radius/earthsradius)*r2d;var rlng=rlat/Math.cos(point.lat()*d2r);for(var n=0;n<=num_seg;n++){var theta=Math.PI*(n/(num_seg/2));lng=point.lng()+(rlng*Math.cos(theta));lat=point.lat()+(rlat*Math.sin(theta));verts.push({x:lng,y:lat})}response={type:'polygon',components:[verts]};return response}if(obj.constructor===google.maps.LatLngBounds){tmp=obj;verts=[];verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});response={type:'polygon',isRectangle:true,components:[verts]};return response}if(obj.constructor===google.maps.Rectangle){tmp=obj.getBounds();verts=[];verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});response={type:'polygon',isRectangle:true,components:[verts]};return response}if(obj.constructor===google.maps.Data.Feature){return this.deconstruct.call(this,obj.getGeometry())}if(obj.constructor===google.maps.Data.Point){response={type:'point',components:[{x:obj.get().lng(),y:obj.get().lat()}]};return response}if(obj.constructor===google.maps.Data.LineString){verts=[];for(i=0;i<obj.getLength();i+=1){vertex=obj.getAt(i);verts.push({x:vertex.lng(),y:vertex.lat()})}response={type:'linestring',components:verts};return response}if(obj.constructor===google.maps.Data.Polygon){var rings=[];for(i=0;i<obj.getLength();i+=1){ring=obj.getAt(i);var verts=[];for(j=0;j<ring.getLength();j+=1){vertex=ring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}verts.push({x:ring.getAt(0).lng(),y:ring.getAt(0).lat()});rings.push(verts)}response={type:'polygon',components:rings};return response}if(obj.constructor===google.maps.Data.MultiPoint){verts=[];for(i=0;i<obj.getLength();i+=1){vertex=obj.getAt(i);verts.push([{x:vertex.lng(),y:vertex.lat()}])}response={type:'multipoint',components:verts};return response}if(obj.constructor===google.maps.Data.MultiLineString){linestrings=[];for(i=0;i<obj.getLength();i+=1){verts=[];var linestring=obj.getAt(i);for(j=0;j<linestring.getLength();j+=1){vertex=linestring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}linestrings.push(verts)}response={type:'multilinestring',components:linestrings};return response}if(obj.constructor===google.maps.Data.MultiPolygon){var polygons=[];for(k=0;k<obj.getLength();k+=1){var polygon=obj.getAt(k);var rings=[];for(i=0;i<polygon.getLength();i+=1){ring=polygon.getAt(i);var verts=[];for(j=0;j<ring.getLength();j+=1){vertex=ring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}verts.push({x:ring.getAt(0).lng(),y:ring.getAt(0).lat()});rings.push(verts)}polygons.push(rings)}response={type:'multipolygon',components:polygons};return response}if(obj.constructor===google.maps.Data.GeometryCollection){var objects=[];for(k=0;k<obj.getLength();k+=1){var object=obj.getAt(k);objects.push(this.deconstruct.call(this,object))}response={type:'geometrycollection',components:objects};return response}if(Wkt.isArray(obj)){features=[];for(i=0;i<obj.length;i+=1){features.push(this.deconstruct.call(this,obj[i],true))}response={type:(function(){var k,type=obj[0].constructor;for(k=0;k<obj.length;k+=1){if(obj[k].constructor!==type){return'geometrycollection'}}switch(type){case google.maps.Marker:return'multipoint';case google.maps.Polyline:return'multilinestring';case google.maps.Polygon:return'multipolygon';default:return'geometrycollection'}}()),components:(function(){var i,comps;comps=[];for(i=0;i<features.length;i+=1){if(features[i].components){comps.push(features[i].components)}}return{comps:comps}}())};response.components=response.components.comps;return response}}}(Wkt||require('./wicket'))); | ||
3 | \ No newline at end of file | 3 | \ No newline at end of file |
ferramentas/metaestat/editorlimites.php
1 | <?php | 1 | <?php |
2 | -//@TODO atualizar a interface para black | ||
3 | /* | 2 | /* |
4 | Title: Editor de limites geograficos do sistema de metadados estatisticos | 3 | Title: Editor de limites geograficos do sistema de metadados estatisticos |
5 | 4 | ||
@@ -40,90 +39,98 @@ include_once(dirname(__FILE__)."/../../ms_configura.php"); | @@ -40,90 +39,98 @@ include_once(dirname(__FILE__)."/../../ms_configura.php"); | ||
40 | <meta http-equiv="Category" content="i3Geo Mapa interativo geoprocessamento sig mobile"> | 39 | <meta http-equiv="Category" content="i3Geo Mapa interativo geoprocessamento sig mobile"> |
41 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | 40 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
42 | <title>i3GEO - Editor de limites</title> | 41 | <title>i3GEO - Editor de limites</title> |
43 | - | 42 | +<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing "></script> |
43 | +<script type="text/javascript" src="../../classesjs/i3geo.js"></script> | ||
44 | +<link rel="stylesheet" type="text/css" href="../../css/black.css"> | ||
45 | +<script src="editorlimites_dependencias.php"></script> | ||
44 | </head> | 46 | </head> |
45 | -<body id="i3geo" style="background-color:white"> | ||
46 | -<!-- inclui o nome do usuario logado --> | ||
47 | -<div id="i3GEONomeLogin" style="position:absolute;left:10px;top:12px;font-size:11px;z-index:50000"></div> | ||
48 | -<table id='mst' summary="" style='display:none;' width=100% cellspacing='0'> | ||
49 | - <tr style="border:0px"> | ||
50 | - <td id="barraSuperior" style="background-image:url('../../imagens/visual/default/cabeca.png');height:10px"></td> | ||
51 | - </tr> | ||
52 | - <tr> | ||
53 | - <td id="contemMenu" style="text-align:right;border-width:0pt 0pt 1px;border-color:rgb(240,240,240)"> | ||
54 | - <!--menu suspenso--> | ||
55 | - <div id="menus" ></div> | ||
56 | - </td> | ||
57 | - </tr> | ||
58 | - <tr> | ||
59 | - <td style="vertical-align:top;border-width:0px;"> | ||
60 | - <table width="100%" style="vertical-align:top;border-width:0px"> | ||
61 | - <tr> | ||
62 | - <td class=verdeclaro id=contemImg > | ||
63 | - <div id=googlemapsdiv style="position:relative;background-image:url('../../imagens/i3geo1bw.jpg');"></div> | ||
64 | - </td> | ||
65 | - </tr> | ||
66 | - </table> | ||
67 | - </td> | ||
68 | - </tr> | ||
69 | - <tr> | ||
70 | - <td> | ||
71 | - <table width=100% > | ||
72 | - <tr> | ||
73 | - <td class=tdbranca > | ||
74 | - <!-- | ||
75 | - Nesse div são incluídos os ícones que permitem ao usuário modificar o visual de cores dos ícones | ||
76 | - <div id=visual ></div> | ||
77 | - --> | ||
78 | - <!-- botão de compartilhamento em redes sociais --> | ||
79 | - <div id=i3GEOcompartilhar style="width:170px;margin:auto;text-align:left;border-top:1px solid rgb(250,250,250);padding-top:1px" ></div> | ||
80 | - <!-- aqui será incluído o contador de tempo quando o temporizador de redesenho do mapa estiver ativo --> | ||
81 | - <div id=tempoRedesenho style=color:green;background-color:black;width:50px;display:none ></div> | ||
82 | - </td> | ||
83 | - <td class=tdbranca > | ||
84 | - <!-- aqui será incluída a escala numérica --> | ||
85 | - <div id=escala style="margin:auto;text-align:right;" ></div> | ||
86 | - </td> | ||
87 | - <td class=tdbranca > | ||
88 | - <!-- aqui será incluído o gadget que mostra a coordenada geográfica da posição do mouse --> | ||
89 | - <div id=localizarxy style="margin:auto;text-align:left;font-size:10px;display:inline-table"></div> | ||
90 | - </td> | ||
91 | - <!-- aqui serão incluídas as bandeiras que permitem a troca de idioma --> | ||
92 | - <td class=tdbranca > | ||
93 | - <div id=seletorIdiomas ></div> | ||
94 | - </td> | ||
95 | - </tr> | ||
96 | - </table> | ||
97 | - </td> | ||
98 | - </tr> | ||
99 | - <tr style="border:0px"> | ||
100 | - <td id="barraInferior" style="background-image:url('../../imagens/visual/default/rodape.png');height:10px"></td> | ||
101 | - </tr> | ||
102 | -</table> | ||
103 | -<table id="i3GEOlogoMarca" style='margin: 0px auto;box-shadow:0 1px 13px gray;border-radius:5px;'> | ||
104 | - <tr> | ||
105 | - <td><div id=versaoi3geo ></div><h2 style="font-size:10px;font-family: Verdana, Arial, Helvetica, sans-serif;">i3Geo - Software livre para criação de mapas interativos e geoprocessamento</h2><h3 style="font-size:10px;font-family: Verdana, Arial, Helvetica, sans-serif;">Baseado no Mapserver, é licenciado sob GPL e integra o Portal do Software Público Brasileiro</h3></td> | ||
106 | - </tr> | ||
107 | - <tr> | ||
108 | - <td style="padding:10px;"><img style="width:560px;height:81px" alt="" src='../../imagens/logo_inicio.png' ></td> | ||
109 | - </tr> | ||
110 | - <tr> | ||
111 | - <td> | ||
112 | - <!-- | 47 | + |
48 | +<body id="i3geo" style='margin-left: 7px; background: white;'> | ||
49 | + <!-- inclui o nome do usuario logado --> | ||
50 | + <div id="i3GEONomeLogin" style="position: absolute; left: 10px; top: 12px; font-size: 11px; z-index: 50000"></div> | ||
51 | + <table id='mst' summary="" style='display: none;' width=100% cellspacing='0'> | ||
52 | + <tr> | ||
53 | + <td id="contemMenu" style="background: black; height: 30px; text-align: right; border-width: 0pt 0pt 1px; border-color: rgb(240, 240, 240)"> | ||
54 | + <!--menu suspenso--> | ||
55 | + <div id="menus" style="height: 30px;"></div> | ||
56 | + </td> | ||
57 | + </tr> | ||
58 | + <tr> | ||
59 | + <td style="vertical-align: top; border-width: 0px;"> | ||
60 | + <table width="100%" style="vertical-align: top; border-width: 0px"> | ||
61 | + <tr> | ||
62 | + <td class=verdeclaro id=contemImg> | ||
63 | + <div id=googlemapsdiv style="position: relative; background-image: url('../../imagens/i3geo1bw.jpg');"></div> | ||
64 | + </td> | ||
65 | + </tr> | ||
66 | + </table> | ||
67 | + </td> | ||
68 | + </tr> | ||
69 | + <tr> | ||
70 | + <td> | ||
71 | + <table style="width: 100%; height: 28px"> | ||
72 | + <tr> | ||
73 | + <td class=fundoRodape style="width: 25%"> | ||
74 | + <!-- aqui será incluída a escala numérica --> | ||
75 | + <div id=escala style="margin: auto; text-align: right; left: 15px;"></div> | ||
76 | + </td> | ||
77 | + <td class=fundoRodape style="width: 5%"></td> | ||
78 | + <td class=fundoRodape style="width: 40%"> | ||
79 | + <!-- aqui será incluído o gadget que mostra a coordenada geográfica da posição do mouse --> | ||
80 | + <div id=localizarxy style="margin: auto; text-align: left; font-size: 10px; display: inline-table"></div> | ||
81 | + </td> | ||
82 | + <td class=fundoRodape style="width: 20%"> | ||
83 | + <!-- botão de compartilhamento em redes sociais--> | ||
84 | + <!--<div id=i3GEOcompartilhar style="width: 170px; margin: auto; text-align: left; padding-top: 1px"></div> --> | ||
85 | + <!-- aqui será incluído o contador de tempo quando o temporizador de redesenho do mapa estiver ativo --> | ||
86 | + <div id=tempoRedesenho style="z-index: 100; position: absolute; top: 0px; color: green; background-color: black; width: 50px; display: none"></div> | ||
87 | + </td> | ||
88 | + <!-- aqui serão incluídas as bandeiras que permitem a troca de idioma --> | ||
89 | + <td class=fundoRodape style="width: 10%;"> | ||
90 | + <div id=seletorIdiomas style="right: 15px;"></div> | ||
91 | + </td> | ||
92 | + </tr> | ||
93 | + </table> | ||
94 | + </td> | ||
95 | + </tr> | ||
96 | + </table> | ||
97 | + <table id="i3GEOlogoMarca" style='margin: 0px auto; box-shadow: 0 1px 13px gray; border-radius: 5px;'> | ||
98 | + <tr> | ||
99 | + <td><div id=versaoi3geo></div> | ||
100 | + <h2 style="font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;">i3Geo - Software livre para criação de mapas interativos e geoprocessamento</h2> | ||
101 | + <h3 style="font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;">Baseado no Mapserver, é licenciado sob GPL e integra o Portal do Software Público Brasileiro</h3></td> | ||
102 | + </tr> | ||
103 | + <tr> | ||
104 | + <td style="padding: 10px;"><img style="width: 560px; height: 81px" alt="" src='../../imagens/logo_inicio.png'></td> | ||
105 | + </tr> | ||
106 | + <tr> | ||
107 | + <td> | ||
108 | + <!-- | ||
113 | <script id="ohloh" type="text/javascript" src="http://www.ohloh.net/p/150688/widgets/project_users.js?style=red"></script> | 109 | <script id="ohloh" type="text/javascript" src="http://www.ohloh.net/p/150688/widgets/project_users.js?style=red"></script> |
114 | --> | 110 | --> |
115 | - </td> | ||
116 | - </tr> | ||
117 | -</table> | ||
118 | - | ||
119 | -<div id="i3GEOguiaMovel" style="position:absolute;display:block;border:0px solid white;text-align:left;z-index:1000;background-color:none"> | ||
120 | - <img id='i3GEOguiaMovelPuxador' onclick='i3GEO.guias.guiaMovel.abreFecha()' style='z-index:2;border:solid 0px white;left:0px;position:absolute;top:0px' width='0px' src='../../imagens/openbars.png' > | ||
121 | - <div id="i3GEOguiaMovelMolde" style="position:absolute;display:none;border:0px solid white;text-align:left;z-index:1000;background-color:gray"> | ||
122 | - <div id='i3GEOguiaMovelIcones' style='overflow:none;left:0px;display:none;position:absolute;top:0px;text-align:center;height:0px;width:0px;border:solid 0px white;background-color:white' ></div> | ||
123 | - <div id='i3GEOguiaMovelConteudo' style='overflow:auto;display:none;position:absolute;border-color:gray;border-width:0px 0 0px 0px;left:0px;height:0px;background-color:white'> | 111 | + </td> |
112 | + </tr> | ||
113 | + </table> | ||
114 | + | ||
115 | +<div id="i3GEOguiaMovel" style="visibility:hidden;position:absolute;display:block;border:0px solid white;text-align:left;z-index:2000;background-color:none"> | ||
116 | + <div style="cursor:pointer;position:absolute;top:50%;margin-top: -65px;width:30px;z-index:5000; left:18px;"> | ||
117 | + <img src='../../imagens/openbars1.png' style="width: 48px; position: absolute; left: -16px; height: 418px; top: -160px;"> | ||
118 | + <div id="iconeGuia_temas" ></div> | ||
119 | + <div id="iconeGuia_adiciona" style="margin-top:3px;" ></div> | ||
120 | + <div id="iconeGuia_legenda" style="margin-top:3px;"></div> | ||
121 | + </div> | ||
122 | + | ||
123 | + <!-- | ||
124 | + <img id="i3GEOguiaMovelPuxador" onclick='i3GEO.guias.guiaMovel.abreFecha()' style='z-index:2;border:solid 0px white;left:0px;position:absolute;top:0px' width='0px' src='../../imagens/openbars.png' > | ||
125 | + --> | ||
126 | + <div id="i3GEOguiaMovelMolde" style="top:0px;box-shadow:0 2px 10px 0 #888888;border-radius:5px 0px 0px 5px;position:absolute;display:none;border:0px solid white;text-align:left;z-index:1000;background-color:gray"> | ||
127 | + <!-- | ||
128 | + <div id="i3GEOguiaMovelIcones" style='overflow:none;left:0px;display:none;position:absolute;top:0px;text-align:center;height:0px;width:0px;border:solid 0px white;background-color:white' ></div> | ||
129 | + --> | ||
130 | + <div id="i3GEOguiaMovelConteudo" style='top:10px;overflow:auto;display:none;position:absolute;border-color:gray;border-width:0px 0 0px 0px;left:0px;height:0px;background-color:white'> | ||
124 | <div id='guia1obj' style='display:none;' > | 131 | <div id='guia1obj' style='display:none;' > |
125 | <!-- Esta div acrescenta a opção de busca rápida, caso vc queira colocá-la em um lugar específico --> | 132 | <!-- Esta div acrescenta a opção de busca rápida, caso vc queira colocá-la em um lugar específico --> |
126 | - <div style='left:5px;top:10px;' id=buscaRapida ></div> | 133 | + <div style='left:5px;top:10px;width:150px;' id=buscaRapida ></div> |
127 | <!-- Esta div acrescenta a lista de propriedades do mapa --> | 134 | <!-- Esta div acrescenta a lista de propriedades do mapa --> |
128 | <div id=listaPropriedades style='top:15px;' ></div> | 135 | <div id=listaPropriedades style='top:15px;' ></div> |
129 | <!-- Esta div acrescenta a lista de de camadas do tipo 'baselayers' específicas da interface Openlayers. Veja também a opção i3GEO.Interface.openlayers.GADGETS.LayerSwitcher --> | 136 | <!-- Esta div acrescenta a lista de de camadas do tipo 'baselayers' específicas da interface Openlayers. Veja também a opção i3GEO.Interface.openlayers.GADGETS.LayerSwitcher --> |
@@ -132,14 +139,14 @@ include_once(dirname(__FILE__)."/../../ms_configura.php"); | @@ -132,14 +139,14 @@ include_once(dirname(__FILE__)."/../../ms_configura.php"); | ||
132 | <div id=listaTemas style='top:15px;'></div> | 139 | <div id=listaTemas style='top:15px;'></div> |
133 | </div> | 140 | </div> |
134 | <div id='guia2obj' style='display:none;'>Aguarde...<img alt="" src="../../imagens/branco.gif" width=248 /></div> | 141 | <div id='guia2obj' style='display:none;'>Aguarde...<img alt="" src="../../imagens/branco.gif" width=248 /></div> |
135 | - <div id='guia4obj' style='display:none;text-align:left'><div id='legenda' style='text-align:left'></div></div> | 142 | + <div id='guia4obj' style='display:none;text-align:left'><div id='legenda' style='text-align:left'></div> |
143 | + <!-- | ||
136 | <div id='guia5obj' style='display:none;text-align:left'><div id='banners' style='overflow:auto;text-align:left'>Aguarde...</div></div> | 144 | <div id='guia5obj' style='display:none;text-align:left'><div id='banners' style='overflow:auto;text-align:left'>Aguarde...</div></div> |
145 | + --> | ||
137 | </div> | 146 | </div> |
138 | </div> | 147 | </div> |
139 | </div> | 148 | </div> |
140 | -<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing "></script> | ||
141 | -<script type="text/javascript" src="../../classesjs/i3geo.js"></script> | ||
142 | -<script src="editorlimites_dependencias.php"></script> | 149 | +</div> |
143 | <script type="text/javascript"> | 150 | <script type="text/javascript"> |
144 | i3GEO.configura.locaplic = i3GEO.util.protocolo()+"://"+window.location.host+"/i3geo"; | 151 | i3GEO.configura.locaplic = i3GEO.util.protocolo()+"://"+window.location.host+"/i3geo"; |
145 | i3GEO.configura.mashuppar = "mapext=-76.5125927 -39.3925675209 -29.5851853 9.49014852081"; | 152 | i3GEO.configura.mashuppar = "mapext=-76.5125927 -39.3925675209 -29.5851853 9.49014852081"; |
@@ -147,28 +154,46 @@ i3GEO.Interface.ATUAL = "googlemaps"; | @@ -147,28 +154,46 @@ i3GEO.Interface.ATUAL = "googlemaps"; | ||
147 | i3GEO.Interface.IDCORPO = "contemImg"; | 154 | i3GEO.Interface.IDCORPO = "contemImg"; |
148 | i3GEO.configura.diminuixN = 20; | 155 | i3GEO.configura.diminuixN = 20; |
149 | 156 | ||
157 | +i3GEO.configura.autotamanho = false; | ||
158 | +i3GEO.Interface.openlayers.TILES = true; | ||
159 | +i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'if($i("omenudataInterface1")){i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");}'; | ||
150 | i3GEO.cria(); | 160 | i3GEO.cria(); |
151 | i3GEO.configura.mapaRefDisplay = "none"; | 161 | i3GEO.configura.mapaRefDisplay = "none"; |
152 | i3GEO.barraDeBotoes.TIPO = "olhodepeixe"; | 162 | i3GEO.barraDeBotoes.TIPO = "olhodepeixe"; |
153 | -i3GEO.barraDeBotoes.OFFSET = -10; | ||
154 | -i3GEO.barraDeBotoes.INCLUIBOTAO.barraedicao = false; | 163 | +//ajusta o deslocamento da barra de botoes |
164 | +i3GEO.barraDeBotoes.OFFSET = 11; | ||
165 | +//ajusta a posicao da barra de botoes no IE | ||
166 | +if(navm){ | ||
167 | + i3GEO.barraDeBotoes.OFFSET = 5; | ||
168 | +} | ||
169 | +if(chro){ | ||
170 | + i3GEO.barraDeBotoes.OFFSET = 15; | ||
171 | +} | ||
172 | + | ||
155 | i3GEO.configura.oMenuData["submenus"]["janelas"] = []; | 173 | i3GEO.configura.oMenuData["submenus"]["janelas"] = []; |
156 | -i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.permiteLogin = true; | 174 | +i3GEO.ajuda.ATIVAJANELA = false; |
157 | i3GEO.idioma.IDSELETOR = "seletorIdiomas"; | 175 | i3GEO.idioma.IDSELETOR = "seletorIdiomas"; |
158 | -i3GEO.Interface.ATIVAMENUCONTEXTO = true; | ||
159 | -i3GEO.arvoreDeTemas.TIPOBOTAO = "radio"; | ||
160 | - | ||
161 | -i3GEO.arvoreDeTemas.OPCOESADICIONAIS.comentario = false; | ||
162 | -i3GEO.mapa.AUTORESIZE = true; | 176 | +i3GEO.Interface.ATIVAMENUCONTEXTO = false; |
177 | +//i3GEO.arvoreDeTemas.TIPOBOTAO = "radio"; | ||
178 | +i3GEO.arvoreDeTemas.OPCOESADICIONAIS.comentarios = true; | ||
179 | +i3GEO.arvoreDeCamadas.VERIFICAABRANGENCIATEMAS = true; | ||
163 | i3GEO.arvoreDeCamadas.MOSTRALISTAKML = false; | 180 | i3GEO.arvoreDeCamadas.MOSTRALISTAKML = false; |
181 | +i3GEO.mapa.AUTORESIZE = true; | ||
164 | i3GEO.guias.TIPO = "movel"; | 182 | i3GEO.guias.TIPO = "movel"; |
165 | -i3GEO.guias.guiaMovel.config.topGuiaMovel = 0; | ||
166 | -i3GEO.ajuda.ATIVAJANELA = false; | 183 | +i3GEO.guias.guiaMovel.config.topGuiaMovel = 36; |
184 | +i3GEO.janela.ativaAlerta(); | ||
185 | + | ||
186 | +//i3GEO.Interface.googlemaps.TIPOMAPA = "satellite"; | ||
187 | + | ||
188 | +i3GEO.arvoreDeTemas.OPCOESADICIONAIS.navegacaoDir = true; | ||
189 | +i3GEO.janela.TRANSICAOSUAVE = true; | ||
190 | + | ||
167 | i3GEO.finaliza = function(){ | 191 | i3GEO.finaliza = function(){ |
168 | if($i("i3GEOlogoMarca")){ | 192 | if($i("i3GEOlogoMarca")){ |
169 | $i("i3GEOlogoMarca").style.display = "none"; | 193 | $i("i3GEOlogoMarca").style.display = "none"; |
170 | } | 194 | } |
171 | -} | 195 | + i3GEO.mapa.insereDobraPagina("openlayers","../../imagens/dobraopenlayers.png"); |
196 | +}; | ||
172 | i3GEO.finalizaAPI = function(){ | 197 | i3GEO.finalizaAPI = function(){ |
173 | var cabecalho, minimiza; | 198 | var cabecalho, minimiza; |
174 | cabecalho = function() { | 199 | cabecalho = function() { |
@@ -183,10 +208,10 @@ i3GEO.finalizaAPI = function(){ | @@ -183,10 +208,10 @@ i3GEO.finalizaAPI = function(){ | ||
183 | i3GEO.editorGM.inicia("janelaEditorLimites_corpo"); | 208 | i3GEO.editorGM.inicia("janelaEditorLimites_corpo"); |
184 | i3GEOF.locregiao.iniciaJanelaFlutuante(); | 209 | i3GEOF.locregiao.iniciaJanelaFlutuante(); |
185 | YAHOO.i3GEO.janela.manager.find("i3GEOF.locregiao").moveTo(100,40); | 210 | YAHOO.i3GEO.janela.manager.find("i3GEOF.locregiao").moveTo(100,40); |
186 | -} | ||
187 | -//a pagina nao e recarregada quando o usuario faz login | 211 | +}; |
188 | i3GEO.login.recarrega = false; | 212 | i3GEO.login.recarrega = false; |
189 | i3GEO.eventos.cliquePerm.ativo = false; | 213 | i3GEO.eventos.cliquePerm.ativo = false; |
214 | + | ||
190 | i3GEO.inicia(); | 215 | i3GEO.inicia(); |
191 | </script> | 216 | </script> |
192 | </body> | 217 | </body> |
ferramentas/parametrossql/exec.php
@@ -24,15 +24,21 @@ Aplica a substituicao de chaves pelos valores enviados | @@ -24,15 +24,21 @@ Aplica a substituicao de chaves pelos valores enviados | ||
24 | $layer->set("data",$data); | 24 | $layer->set("data",$data); |
25 | $layer->set("status",MS_DEFAULT); | 25 | $layer->set("status",MS_DEFAULT); |
26 | $layer->setmetadata("PLUGINI3GEO",""); | 26 | $layer->setmetadata("PLUGINI3GEO",""); |
27 | - if (connection_aborted()){exit();} | 27 | + $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores)); |
28 | + $layer->set("name","plugin".nomeRandomico()); | ||
29 | + if (connection_aborted()){ | ||
30 | + exit(); | ||
31 | + } | ||
28 | $salvo = $map->save($map_file); | 32 | $salvo = $map->save($map_file); |
29 | $retorno = "ok"; | 33 | $retorno = "ok"; |
30 | break; | 34 | break; |
31 | case "REMOVER": | 35 | case "REMOVER": |
32 | $map = ms_newMapObj($map_file); | 36 | $map = ms_newMapObj($map_file); |
33 | - $layer = $map->getlayerbyname($tema); | ||
34 | - $layer->set("status",MS_DELETE); | ||
35 | - $salvo = $map->save($map_file); | 37 | + $layer = $map->getlayerbyname($tema); |
38 | + if($layer != ""){ | ||
39 | + $layer->set("status",MS_DELETE); | ||
40 | + $salvo = $map->save($map_file); | ||
41 | + } | ||
36 | $retorno = "ok"; | 42 | $retorno = "ok"; |
37 | break; | 43 | break; |
38 | } | 44 | } |
ferramentas/parametrossql/index.js
@@ -186,6 +186,7 @@ i3GEOF.parametrossql = { | @@ -186,6 +186,7 @@ i3GEOF.parametrossql = { | ||
186 | valores.push(campos[i].value); | 186 | valores.push(campos[i].value); |
187 | } | 187 | } |
188 | fim = function(){ | 188 | fim = function(){ |
189 | + i3GEO.janela.destroi("i3GEOF.parametrossql"); | ||
189 | i3GEO.atualiza(); | 190 | i3GEO.atualiza(); |
190 | }; | 191 | }; |
191 | p = i3GEO.configura.locaplic+"/ferramentas/parametrossql/exec.php?g_sid="+i3GEO.configura.sid | 192 | p = i3GEO.configura.locaplic+"/ferramentas/parametrossql/exec.php?g_sid="+i3GEO.configura.sid |
interface/googlemapsdebug.phtml
@@ -9,6 +9,7 @@ include_once("../ms_configura.php"); | @@ -9,6 +9,7 @@ include_once("../ms_configura.php"); | ||
9 | <title>i3GEO - Google Maps</title> | 9 | <title>i3GEO - Google Maps</title> |
10 | <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing,geometry"></script> | 10 | <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing,geometry"></script> |
11 | <script type="text/javascript" src="../classesjs/i3geonaocompacto.js"></script> | 11 | <script type="text/javascript" src="../classesjs/i3geonaocompacto.js"></script> |
12 | + <script type="text/javascript" src="../classesjs/classe_editorgm.js"></script> | ||
12 | <link rel="stylesheet" type="text/css" href="../css/black.css"> | 13 | <link rel="stylesheet" type="text/css" href="../css/black.css"> |
13 | </head> | 14 | </head> |
14 | <body id="i3geo" style='margin-left: 7px; background: white;'> | 15 | <body id="i3geo" style='margin-left: 7px; background: white;'> |