Commit 0c4f6bda0581cc5351ddb67a641ba5a443ac865d
1 parent
42e2d92d
Exists in
master
and in
7 other branches
--no commit message
Showing
5 changed files
with
101 additions
and
31 deletions
Show diff stats
classesjs/classe_editorol.js
1 | +/* | ||
2 | +Title: Editor vetorial para OpenLayers | ||
3 | + | ||
4 | +i3GEO.editorOL | ||
5 | + | ||
6 | +Funções utilizadas pelo OpenLayers nas opções de edição de dados vetoriais. | ||
7 | +É utilizado também pelo mashup com navegação via OpenLayers e com OSM. | ||
8 | + | ||
9 | +Arquivo: i3geo/classesjs/classe_editorol.js | ||
10 | + | ||
11 | +Licença: | ||
12 | + | ||
13 | +GPL2 | ||
14 | + | ||
15 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
16 | + | ||
17 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
18 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
19 | + | ||
20 | +Este programa é software livre; você pode redistribuí-lo | ||
21 | +e/ou modificá-lo sob os termos da Licença Pública Geral | ||
22 | +GNU conforme publicada pela Free Software Foundation; | ||
23 | + | ||
24 | +Este programa é distribuído na expectativa de que seja útil, | ||
25 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
26 | +de COMERCIABILIDADE OU ADEQUACAtilde;O A UMA FINALIDADE ESPECÍFICA. | ||
27 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
28 | +Você deve ter recebido uma cópia da Licença Pública Geral do | ||
29 | +GNU junto com este programa; se não, escreva para a | ||
30 | +Free Software Foundation, Inc., no endereço | ||
31 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
32 | +*/ | ||
33 | + | ||
1 | if(!i3GEO || typeof(i3GEO) === 'undefined'){ | 34 | if(!i3GEO || typeof(i3GEO) === 'undefined'){ |
2 | var i3GEO = { | 35 | var i3GEO = { |
3 | }; | 36 | }; |
@@ -246,7 +279,8 @@ i3GEO.editorOL = { | @@ -246,7 +279,8 @@ i3GEO.editorOL = { | ||
246 | }); | 279 | }); |
247 | } | 280 | } |
248 | if(i3GEO.editorOL.mapext != ""){ | 281 | if(i3GEO.editorOL.mapext != ""){ |
249 | - i3GEO.editorOL.mapa.zoomToExtent(i3GEO.editorOL.mapext); | 282 | + var m = i3GEO.util.extGeo2OSM(i3GEO.editorOL.mapext); |
283 | + i3GEO.editorOL.mapa.zoomToExtent(m); | ||
250 | } | 284 | } |
251 | else{ | 285 | else{ |
252 | i3GEO.editorOL.mapa.zoomToMaxExtent(); | 286 | i3GEO.editorOL.mapa.zoomToMaxExtent(); |
@@ -325,6 +359,7 @@ i3GEO.editorOL = { | @@ -325,6 +359,7 @@ i3GEO.editorOL = { | ||
325 | {p = e.xy;} | 359 | {p = e.xy;} |
326 | //altera o indicador de localizacao | 360 | //altera o indicador de localizacao |
327 | lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); | 361 | lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); |
362 | + lonlat = i3GEO.util.projOSM2Geo(lonlat); | ||
328 | d = i3GEO.calculo.dd2dms(lonlat.lon,lonlat.lat); | 363 | d = i3GEO.calculo.dd2dms(lonlat.lon,lonlat.lat); |
329 | try{ | 364 | try{ |
330 | $i(idcoord[0].id).innerHTML = "Long: "+d[0]+"<br>Lat: "+d[1]; | 365 | $i(idcoord[0].id).innerHTML = "Long: "+d[0]+"<br>Lat: "+d[1]; |
@@ -1447,7 +1482,8 @@ i3GEO.editorOL = { | @@ -1447,7 +1482,8 @@ i3GEO.editorOL = { | ||
1447 | adicionaMarcas: function(){ | 1482 | adicionaMarcas: function(){ |
1448 | if(i3GEO.editorOL.pontos.length === 0) | 1483 | if(i3GEO.editorOL.pontos.length === 0) |
1449 | {return;} | 1484 | {return;} |
1450 | - var SHADOW_Z_INDEX = 10, | 1485 | + var f, |
1486 | + SHADOW_Z_INDEX = 10, | ||
1451 | MARKER_Z_INDEX = 11, | 1487 | MARKER_Z_INDEX = 11, |
1452 | layer = new OpenLayers.Layer.Vector( | 1488 | layer = new OpenLayers.Layer.Vector( |
1453 | "pontos", | 1489 | "pontos", |
@@ -1476,10 +1512,13 @@ i3GEO.editorOL = { | @@ -1476,10 +1512,13 @@ i3GEO.editorOL = { | ||
1476 | y.push(i3GEO.editorOL.pontos[index+1]); | 1512 | y.push(i3GEO.editorOL.pontos[index+1]); |
1477 | } | 1513 | } |
1478 | for (index = 0; index < x.length; index++) { | 1514 | for (index = 0; index < x.length; index++) { |
1515 | + f = new OpenLayers.Geometry.Point(x[index], y[index]); | ||
1516 | + f = i3GEO.util.projGeo2OSM(f); | ||
1517 | + f = new OpenLayers.Feature.Vector( | ||
1518 | + f | ||
1519 | + ); | ||
1479 | features.push( | 1520 | features.push( |
1480 | - new OpenLayers.Feature.Vector( | ||
1481 | - new OpenLayers.Geometry.Point(x[index], y[index]) | ||
1482 | - ) | 1521 | + f |
1483 | ); | 1522 | ); |
1484 | } | 1523 | } |
1485 | layer.addFeatures(features); | 1524 | layer.addFeatures(features); |
classesjs/classe_util.js
@@ -2952,23 +2952,32 @@ i3GEO.util = { | @@ -2952,23 +2952,32 @@ i3GEO.util = { | ||
2952 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM | 2952 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM |
2953 | */ | 2953 | */ |
2954 | extGeo2OSM: function(ext,retornaArray){ | 2954 | extGeo2OSM: function(ext,retornaArray){ |
2955 | + var metrica,point,proj900913,projWGS84,temp,sep; | ||
2956 | + sep = " "; | ||
2957 | + if(typeof ext == "object"){ | ||
2958 | + return i3GEO.util.projGeo2OSM(ext); | ||
2959 | + } | ||
2955 | if(i3GEO.Interface.openlayers.googleLike === true){ | 2960 | if(i3GEO.Interface.openlayers.googleLike === true){ |
2956 | - var metrica,point,proj900913,projWGS84,temp = ext.split(" "); | 2961 | + temp = ext.split(sep); |
2962 | + if(temp === 1){ | ||
2963 | + sep = ","; | ||
2964 | + temp = ext.split(sep); | ||
2965 | + } | ||
2957 | if(temp[0]*1 <= 180 && temp[0]*1 >= -180){ | 2966 | if(temp[0]*1 <= 180 && temp[0]*1 >= -180){ |
2958 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); | 2967 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); |
2959 | proj900913 = new OpenLayers.Projection("EPSG:900913"); | 2968 | proj900913 = new OpenLayers.Projection("EPSG:900913"); |
2960 | point = new OpenLayers.LonLat(temp[0], temp[1]); | 2969 | point = new OpenLayers.LonLat(temp[0], temp[1]); |
2961 | metrica = point.transform(projWGS84,proj900913); | 2970 | metrica = point.transform(projWGS84,proj900913); |
2962 | - ext = metrica.lon+" "+metrica.lat; | 2971 | + ext = metrica.lon+sep+metrica.lat; |
2963 | if(temp.length > 2){ | 2972 | if(temp.length > 2){ |
2964 | point = new OpenLayers.LonLat(temp[2], temp[3]); | 2973 | point = new OpenLayers.LonLat(temp[2], temp[3]); |
2965 | metrica = point.transform(projWGS84,proj900913); | 2974 | metrica = point.transform(projWGS84,proj900913); |
2966 | - ext += " "+metrica.lon+" "+metrica.lat; | 2975 | + ext += sep+metrica.lon+sep+metrica.lat; |
2967 | } | 2976 | } |
2968 | } | 2977 | } |
2969 | } | 2978 | } |
2970 | if(retornaArray){ | 2979 | if(retornaArray){ |
2971 | - return ext.split(" "); | 2980 | + return ext.split(sep); |
2972 | } | 2981 | } |
2973 | else{ | 2982 | else{ |
2974 | return ext; | 2983 | return ext; |
@@ -2980,23 +2989,32 @@ i3GEO.util = { | @@ -2980,23 +2989,32 @@ i3GEO.util = { | ||
2980 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM | 2989 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM |
2981 | */ | 2990 | */ |
2982 | extOSM2Geo: function(ext,retornaArray){ | 2991 | extOSM2Geo: function(ext,retornaArray){ |
2992 | + var metrica,point,proj900913,projWGS84,temp,sep; | ||
2993 | + sep = " "; | ||
2994 | + if(typeof ext == "object"){ | ||
2995 | + return i3GEO.util.projOSM2Geo(ext); | ||
2996 | + } | ||
2983 | if(i3GEO.Interface.openlayers.googleLike === true){ | 2997 | if(i3GEO.Interface.openlayers.googleLike === true){ |
2984 | - var metrica,point,proj900913,projWGS84,temp = ext.split(" "); | 2998 | + temp = ext.split(sep); |
2999 | + if(temp === 1){ | ||
3000 | + sep = ","; | ||
3001 | + temp = ext.split(sep); | ||
3002 | + } | ||
2985 | if(temp[0]*1 >= 180 || temp[0]*1 <= -180){ | 3003 | if(temp[0]*1 >= 180 || temp[0]*1 <= -180){ |
2986 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); | 3004 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); |
2987 | proj900913 = new OpenLayers.Projection("EPSG:900913"); | 3005 | proj900913 = new OpenLayers.Projection("EPSG:900913"); |
2988 | point = new OpenLayers.LonLat(temp[0], temp[1]); | 3006 | point = new OpenLayers.LonLat(temp[0], temp[1]); |
2989 | metrica = point.transform(proj900913,projWGS84); | 3007 | metrica = point.transform(proj900913,projWGS84); |
2990 | - ext = metrica.lon+" "+metrica.lat; | 3008 | + ext = metrica.lon+sep+metrica.lat; |
2991 | if(temp.length > 2){ | 3009 | if(temp.length > 2){ |
2992 | point = new OpenLayers.LonLat(temp[2], temp[3]); | 3010 | point = new OpenLayers.LonLat(temp[2], temp[3]); |
2993 | metrica = point.transform(proj900913,projWGS84); | 3011 | metrica = point.transform(proj900913,projWGS84); |
2994 | - ext += " "+metrica.lon+" "+metrica.lat; | 3012 | + ext += sep+metrica.lon+sep+metrica.lat; |
2995 | } | 3013 | } |
2996 | } | 3014 | } |
2997 | } | 3015 | } |
2998 | if(retornaArray){ | 3016 | if(retornaArray){ |
2999 | - return ext.split(" "); | 3017 | + return ext.split(sep); |
3000 | } | 3018 | } |
3001 | else{ | 3019 | else{ |
3002 | return ext; | 3020 | return ext; |
@@ -3016,6 +3034,19 @@ i3GEO.util = { | @@ -3016,6 +3034,19 @@ i3GEO.util = { | ||
3016 | return obj; | 3034 | return obj; |
3017 | }, | 3035 | }, |
3018 | /* | 3036 | /* |
3037 | + Function: projGeo2OSM | ||
3038 | + | ||
3039 | + Projeta um objeto OpenLayers de GEO para OSM | ||
3040 | + */ | ||
3041 | + projGeo2OSM: function(obj){ | ||
3042 | + if(i3GEO.Interface.openlayers.googleLike === true){ | ||
3043 | + projWGS84 = new OpenLayers.Projection("EPSG:4326"); | ||
3044 | + proj900913 = new OpenLayers.Projection("EPSG:900913"); | ||
3045 | + obj = obj.transform(projWGS84,proj900913); | ||
3046 | + } | ||
3047 | + return obj; | ||
3048 | + }, | ||
3049 | + /* | ||
3019 | Function: navegadorDir | 3050 | Function: navegadorDir |
3020 | 3051 | ||
3021 | Abre o navegador de arquivos localizados no servidor | 3052 | Abre o navegador de arquivos localizados no servidor |
mashups/index.html
@@ -70,8 +70,13 @@ body,td { | @@ -70,8 +70,13 @@ body,td { | ||
70 | </fieldset> | 70 | </fieldset> |
71 | <fieldset> | 71 | <fieldset> |
72 | <p> | 72 | <p> |
73 | - Duas camadas mas com apenas uma visível na inicialização do mapa <a target=_blank | ||
74 | - href="openlayers.php?temas=_wbiomashp,_lbiomashp,_wlocali,_llocali&largura=800&altura=500&visiveis=_wbiomashp,_lbiomashp">openlayers.php?temas=_wbiomashp,_lbiomashp,locali&largura=800&altura=500&visiveis=_wbiomashp,_lbiomashp</a> | 73 | + Duas camadas mas com apenas uma visível na inicialização do mapa |
74 | + </p> | ||
75 | + <p class="m"> | ||
76 | + Windows: <a target=_blank href="openlayers.php?temas=_wbiomashp,_wlocali&largura=800&altura=500&visiveis=_wbiomashp">openlayers.php?temas=_wbiomashp,_wlocali&largura=800&altura=500&visiveis=_wbiomashp</a> | ||
77 | + </p> | ||
78 | + <p class="m"> | ||
79 | + Linux: <a target=_blank href="openlayers.php?temas=_lbiomashp,_llocali&largura=800&altura=500&visiveis=_lbiomashp">openlayers.php?temas=_lbiomashp,_llocali&largura=800&altura=500&visiveis=_lbiomashp</a> | ||
75 | </p> | 80 | </p> |
76 | </fieldset> | 81 | </fieldset> |
77 | <fieldset> | 82 | <fieldset> |
mashups/openlayers.php
@@ -271,8 +271,7 @@ if($temas != ""){ | @@ -271,8 +271,7 @@ if($temas != ""){ | ||
271 | } | 271 | } |
272 | } | 272 | } |
273 | $visivel = "false"; | 273 | $visivel = "false"; |
274 | - if(in_array($tema,$visiveis)) | ||
275 | - { | 274 | + if(in_array($tema,$visiveis)){ |
276 | $visivel = "true"; | 275 | $visivel = "true"; |
277 | } | 276 | } |
278 | // echo $visivel;exit; | 277 | // echo $visivel;exit; |
@@ -285,16 +284,11 @@ if($temas != ""){ | @@ -285,16 +284,11 @@ if($temas != ""){ | ||
285 | $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{cloneTMS:"'.$nomeLayer.'",layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:false,isBaseLayer:false})'; | 284 | $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{cloneTMS:"'.$nomeLayer.'",layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:false,isBaseLayer:false})'; |
286 | } | 285 | } |
287 | else{ | 286 | else{ |
288 | - // $objOpenLayers[] = 'new OpenLayers.Layer.WMS( | ||
289 | - // "'.$tituloLayer.'", | ||
290 | - // "../ogc.php?tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: | ||
291 | - // "true", format: | ||
292 | - // "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; | ||
293 | foreach($layers as $l){ | 287 | foreach($layers as $l){ |
294 | $tituloLayer = $l->getmetadata("tema"); | 288 | $tituloLayer = $l->getmetadata("tema"); |
295 | $nomeLayer = $l->name; | 289 | $nomeLayer = $l->name; |
296 | $visivel = "false"; | 290 | $visivel = "false"; |
297 | - if($l->status == MS_DEFAULT || $nlayers == 1){ | 291 | + if($l->status == MS_DEFAULT || in_array($tema,$visiveis)){ |
298 | $visivel = "true"; | 292 | $visivel = "true"; |
299 | } | 293 | } |
300 | if($tituloLayer != ""){ | 294 | if($tituloLayer != ""){ |
mashups/osm.php
@@ -289,7 +289,7 @@ if($temas != ""){ | @@ -289,7 +289,7 @@ if($temas != ""){ | ||
289 | $tituloLayer = $l->getmetadata("tema"); | 289 | $tituloLayer = $l->getmetadata("tema"); |
290 | $nomeLayer = $l->name; | 290 | $nomeLayer = $l->name; |
291 | $visivel = "false"; | 291 | $visivel = "false"; |
292 | - if($l->status == MS_DEFAULT || $nlayers == 1){ | 292 | + if($l->status == MS_DEFAULT || in_array($tema,$visiveis)){ |
293 | $visivel = "true"; | 293 | $visivel = "true"; |
294 | } | 294 | } |
295 | if($tituloLayer != ""){ | 295 | if($tituloLayer != ""){ |
@@ -397,18 +397,18 @@ function ajuda(){ | @@ -397,18 +397,18 @@ function ajuda(){ | ||
397 | <head> | 397 | <head> |
398 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | 398 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
399 | 399 | ||
400 | -<script type="text/javascript" src="openlayers_compacto.js.php"></script> | ||
401 | -<!-- para debug | 400 | +<!--<script type="text/javascript" src="openlayers_compacto.js.php"></script>--> |
401 | +<!-- para debug --> | ||
402 | <script type="text/javascript" src="../pacotes/yui290/build/yahoo-dom-event/yahoo-dom-event.js"></script> | 402 | <script type="text/javascript" src="../pacotes/yui290/build/yahoo-dom-event/yahoo-dom-event.js"></script> |
403 | <script type="text/javascript" src="../pacotes/yui290/build/dragdrop/dragdrop-min.js"></script> | 403 | <script type="text/javascript" src="../pacotes/yui290/build/dragdrop/dragdrop-min.js"></script> |
404 | <script type="text/javascript" src="../pacotes/yui290/build/container/container-min.js"></script> | 404 | <script type="text/javascript" src="../pacotes/yui290/build/container/container-min.js"></script> |
405 | <script type="text/javascript" src="../classesjs/compactados/classe_calculo_compacto.js"></script> | 405 | <script type="text/javascript" src="../classesjs/compactados/classe_calculo_compacto.js"></script> |
406 | -<script type="text/javascript" src="../classesjs/compactados/classe_util_compacto.js"></script> | 406 | +<script type="text/javascript" src="../classesjs/classe_util.js"></script> |
407 | <script type="text/javascript" src="../classesjs/compactados/classe_janela_compacto.js"></script> | 407 | <script type="text/javascript" src="../classesjs/compactados/classe_janela_compacto.js"></script> |
408 | <script type="text/javascript" src="../pacotes/openlayers/OpenLayers2131.js"></script> | 408 | <script type="text/javascript" src="../pacotes/openlayers/OpenLayers2131.js"></script> |
409 | <script type="text/javascript" src="../classesjs/compactados/classe_desenho_compacto.js"></script> | 409 | <script type="text/javascript" src="../classesjs/compactados/classe_desenho_compacto.js"></script> |
410 | <script type="text/javascript" src="../classesjs/classe_editorol.js"></script> | 410 | <script type="text/javascript" src="../classesjs/classe_editorol.js"></script> |
411 | ---> | 411 | + |
412 | <?php | 412 | <?php |
413 | //carrega o script para layers do tipo plugin | 413 | //carrega o script para layers do tipo plugin |
414 | if(count($temasPluginI3Geo) > 0){ | 414 | if(count($temasPluginI3Geo) > 0){ |
@@ -532,16 +532,17 @@ if(isset($mapext)){ | @@ -532,16 +532,17 @@ if(isset($mapext)){ | ||
532 | } | 532 | } |
533 | else{ | 533 | else{ |
534 | echo "i3GEO.editorOL.mapext = new OpenLayers.Bounds('-15125970.651191 -5205055.877383 15125970.651191 5205055.877383');\n"; | 534 | echo "i3GEO.editorOL.mapext = new OpenLayers.Bounds('-15125970.651191 -5205055.877383 15125970.651191 5205055.877383');\n"; |
535 | -} | 535 | +} |
536 | if(empty($fundo)){ | 536 | if(empty($fundo)){ |
537 | // echo "i3GEO.editorOL.mapa.allOverlays = true;"; | 537 | // echo "i3GEO.editorOL.mapa.allOverlays = true;"; |
538 | } | 538 | } |
539 | ?> | 539 | ?> |
540 | +i3GEO.Interface = {openlayers:{googleLike:true}}; | ||
540 | i3GEO.editorOL.fundo = "osm"; | 541 | i3GEO.editorOL.fundo = "osm"; |
541 | 542 | ||
542 | var temp = i3GEO.editorOL.minresolution, | 543 | var temp = i3GEO.editorOL.minresolution, |
543 | r = [ i3GEO.editorOL.minresolution ]; | 544 | r = [ i3GEO.editorOL.minresolution ]; |
544 | -for (j = 0; j < (i3GEO.editorOL.numzoom - 1); j++) { | 545 | +for (var j = 0; j < (i3GEO.editorOL.numzoom - 1); j++) { |
545 | temp = temp / 2; | 546 | temp = temp / 2; |
546 | r.push(temp); | 547 | r.push(temp); |
547 | } | 548 | } |
@@ -562,7 +563,7 @@ i3GEO.editorOL.inicia(); | @@ -562,7 +563,7 @@ i3GEO.editorOL.inicia(); | ||
562 | if(!i3GEO.configura){ | 563 | if(!i3GEO.configura){ |
563 | i3GEO.configura = {"locaplic": "../"}; | 564 | i3GEO.configura = {"locaplic": "../"}; |
564 | } | 565 | } |
565 | -i3GEO.Interface = {openlayers:{googleLike:true}}; | 566 | + |
566 | <?php | 567 | <?php |
567 | //camadas plugin | 568 | //camadas plugin |
568 | 569 |