Commit 96c2acf3b9ae722fff8b1fef38f6d298d5213e95
1 parent
8860e2e7
Exists in
master
and in
7 other branches
Cálculo de área com OL3
Showing
3 changed files
with
181 additions
and
162 deletions
Show diff stats
ferramentas/selecao/index.js
| ... | ... | @@ -595,6 +595,9 @@ i3GEOF.selecao = |
| 595 | 595 | */ |
| 596 | 596 | removeFiguras : { |
| 597 | 597 | ol3 : function(){ |
| 598 | + if(!i3GEO.desenho.layergrafico){ | |
| 599 | + return; | |
| 600 | + } | |
| 598 | 601 | var features, n, f, i, remover = [], temp; |
| 599 | 602 | features = i3GEO.desenho.layergrafico.getSource().getFeatures(); |
| 600 | 603 | n = features.length; | ... | ... |
js/analise.js
| ... | ... | @@ -514,6 +514,15 @@ i3GEO.analise = |
| 514 | 514 | */ |
| 515 | 515 | openlayers : { |
| 516 | 516 | draw : "", |
| 517 | + estilo: new ol.style.Style({ | |
| 518 | + stroke: new ol.style.Stroke({ | |
| 519 | + color: '#ffcc33', | |
| 520 | + width: 5 | |
| 521 | + }), | |
| 522 | + fill: new ol.style.Fill({ | |
| 523 | + color: 'rgba(255, 153, 0, 0.8)' | |
| 524 | + }) | |
| 525 | + }), | |
| 517 | 526 | featureListener : null, |
| 518 | 527 | //numero de pontos da geometria atual |
| 519 | 528 | //utilizado para saber se houve um clique ou nao |
| ... | ... | @@ -543,22 +552,20 @@ i3GEO.analise = |
| 543 | 552 | m.draw.setActive(false); |
| 544 | 553 | m.draw.setActive(true); |
| 545 | 554 | }); |
| 546 | - i3GEO.analise.medeDistancia.openlayers.draw.on('drawstart', function(evt) { | |
| 555 | + m.draw.on('drawstart', function(evt) { | |
| 547 | 556 | i3GEO.analise.medeDistancia.pontos = { |
| 548 | 557 | xpt : [], |
| 549 | 558 | ypt : [], |
| 550 | 559 | dist : [] |
| 551 | 560 | }; |
| 552 | - // set sketch | |
| 553 | 561 | var m = i3GEO.analise.medeDistancia.openlayers, |
| 554 | 562 | sketch = evt.feature; |
| 555 | - | |
| 563 | + m.estilo = sketch.getStyle(); | |
| 556 | 564 | m.numpontos = 1; |
| 557 | - | |
| 558 | 565 | m.featureListener = sketch.getGeometry().on('change', function(evt) { |
| 559 | 566 | var ponto, |
| 560 | 567 | geom = evt.target, |
| 561 | - coords = geom.getCoordinates(); | |
| 568 | + coords = geom.getCoordinates(), | |
| 562 | 569 | n = coords.length, |
| 563 | 570 | m = i3GEO.analise.medeDistancia.openlayers; |
| 564 | 571 | ponto = new ol.geom.Point(coords[n-1]); |
| ... | ... | @@ -575,7 +582,7 @@ i3GEO.analise = |
| 575 | 582 | i3geoOL.addInteraction(m.draw); |
| 576 | 583 | }, |
| 577 | 584 | modify : function(point) { |
| 578 | - var n, x1, y1, x2, y2, trecho, parcial, direcao, | |
| 585 | + var temp, n, x1, y1, x2, y2, trecho, parcial, direcao, | |
| 579 | 586 | coord = point.getCoordinates(); |
| 580 | 587 | n = i3GEO.analise.medeDistancia.pontos.ypt.length; |
| 581 | 588 | if (n > 0) { |
| ... | ... | @@ -602,8 +609,8 @@ i3GEO.analise = |
| 602 | 609 | }, |
| 603 | 610 | point : function(point) { |
| 604 | 611 | var n, x1, y1, x2, y2, trecho, temp, circ, label, raio, |
| 605 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao]; | |
| 606 | - coord = point.getCoordinates(); | |
| 612 | + estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], | |
| 613 | + coord = point.getCoordinates(), | |
| 607 | 614 | total = 0; |
| 608 | 615 | i3GEO.analise.medeDistancia.pontos.xpt.push(coord[0]); |
| 609 | 616 | i3GEO.analise.medeDistancia.pontos.ypt.push(coord[1]); |
| ... | ... | @@ -1273,154 +1280,155 @@ i3GEO.analise = |
| 1273 | 1280 | * Funcoes especificas da interface openlayers |
| 1274 | 1281 | */ |
| 1275 | 1282 | openlayers : { |
| 1283 | + draw : "", | |
| 1284 | + estilo: new ol.style.Style({ | |
| 1285 | + stroke: new ol.style.Stroke({ | |
| 1286 | + color: '#ffcc33', | |
| 1287 | + width: 5 | |
| 1288 | + }), | |
| 1289 | + fill: new ol.style.Fill({ | |
| 1290 | + color: 'rgba(255, 153, 0, 0.8)' | |
| 1291 | + }) | |
| 1292 | + }), | |
| 1293 | + featureListener : null, | |
| 1294 | + //numero de pontos da geometria atual | |
| 1295 | + //utilizado para saber se houve um clique ou nao | |
| 1296 | + numpontos : 0, | |
| 1297 | + removeControle : function() { | |
| 1298 | + i3geoOL.removeInteraction(i3GEO.analise.medeArea.openlayers.draw); | |
| 1299 | + i3GEO.analise.medeArea.openlayers.draw = ""; | |
| 1300 | + }, | |
| 1276 | 1301 | /** |
| 1277 | 1302 | * Inicializa o processo Cria a variavel para guardar os pontos Executa a funcao de inicializacao do desenho, que cria o |
| 1278 | 1303 | * layer para receber os graficos |
| 1279 | 1304 | */ |
| 1280 | 1305 | inicia : function() { |
| 1281 | - var poligono, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], controle = | |
| 1282 | - i3geoOL.getControlsBy("id", "i3GeoMedeArea"); | |
| 1306 | + var m = i3GEO.analise.medeArea.openlayers; | |
| 1283 | 1307 | i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); |
| 1284 | - i3GEO.analise.medeArea.pontos = { | |
| 1285 | - xpt : [], | |
| 1286 | - ypt : [], | |
| 1287 | - dist : [] | |
| 1288 | - }; | |
| 1289 | - if (controle.length === 0) { | |
| 1290 | - poligono = | |
| 1291 | - new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Polygon, { | |
| 1292 | - autoActivate : true, | |
| 1293 | - id : "i3GeoMedeArea", | |
| 1294 | - type : OpenLayers.Control.TYPE_TOOL, | |
| 1295 | - callbacks : { | |
| 1296 | - done : function(feature) { | |
| 1297 | - var f = new OpenLayers.Feature.Vector(feature, { | |
| 1298 | - origem : "medeArea" | |
| 1299 | - }, { | |
| 1300 | - graphicName : "square", | |
| 1301 | - pointRadius : 10, | |
| 1302 | - graphicOpacity : 1, | |
| 1303 | - fillColor : "white", | |
| 1304 | - fillOpacity : 0.4, | |
| 1305 | - strokeColor : "black", | |
| 1306 | - strokeOpacity : 1, | |
| 1307 | - strokeWidth : 2 | |
| 1308 | - }); | |
| 1309 | - i3GEO.desenho.layergrafico.addFeatures([ | |
| 1310 | - f | |
| 1311 | - ]); | |
| 1312 | - if (i3GEO.Interface) { | |
| 1313 | - i3GEO.Interface.openlayers.sobeLayersGraficos(); | |
| 1314 | - } | |
| 1315 | - i3GEO.analise.medeArea.openlayers.mostraParcial(0, 0, 0, 0); | |
| 1316 | - i3GEO.analise.medeArea.ultimoWkt = i3GEO.analise.medeArea.pontos2wkt(); | |
| 1317 | - i3GEO.analise.medeArea.openlayers.inicia(); | |
| 1318 | - }, | |
| 1319 | - modify : function(point, poligono) { | |
| 1320 | - var n, x1, y1, x2, y2, trecho = 0, per = 0, direcao = 0, area = 0, proj = | |
| 1321 | - new OpenLayers.Projection("EPSG:4326"); | |
| 1322 | - n = i3GEO.analise.medeArea.pontos.ypt.length; | |
| 1323 | - if (n > 1) { | |
| 1324 | - x1 = i3GEO.analise.medeArea.pontos.xpt[n - 1]; | |
| 1325 | - y1 = i3GEO.analise.medeArea.pontos.ypt[n - 1]; | |
| 1326 | - x2 = point.x; | |
| 1327 | - y2 = point.y; | |
| 1328 | - // projeta | |
| 1329 | - if (i3GEO.Interface.openlayers.googleLike) { | |
| 1330 | - temp = i3GEO.util.extOSM2Geo(x1 + " " + y1 + " " + x2 + " " + y2); | |
| 1331 | - temp = temp.split(" "); | |
| 1332 | - x1 = temp[0]; | |
| 1333 | - y1 = temp[1]; | |
| 1334 | - x2 = temp[2]; | |
| 1335 | - y2 = temp[3]; | |
| 1336 | - proj = new OpenLayers.Projection("EPSG:900913"); | |
| 1337 | - } | |
| 1338 | - trecho = i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1339 | - direcao = i3GEO.calculo.direcao(x1, y1, x2, y2); | |
| 1340 | - direcao = i3GEO.calculo.dd2dms(direcao, direcao); | |
| 1341 | - direcao = direcao[0]; | |
| 1342 | - per = i3GEO.analise.medeArea.openlayers.somaDist(); | |
| 1343 | - // soma ate o primeiro ponto | |
| 1344 | - x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | |
| 1345 | - y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | |
| 1346 | - // projeta | |
| 1347 | - if (i3GEO.Interface.openlayers.googleLike) { | |
| 1348 | - temp = i3GEO.util.extOSM2Geo(x1 + " " + y1); | |
| 1349 | - temp = temp.split(" "); | |
| 1350 | - x1 = temp[0]; | |
| 1351 | - y1 = temp[1]; | |
| 1352 | - } | |
| 1353 | - per += i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1354 | - area = poligono.geometry.getGeodesicArea(proj); | |
| 1355 | - i3GEO.analise.medeArea.openlayers.mostraParcial(trecho, per, area, direcao); | |
| 1356 | - } | |
| 1357 | - }, | |
| 1358 | - point : function(point, poligono) { | |
| 1359 | - var n, x1, y1, x2, y2, temp, label, | |
| 1360 | - // registra os pontos e calcula a distancia | |
| 1361 | - per = 0, trecho = 0, area = 0, proj = new OpenLayers.Projection("EPSG:4326"); | |
| 1362 | - i3GEO.analise.medeArea.pontos.xpt.push(point.x); | |
| 1363 | - i3GEO.analise.medeArea.pontos.ypt.push(point.y); | |
| 1364 | - n = i3GEO.analise.medeArea.pontos.ypt.length; | |
| 1365 | - if (n > 1) { | |
| 1366 | - x1 = i3GEO.analise.medeArea.pontos.xpt[n - 2]; | |
| 1367 | - y1 = i3GEO.analise.medeArea.pontos.ypt[n - 2]; | |
| 1368 | - x2 = point.x; | |
| 1369 | - y2 = point.y; | |
| 1370 | - // projeta | |
| 1371 | - if (i3GEO.Interface.openlayers.googleLike) { | |
| 1372 | - temp = i3GEO.util.extOSM2Geo(x1 + " " + y1 + " " + x2 + " " + y2); | |
| 1373 | - temp = temp.split(" "); | |
| 1374 | - x1 = temp[0]; | |
| 1375 | - y1 = temp[1]; | |
| 1376 | - x2 = temp[2]; | |
| 1377 | - y2 = temp[3]; | |
| 1378 | - proj = new OpenLayers.Projection("EPSG:900913"); | |
| 1379 | - } | |
| 1380 | - trecho = i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1381 | - i3GEO.analise.medeArea.pontos.dist.push(trecho); | |
| 1382 | - per = i3GEO.analise.medeArea.openlayers.somaDist(); | |
| 1383 | - // soma ate o primeiro ponto | |
| 1384 | - x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | |
| 1385 | - y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | |
| 1386 | - // projeta | |
| 1387 | - if (i3GEO.Interface.openlayers.googleLike) { | |
| 1388 | - temp = i3GEO.util.extOSM2Geo(x1 + " " + y1); | |
| 1389 | - temp = temp.split(" "); | |
| 1390 | - x1 = temp[0]; | |
| 1391 | - y1 = temp[1]; | |
| 1392 | - } | |
| 1393 | - per += i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1394 | - // desenha ponto | |
| 1395 | - // if($i("parartextos") && | |
| 1396 | - // $i("parartextos").checked === true ){ | |
| 1397 | - label = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(point.x, point.y), { | |
| 1398 | - origem : "medeAreaExcluir" | |
| 1399 | - }, { | |
| 1400 | - graphicName : "square", | |
| 1401 | - pointRadius : 3, | |
| 1402 | - strokeColor : "black", | |
| 1403 | - graphicOpacity : 1, | |
| 1404 | - strokeWidth : 1, | |
| 1405 | - fillColor : "white", | |
| 1406 | - label : trecho.toFixed(3), | |
| 1407 | - labelAlign : "rb", | |
| 1408 | - fontColor : estilo.textcolor, | |
| 1409 | - fontSize : 12, | |
| 1410 | - fontWeight : "bold" | |
| 1411 | - }); | |
| 1412 | - i3GEO.desenho.layergrafico.addFeatures([ | |
| 1413 | - label | |
| 1414 | - ]); | |
| 1415 | - if (n > 2) { | |
| 1416 | - area = poligono.getGeodesicArea(proj); | |
| 1417 | - } | |
| 1418 | - } | |
| 1419 | - i3GEO.analise.medeArea.openlayers.mostraTotal(per, area); | |
| 1420 | - } | |
| 1421 | - } | |
| 1422 | - }); | |
| 1423 | - i3geoOL.addControl(poligono); | |
| 1308 | + m.removeControle(); | |
| 1309 | + m.draw = new ol.interaction.Draw({ | |
| 1310 | + type : "Polygon" | |
| 1311 | + }); | |
| 1312 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1313 | + m.draw.on("drawend", function(evt) { | |
| 1314 | + evt.feature.setProperties({ | |
| 1315 | + origem : "i3GeoMedeArea" | |
| 1316 | + }); | |
| 1317 | + var m = i3GEO.analise.medeArea.openlayers; | |
| 1318 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | |
| 1319 | + m.draw.setActive(false); | |
| 1320 | + m.draw.setActive(true); | |
| 1321 | + }); | |
| 1322 | + m.draw.on('drawstart', function(evt) { | |
| 1323 | + i3GEO.analise.medeArea.pontos = { | |
| 1324 | + xpt : [], | |
| 1325 | + ypt : [], | |
| 1326 | + dist : [] | |
| 1327 | + }; | |
| 1328 | + var m = i3GEO.analise.medeArea.openlayers, | |
| 1329 | + sketch = evt.feature; | |
| 1330 | + m.estilo = sketch.getStyle(); | |
| 1331 | + m.numpontos = 1; | |
| 1332 | + m.featureListener = sketch.getGeometry().on('change', function(evt) { | |
| 1333 | + var ponto, | |
| 1334 | + geom = evt.target, | |
| 1335 | + coords = geom.getLinearRing(0).getCoordinates(), | |
| 1336 | + n = coords.length, | |
| 1337 | + m = i3GEO.analise.medeArea.openlayers; | |
| 1338 | + ponto = new ol.geom.Point(coords[n-1]); | |
| 1339 | + if(m.numpontos === n-1){ | |
| 1340 | + //clicou | |
| 1341 | + m.numpontos = n; | |
| 1342 | + m.point(ponto,geom); | |
| 1343 | + } | |
| 1344 | + else{ | |
| 1345 | + m.modify(ponto,geom); | |
| 1346 | + } | |
| 1347 | + }); | |
| 1348 | + }); | |
| 1349 | + i3geoOL.addInteraction(m.draw); | |
| 1350 | + }, | |
| 1351 | + modify : function(point,geom) { | |
| 1352 | + var temp,sourceProj,coordinates,wgs84Sphere, per, area, n, x1, y1, x2, y2, trecho, direcao, | |
| 1353 | + coord = point.getCoordinates(); | |
| 1354 | + n = i3GEO.analise.medeArea.pontos.ypt.length; | |
| 1355 | + if (n > 1) { | |
| 1356 | + x1 = i3GEO.analise.medeArea.pontos.xpt[n - 1]; | |
| 1357 | + y1 = i3GEO.analise.medeArea.pontos.ypt[n - 1]; | |
| 1358 | + x2 = coord[0]; | |
| 1359 | + y2 = coord[1]; | |
| 1360 | + // projeta | |
| 1361 | + if (i3GEO.Interface.openlayers.googleLike) { | |
| 1362 | + temp = i3GEO.util.extOSM2Geo(x1 + " " + y1 + " " + x2 + " " + y2); | |
| 1363 | + temp = temp.split(" "); | |
| 1364 | + x1 = temp[0]; | |
| 1365 | + y1 = temp[1]; | |
| 1366 | + x2 = temp[2]; | |
| 1367 | + y2 = temp[3]; | |
| 1368 | + } | |
| 1369 | + trecho = i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1370 | + //parcial = i3GEO.analise.medeArea.openlayers.somaDist(); | |
| 1371 | + direcao = i3GEO.calculo.direcao(x1, y1, x2, y2); | |
| 1372 | + direcao = i3GEO.calculo.dd2dms(direcao, direcao); | |
| 1373 | + direcao = direcao[0]; | |
| 1374 | + per = i3GEO.analise.medeArea.openlayers.somaDist(); | |
| 1375 | + // soma ate o primeiro ponto | |
| 1376 | + x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | |
| 1377 | + y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | |
| 1378 | + // projeta | |
| 1379 | + if (i3GEO.Interface.openlayers.googleLike) { | |
| 1380 | + temp = i3GEO.util.extOSM2Geo(x1 + " " + y1); | |
| 1381 | + temp = temp.split(" "); | |
| 1382 | + x1 = temp[0]; | |
| 1383 | + y1 = temp[1]; | |
| 1384 | + } | |
| 1385 | + per += i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1386 | + //getGeodesicArea | |
| 1387 | + sourceProj = i3geoOL.getView().getProjection(); | |
| 1388 | + geom = (geom.clone().transform(sourceProj, 'EPSG:4326')); | |
| 1389 | + coordinates = geom.getLinearRing(0).getCoordinates(); | |
| 1390 | + wgs84Sphere = new ol.Sphere(6378137); | |
| 1391 | + area = Math.abs(wgs84Sphere.geodesicArea(coordinates)); | |
| 1392 | + i3GEO.analise.medeArea.openlayers.mostraParcial(trecho, per, area, direcao); | |
| 1393 | + } | |
| 1394 | + | |
| 1395 | + }, | |
| 1396 | + point : function(point,geom) { | |
| 1397 | + var wgs84Sphere,area,coordinates,sourceProj,n, x1, y1, x2, y2, trecho, temp, | |
| 1398 | + coord = point.getCoordinates(), | |
| 1399 | + total = 0; | |
| 1400 | + i3GEO.analise.medeArea.pontos.xpt.push(coord[0]); | |
| 1401 | + i3GEO.analise.medeArea.pontos.ypt.push(coord[1]); | |
| 1402 | + i3GEO.analise.pontos.xpt.push(coord[0]); | |
| 1403 | + i3GEO.analise.pontos.ypt.push(coord[1]); | |
| 1404 | + n = i3GEO.analise.medeArea.pontos.ypt.length; | |
| 1405 | + if (n > 1) { | |
| 1406 | + x1 = i3GEO.analise.medeArea.pontos.xpt[n - 2]; | |
| 1407 | + y1 = i3GEO.analise.medeArea.pontos.ypt[n - 2]; | |
| 1408 | + x2 = coord[0]; | |
| 1409 | + y2 = coord[1]; | |
| 1410 | + raio = new ol.geom.LineString([[x1, y1],[x2, y2]]).getLength(); | |
| 1411 | + // projeta | |
| 1412 | + if (i3GEO.Interface.openlayers.googleLike) { | |
| 1413 | + temp = i3GEO.util.extOSM2Geo(x1 + " " + y1 + " " + x2 + " " + y2); | |
| 1414 | + temp = temp.split(" "); | |
| 1415 | + x1 = temp[0]; | |
| 1416 | + y1 = temp[1]; | |
| 1417 | + x2 = temp[2]; | |
| 1418 | + y2 = temp[3]; | |
| 1419 | + } | |
| 1420 | + trecho = i3GEO.calculo.distancia(x1, y1, x2, y2); | |
| 1421 | + i3GEO.analise.medeArea.pontos.dist.push(trecho); | |
| 1422 | + total = i3GEO.analise.medeArea.openlayers.somaDist(); | |
| 1423 | + | |
| 1424 | + sourceProj = i3geoOL.getView().getProjection(); | |
| 1425 | + geom = (geom.clone().transform(sourceProj, 'EPSG:4326')); | |
| 1426 | + coordinates = geom.getLinearRing(0).getCoordinates(); | |
| 1427 | + wgs84Sphere = new ol.Sphere(6378137); | |
| 1428 | + area = Math.abs(wgs84Sphere.geodesicArea(coordinates)); | |
| 1429 | + | |
| 1430 | + i3GEO.analise.medeArea.openlayers.mostraTotal(total, area); | |
| 1431 | + i3GEO.analise.medeArea.ultimoWkt = i3GEO.analise.medeArea.pontos2wkt(); | |
| 1424 | 1432 | } |
| 1425 | 1433 | }, |
| 1426 | 1434 | /** |
| ... | ... | @@ -1439,22 +1447,30 @@ i3GEO.analise = |
| 1439 | 1447 | * atributo "origem" Os raios e pontos sao sempre removidos |
| 1440 | 1448 | */ |
| 1441 | 1449 | fechaJanela : function() { |
| 1442 | - var temp, controle = i3geoOL.getControlsBy("id", "i3GeoMedeArea"), f = | |
| 1443 | - i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem", "medeArea"); | |
| 1444 | - if (controle.length > 0) { | |
| 1445 | - controle[0].deactivate(); | |
| 1446 | - i3geoOL.removeControl(controle[0]); | |
| 1450 | + var m = i3GEO.analise.medeArea.openlayers; | |
| 1451 | + ol.Observable.unByKey(m.featureListener); | |
| 1452 | + m.featureListener = null; | |
| 1453 | + m.removeControle(); | |
| 1454 | + m.numpontos = 0; | |
| 1455 | + i3GEO.eventos.cliquePerm.ativa(); | |
| 1456 | + | |
| 1457 | + var features, n, f, i, remover = [], temp; | |
| 1458 | + features = i3GEO.desenho.layergrafico.getSource().getFeatures(); | |
| 1459 | + n = features.length; | |
| 1460 | + for (i = 0; i < n; i++) { | |
| 1461 | + f = features[i]; | |
| 1462 | + if (f.getProperties().origem === "i3GeoMedeArea" || f.getProperties().origem === "medeAreaExcluir") { | |
| 1463 | + remover.push(f); | |
| 1464 | + } | |
| 1447 | 1465 | } |
| 1448 | - if (f && f.length > 0) { | |
| 1466 | + if (remover.length > 0) { | |
| 1449 | 1467 | temp = window.confirm($trad("x94")); |
| 1450 | 1468 | if (temp) { |
| 1451 | - i3GEO.desenho.layergrafico.destroyFeatures(f); | |
| 1469 | + for (r in remover) { | |
| 1470 | + i3GEO.desenho.layergrafico.getSource().removeFeature(remover[r]); | |
| 1471 | + } | |
| 1452 | 1472 | } |
| 1453 | 1473 | } |
| 1454 | - f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem", "medeAreaExcluir"); | |
| 1455 | - if (f && f.length > 0) { | |
| 1456 | - i3GEO.desenho.layergrafico.destroyFeatures(f); | |
| 1457 | - } | |
| 1458 | 1474 | }, |
| 1459 | 1475 | /** |
| 1460 | 1476 | * Mostra a totalizacao das linhas ja digitalizadas | ... | ... |