Commit 96f17bdbb9e6c355af2a9373c36b12c4cb641faf

Authored by Edmar Moretti
1 parent 93cc47be

Correções no posicionamento de geometrias na interface OSM

admin/admin.db
No preview for this file type
classesphp/mapa_googlemaps.php
@@ -140,9 +140,10 @@ elseif ($_GET["X"] != ""){ @@ -140,9 +140,10 @@ elseif ($_GET["X"] != ""){
140 $_GET["WIDTH"] = 256; 140 $_GET["WIDTH"] = 256;
141 $_GET["HEIGHT"] = 256; 141 $_GET["HEIGHT"] = 256;
142 } 142 }
143 -else{ 143 +elseif(isset($_GET["BBOX"])){
144 $_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]); 144 $_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]);
145 } 145 }
  146 +
146 $mapa = ms_newMapObj($map_fileX); 147 $mapa = ms_newMapObj($map_fileX);
147 $ret = $mapa->extent; 148 $ret = $mapa->extent;
148 149
ferramentas/cores.htm
@@ -44,11 +44,11 @@ navn = false; // netscape @@ -44,11 +44,11 @@ navn = false; // netscape
44 var app = navigator.appName.substring(0,1); 44 var app = navigator.appName.substring(0,1);
45 if (app=='N') navn=true; else navm=true; 45 if (app=='N') navn=true; else navm=true;
46 46
47 -numl = 20  
48 -numc = 20  
49 -nco = 255 47 +numl = 20;
  48 +numc = 20;
  49 +nco = 255;
50 50
51 -inicia("vermelho") 51 +inicia("vermelho");
52 function inicia(esquema) 52 function inicia(esquema)
53 { 53 {
54 intnl = Math.ceil(nco / numl); 54 intnl = Math.ceil(nco / numl);
@@ -56,7 +56,7 @@ function inicia(esquema) @@ -56,7 +56,7 @@ function inicia(esquema)
56 r = 0; 56 r = 0;
57 g = 0; 57 g = 0;
58 b = 0; 58 b = 0;
59 - ins = "" 59 + ins = "";
60 for (linhas = 1; linhas < numl; linhas++) 60 for (linhas = 1; linhas < numl; linhas++)
61 { 61 {
62 ins += "<tbody><tr>\n"; 62 ins += "<tbody><tr>\n";
@@ -79,29 +79,29 @@ function inicia(esquema) @@ -79,29 +79,29 @@ function inicia(esquema)
79 if (esquema == "ciano"){b = 255; g = linhas; r = 0;} 79 if (esquema == "ciano"){b = 255; g = linhas; r = 0;}
80 if (esquema == "amarelo"){b = 0; g = linhas; r = 255;} 80 if (esquema == "amarelo"){b = 0; g = linhas; r = 255;}
81 } 81 }
82 - document.getElementById("cores").innerHTML = "\<table cellpadding='0' cellspacing='0' border='0'\>"+ins+"\<\/table\>" 82 + document.getElementById("cores").innerHTML = "\<table cellpadding='0' cellspacing='0' border='0'\>"+ins+"\<\/table\>";
83 } 83 }
84 function muda (e) 84 function muda (e)
85 { 85 {
86 - inicia(e.value) 86 + inicia(e.value);
87 } 87 }
88 function mais() 88 function mais()
89 { 89 {
90 - nco = nco + 20  
91 - inicia(document.getElementById("esq").value) 90 + nco = nco + 20;
  91 + inicia(document.getElementById("esq").value);
92 } 92 }
93 function menos() 93 function menos()
94 { 94 {
95 - nco = nco - 20  
96 - inicia(document.getElementById("esq").value) 95 + nco = nco - 20;
  96 + inicia(document.getElementById("esq").value);
97 } 97 }
98 function aplicacor(c) 98 function aplicacor(c)
99 { 99 {
100 - var doc = unescape(((((window.location.href).split("doc="))[1]).split("&"))[0] )  
101 - var doc = (navm) ? window.parent.frames(doc).document : window.parent.document.getElementById(doc).contentDocument 100 + var doc = unescape(((((window.location.href).split("doc="))[1]).split("&"))[0] );
  101 + var doc = (navm) ? window.parent.frames(doc).document : window.parent.document.getElementById(doc).contentDocument;
102 var elemento = unescape(((((window.location.href).split("elemento="))[1]).split("&"))[0] ); 102 var elemento = unescape(((((window.location.href).split("elemento="))[1]).split("&"))[0] );
103 - doc.getElementById(elemento).value = c  
104 - window.parent.wdocafechaf('wdocac') 103 + doc.getElementById(elemento).value = c;
  104 + window.parent.wdocafechaf('wdocac');
105 } 105 }
106 </script> 106 </script>
107 </body> 107 </body>
@@ -528,7 +528,7 @@ i3GEO.analise = @@ -528,7 +528,7 @@ i3GEO.analise =
528 * layer para receber os graficos 528 * layer para receber os graficos
529 */ 529 */
530 inicia : function() { 530 inicia : function() {
531 - i3GEO.analise.medeDistancia.openlayers.estilo = 531 + i3GEO.analise.medeDistancia.openlayers.estilo =
532 new ol.style.Style({ 532 new ol.style.Style({
533 stroke: new ol.style.Stroke({ 533 stroke: new ol.style.Stroke({
534 color: '#ffcc33', 534 color: '#ffcc33',
@@ -641,8 +641,10 @@ i3GEO.analise = @@ -641,8 +641,10 @@ i3GEO.analise =
641 i3GEO.analise.medeDistancia.ultimoWkt = i3GEO.analise.medeDistancia.pontos2wkt(); 641 i3GEO.analise.medeDistancia.ultimoWkt = i3GEO.analise.medeDistancia.pontos2wkt();
642 // raio 642 // raio
643 if ($i("pararraios") && $i("pararraios").checked === true) { 643 if ($i("pararraios") && $i("pararraios").checked === true) {
  644 +
  645 + temp = i3GEO.util.projGeo2OSM(new ol.geom.Point([x1*1, y1*1]));
644 circ = new ol.Feature({ 646 circ = new ol.Feature({
645 - geometry: new ol.geom.Circle([x1, y1],raio) 647 + geometry: new ol.geom.Circle(temp.getCoordinates(),raio)
646 }); 648 });
647 circ.setProperties({ 649 circ.setProperties({
648 origem : "medeDistanciaExcluir" 650 origem : "medeDistanciaExcluir"
@@ -661,7 +663,7 @@ i3GEO.analise = @@ -661,7 +663,7 @@ i3GEO.analise =
661 // desenha ponto 663 // desenha ponto
662 if ($i("parartextos") && $i("parartextos").checked === true) { 664 if ($i("parartextos") && $i("parartextos").checked === true) {
663 label = new ol.Feature({ 665 label = new ol.Feature({
664 - geometry: new ol.geom.Point([x2, y2]) 666 + geometry: i3GEO.util.projGeo2OSM(new ol.geom.Point([x2*1, y2*1]))
665 }); 667 });
666 label.setProperties({ 668 label.setProperties({
667 origem : "medeDistanciaExcluir" 669 origem : "medeDistanciaExcluir"
@@ -1236,8 +1238,8 @@ i3GEO.analise = @@ -1236,8 +1238,8 @@ i3GEO.analise =
1236 x1 = temp[0]; 1238 x1 = temp[0];
1237 y1 = temp[1]; 1239 y1 = temp[1];
1238 } 1240 }
1239 - per += i3GEO.calculo.distancia(x1, y1, x2, y2);  
1240 - //getGeodesicArea 1241 + per += i3GEO.calculo.distancia(x1, y1, x2, y2);
  1242 + //getGeodesicArea
1241 sourceProj = i3geoOL.getView().getProjection(); 1243 sourceProj = i3geoOL.getView().getProjection();
1242 geom = (geom.clone().transform(sourceProj, 'EPSG:4326')); 1244 geom = (geom.clone().transform(sourceProj, 'EPSG:4326'));
1243 coordinates = geom.getLinearRing(0).getCoordinates(); 1245 coordinates = geom.getLinearRing(0).getCoordinates();
@@ -346,9 +346,7 @@ i3GEO.desenho = @@ -346,9 +346,7 @@ i3GEO.desenho =
346 ox = 0.5; 346 ox = 0.5;
347 oy = 1; 347 oy = 1;
348 } 348 }
349 - point = new ol.geom.Point([x, y]);  
350 - point = i3GEO.util.extGeo2OSM(point);  
351 - 349 + point = i3GEO.util.extGeo2OSM(new ol.geom.Point([x, y]));
352 f = new ol.Feature({ 350 f = new ol.Feature({
353 geometry: point 351 geometry: point
354 }); 352 });
@@ -386,7 +384,8 @@ i3GEO.desenho = @@ -386,7 +384,8 @@ i3GEO.desenho =
386 } 384 }
387 }, 385 },
388 movePin : function(pin, x, y) { 386 movePin : function(pin, x, y) {
389 - pin.getGeometry().setCoordinates([x,y]); 387 + var point = i3GEO.util.extGeo2OSM(new ol.geom.Point([x, y]));
  388 + pin.getGeometry().setCoordinates(point.getCoordinates());
390 }, 389 },
391 criaLayerGrafico : function() { 390 criaLayerGrafico : function() {
392 if (!i3GEO.desenho.layergrafico) { 391 if (!i3GEO.desenho.layergrafico) {
js/interface.js
@@ -825,9 +825,7 @@ i3GEO.Interface = @@ -825,9 +825,7 @@ i3GEO.Interface =
825 }); 825 });
826 p.baloes.push(b); 826 p.baloes.push(b);
827 i3geoOL.addOverlay(b); 827 i3geoOL.addOverlay(b);
828 - b.setPosition([  
829 - x, y  
830 - ]); 828 + b.setPosition(i3GEO.util.projGeo2OSM(new ol.geom.Point([x, y])).getCoordinates());
831 }, 829 },
832 /** 830 /**
833 * Redesenha o mapa atual 831 * Redesenha o mapa atual
@@ -1557,7 +1555,6 @@ i3GEO.Interface = @@ -1557,7 +1555,6 @@ i3GEO.Interface =
1557 opcoes.isBaseLayer = false; 1555 opcoes.isBaseLayer = false;
1558 opcoes.visible = true; 1556 opcoes.visible = true;
1559 } else { 1557 } else {
1560 -  
1561 // verifica se havera apenas um tile 1558 // verifica se havera apenas um tile
1562 // 10 e do tipo grid de coordenadas 1559 // 10 e do tipo grid de coordenadas
1563 if (camada.tiles === "nao" || camada.escondido.toLowerCase() === "sim" 1560 if (camada.tiles === "nao" || camada.escondido.toLowerCase() === "sim"
@@ -1598,19 +1595,30 @@ i3GEO.Interface = @@ -1598,19 +1595,30 @@ i3GEO.Interface =
1598 }); 1595 });
1599 source.set("tipoServico", "ImageWMS"); 1596 source.set("tipoServico", "ImageWMS");
1600 } else { 1597 } else {
1601 - source = new ol.source.WMTS({  
1602 - url : urllayer,  
1603 - matrixSet : opcoes.projection,  
1604 - format : 'image/png',  
1605 - projection : opcoes.projection,  
1606 - tileGrid : new ol.tilegrid.WMTS({  
1607 - origin : ol.extent.getTopLeft(projectionExtent),  
1608 - resolutions : resolutions,  
1609 - matrixIds : matrixIds  
1610 - }),  
1611 - wrapX : true  
1612 - });  
1613 - source.set("tipoServico", "WMTS"); 1598 + if(i3GEO.Interface.openlayers.googleLike === false){
  1599 + source = new ol.source.WMTS({
  1600 + url : urllayer,
  1601 + matrixSet : opcoes.projection,
  1602 + format : 'image/png',
  1603 + projection : opcoes.projection,
  1604 + tileGrid : new ol.tilegrid.WMTS({
  1605 + origin : ol.extent.getTopLeft(projectionExtent),
  1606 + resolutions : resolutions,
  1607 + matrixIds : matrixIds
  1608 + }),
  1609 + wrapX : true
  1610 + });
  1611 + source.set("tipoServico", "WMTS");
  1612 + }else{
  1613 + source = new ol.source.XYZ({
  1614 + url : urllayer+"&X={x}&Y={y}&Z={z}",
  1615 + matrixSet : opcoes.projection,
  1616 + format : 'image/png',
  1617 + projection : opcoes.projection,
  1618 + wrapX : true
  1619 + });
  1620 + source.set("tipoServico", "WMTS");
  1621 + }
1614 } 1622 }
1615 opcoes.title = camada.tema; 1623 opcoes.title = camada.tema;
1616 opcoes.name = camada.name; 1624 opcoes.name = camada.name;
@@ -2946,11 +2946,11 @@ i3GEO.util = @@ -2946,11 +2946,11 @@ i3GEO.util =
2946 } 2946 }
2947 if (temp[0] * 1 <= 180 && temp[0] * 1 >= -180) { 2947 if (temp[0] * 1 <= 180 && temp[0] * 1 >= -180) {
2948 point = new ol.geom.Point([temp[0]*1, temp[1]*1]); 2948 point = new ol.geom.Point([temp[0]*1, temp[1]*1]);
2949 - metrica = point.transform("EPSG:4326","EPSG:900913"); 2949 + metrica = point.transform("EPSG:4326","EPSG:3857");
2950 ext = metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1]; 2950 ext = metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1];
2951 if (temp.length > 2) { 2951 if (temp.length > 2) {
2952 point = new ol.geom.Point([temp[2]*1, temp[3]*1]); 2952 point = new ol.geom.Point([temp[2]*1, temp[3]*1]);
2953 - metrica = point.transform("EPSG:4326","EPSG:900913"); 2953 + metrica = point.transform("EPSG:4326","EPSG:3857");
2954 ext += sep + metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1]; 2954 ext += sep + metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1];
2955 } 2955 }
2956 } 2956 }
@@ -2967,7 +2967,7 @@ i3GEO.util = @@ -2967,7 +2967,7 @@ i3GEO.util =
2967 * Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM 2967 * Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM
2968 */ 2968 */
2969 extOSM2Geo : function(ext, retornaArray) { 2969 extOSM2Geo : function(ext, retornaArray) {
2970 - var metrica, point, temp, sep; 2970 + var point, temp, sep;
2971 sep = " "; 2971 sep = " ";
2972 if (typeof ext == "object") { 2972 if (typeof ext == "object") {
2973 return i3GEO.util.projOSM2Geo(ext); 2973 return i3GEO.util.projOSM2Geo(ext);
@@ -2980,12 +2980,12 @@ i3GEO.util = @@ -2980,12 +2980,12 @@ i3GEO.util =
2980 } 2980 }
2981 if (temp[0] * 1 >= 180 || temp[0] * 1 <= -180) { 2981 if (temp[0] * 1 >= 180 || temp[0] * 1 <= -180) {
2982 point = new ol.geom.Point([temp[0], temp[1]]); 2982 point = new ol.geom.Point([temp[0], temp[1]]);
2983 - metrica = point.transform("EPSG:900913","EPSG:4326");  
2984 - ext = metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1]; 2983 + point.transform("EPSG:3857","EPSG:4326");
  2984 + ext = point.getCoordinates()[0] + sep + point.getCoordinates()[1];
2985 if (temp.length > 2) { 2985 if (temp.length > 2) {
2986 point = new ol.geom.Point([temp[2], temp[3]]); 2986 point = new ol.geom.Point([temp[2], temp[3]]);
2987 - metrica = point.transform("EPSG:900913","EPSG:4326");  
2988 - ext += sep + metrica.getCoordinates()[0] + sep + metrica.getCoordinates()[1]; 2987 + point.transform("EPSG:3857","EPSG:4326");
  2988 + ext += sep + point.getCoordinates()[0] + sep + point.getCoordinates()[1];
2989 } 2989 }
2990 } 2990 }
2991 } 2991 }
@@ -3002,9 +3002,12 @@ i3GEO.util = @@ -3002,9 +3002,12 @@ i3GEO.util =
3002 */ 3002 */
3003 projOSM2Geo : function(obj) { 3003 projOSM2Geo : function(obj) {
3004 if (i3GEO.Interface.openlayers.googleLike === true) { 3004 if (i3GEO.Interface.openlayers.googleLike === true) {
3005 - obj = obj.transform("EPSG:900913","EPSG:4326"); 3005 + var clone = obj.clone();
  3006 + clone.transform("EPSG:3857","EPSG:4326");
  3007 + return clone;
  3008 + }else{
  3009 + return obj;
3006 } 3010 }
3007 - return obj;  
3008 }, 3011 },
3009 /** 3012 /**
3010 * Function: projGeo2OSM 3013 * Function: projGeo2OSM
@@ -3013,9 +3016,12 @@ i3GEO.util = @@ -3013,9 +3016,12 @@ i3GEO.util =
3013 */ 3016 */
3014 projGeo2OSM : function(obj) { 3017 projGeo2OSM : function(obj) {
3015 if (i3GEO.Interface.openlayers.googleLike === true) { 3018 if (i3GEO.Interface.openlayers.googleLike === true) {
3016 - obj = obj.transform("EPSG:4326","EPSG:900913"); 3019 + var clone = obj.clone();
  3020 + clone.transform("EPSG:4326","EPSG:3857");
  3021 + return clone;
  3022 + }else{
  3023 + return obj;
3017 } 3024 }
3018 - return obj;  
3019 }, 3025 },
3020 /** 3026 /**
3021 * Function: navegadorDir 3027 * Function: navegadorDir