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
classesjs/classe_editorgm.js
... | ... | @@ -384,7 +384,7 @@ i3GEO.editorGM = { |
384 | 384 | */ |
385 | 385 | captura: function(){ |
386 | 386 | var temp,tema="",regiao="",p,par, |
387 | - aguarde = $i("janelaEditorLimites_imagemCabecalho"); | |
387 | + aguarde = $i("i3GEOjanelaEditor_imagemCabecalho"); | |
388 | 388 | if(!$i("i3geoCartoRegioesEditaveis")){ |
389 | 389 | i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.editorGM.capturaPoligonoTema.captura()"); |
390 | 390 | } |
... | ... | @@ -396,7 +396,7 @@ i3GEO.editorGM = { |
396 | 396 | valorid = "", |
397 | 397 | colunanome = i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"], |
398 | 398 | valornome = "", |
399 | - aguarde = $i("janelaEditorLimites_imagemCabecalho"); | |
399 | + aguarde = $i("i3GEOjanelaEditor_imagemCabecalho"); | |
400 | 400 | if(aguarde){ |
401 | 401 | aguarde.style.visibility = "hidden"; |
402 | 402 | } |
... | ... | @@ -1159,311 +1159,728 @@ google.maps.Polygon.prototype.type = 'polygon'; |
1159 | 1159 | google.maps.Rectangle.prototype.type = 'rectangle'; |
1160 | 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 | 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 | 3 | \ No newline at end of file | ... | ... |
ferramentas/metaestat/editorlimites.php
1 | 1 | <?php |
2 | -//@TODO atualizar a interface para black | |
3 | 2 | /* |
4 | 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 | 39 | <meta http-equiv="Category" content="i3Geo Mapa interativo geoprocessamento sig mobile"> |
41 | 40 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
42 | 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 | 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 | 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 | 131 | <div id='guia1obj' style='display:none;' > |
125 | 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 | 134 | <!-- Esta div acrescenta a lista de propriedades do mapa --> |
128 | 135 | <div id=listaPropriedades style='top:15px;' ></div> |
129 | 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 | 139 | <div id=listaTemas style='top:15px;'></div> |
133 | 140 | </div> |
134 | 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 | 144 | <div id='guia5obj' style='display:none;text-align:left'><div id='banners' style='overflow:auto;text-align:left'>Aguarde...</div></div> |
145 | + --> | |
137 | 146 | </div> |
138 | 147 | </div> |
139 | 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 | 150 | <script type="text/javascript"> |
144 | 151 | i3GEO.configura.locaplic = i3GEO.util.protocolo()+"://"+window.location.host+"/i3geo"; |
145 | 152 | i3GEO.configura.mashuppar = "mapext=-76.5125927 -39.3925675209 -29.5851853 9.49014852081"; |
... | ... | @@ -147,28 +154,46 @@ i3GEO.Interface.ATUAL = "googlemaps"; |
147 | 154 | i3GEO.Interface.IDCORPO = "contemImg"; |
148 | 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 | 160 | i3GEO.cria(); |
151 | 161 | i3GEO.configura.mapaRefDisplay = "none"; |
152 | 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 | 173 | i3GEO.configura.oMenuData["submenus"]["janelas"] = []; |
156 | -i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.permiteLogin = true; | |
174 | +i3GEO.ajuda.ATIVAJANELA = false; | |
157 | 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 | 180 | i3GEO.arvoreDeCamadas.MOSTRALISTAKML = false; |
181 | +i3GEO.mapa.AUTORESIZE = true; | |
164 | 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 | 191 | i3GEO.finaliza = function(){ |
168 | 192 | if($i("i3GEOlogoMarca")){ |
169 | 193 | $i("i3GEOlogoMarca").style.display = "none"; |
170 | 194 | } |
171 | -} | |
195 | + i3GEO.mapa.insereDobraPagina("openlayers","../../imagens/dobraopenlayers.png"); | |
196 | +}; | |
172 | 197 | i3GEO.finalizaAPI = function(){ |
173 | 198 | var cabecalho, minimiza; |
174 | 199 | cabecalho = function() { |
... | ... | @@ -183,10 +208,10 @@ i3GEO.finalizaAPI = function(){ |
183 | 208 | i3GEO.editorGM.inicia("janelaEditorLimites_corpo"); |
184 | 209 | i3GEOF.locregiao.iniciaJanelaFlutuante(); |
185 | 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 | 212 | i3GEO.login.recarrega = false; |
189 | 213 | i3GEO.eventos.cliquePerm.ativo = false; |
214 | + | |
190 | 215 | i3GEO.inicia(); |
191 | 216 | </script> |
192 | 217 | </body> | ... | ... |
ferramentas/parametrossql/exec.php
... | ... | @@ -24,15 +24,21 @@ Aplica a substituicao de chaves pelos valores enviados |
24 | 24 | $layer->set("data",$data); |
25 | 25 | $layer->set("status",MS_DEFAULT); |
26 | 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 | 32 | $salvo = $map->save($map_file); |
29 | 33 | $retorno = "ok"; |
30 | 34 | break; |
31 | 35 | case "REMOVER": |
32 | 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 | 42 | $retorno = "ok"; |
37 | 43 | break; |
38 | 44 | } | ... | ... |
ferramentas/parametrossql/index.js
... | ... | @@ -186,6 +186,7 @@ i3GEOF.parametrossql = { |
186 | 186 | valores.push(campos[i].value); |
187 | 187 | } |
188 | 188 | fim = function(){ |
189 | + i3GEO.janela.destroi("i3GEOF.parametrossql"); | |
189 | 190 | i3GEO.atualiza(); |
190 | 191 | }; |
191 | 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 | 9 | <title>i3GEO - Google Maps</title> |
10 | 10 | <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing,geometry"></script> |
11 | 11 | <script type="text/javascript" src="../classesjs/i3geonaocompacto.js"></script> |
12 | + <script type="text/javascript" src="../classesjs/classe_editorgm.js"></script> | |
12 | 13 | <link rel="stylesheet" type="text/css" href="../css/black.css"> |
13 | 14 | </head> |
14 | 15 | <body id="i3geo" style='margin-left: 7px; background: white;'> | ... | ... |