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 | 34 | if(!i3GEO || typeof(i3GEO) === 'undefined'){ |
2 | 35 | var i3GEO = { |
3 | 36 | }; |
... | ... | @@ -246,7 +279,8 @@ i3GEO.editorOL = { |
246 | 279 | }); |
247 | 280 | } |
248 | 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 | 285 | else{ |
252 | 286 | i3GEO.editorOL.mapa.zoomToMaxExtent(); |
... | ... | @@ -325,6 +359,7 @@ i3GEO.editorOL = { |
325 | 359 | {p = e.xy;} |
326 | 360 | //altera o indicador de localizacao |
327 | 361 | lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); |
362 | + lonlat = i3GEO.util.projOSM2Geo(lonlat); | |
328 | 363 | d = i3GEO.calculo.dd2dms(lonlat.lon,lonlat.lat); |
329 | 364 | try{ |
330 | 365 | $i(idcoord[0].id).innerHTML = "Long: "+d[0]+"<br>Lat: "+d[1]; |
... | ... | @@ -1447,7 +1482,8 @@ i3GEO.editorOL = { |
1447 | 1482 | adicionaMarcas: function(){ |
1448 | 1483 | if(i3GEO.editorOL.pontos.length === 0) |
1449 | 1484 | {return;} |
1450 | - var SHADOW_Z_INDEX = 10, | |
1485 | + var f, | |
1486 | + SHADOW_Z_INDEX = 10, | |
1451 | 1487 | MARKER_Z_INDEX = 11, |
1452 | 1488 | layer = new OpenLayers.Layer.Vector( |
1453 | 1489 | "pontos", |
... | ... | @@ -1476,10 +1512,13 @@ i3GEO.editorOL = { |
1476 | 1512 | y.push(i3GEO.editorOL.pontos[index+1]); |
1477 | 1513 | } |
1478 | 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 | 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 | 1524 | layer.addFeatures(features); | ... | ... |
classesjs/classe_util.js
... | ... | @@ -2952,23 +2952,32 @@ i3GEO.util = { |
2952 | 2952 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM |
2953 | 2953 | */ |
2954 | 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 | 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 | 2966 | if(temp[0]*1 <= 180 && temp[0]*1 >= -180){ |
2958 | 2967 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); |
2959 | 2968 | proj900913 = new OpenLayers.Projection("EPSG:900913"); |
2960 | 2969 | point = new OpenLayers.LonLat(temp[0], temp[1]); |
2961 | 2970 | metrica = point.transform(projWGS84,proj900913); |
2962 | - ext = metrica.lon+" "+metrica.lat; | |
2971 | + ext = metrica.lon+sep+metrica.lat; | |
2963 | 2972 | if(temp.length > 2){ |
2964 | 2973 | point = new OpenLayers.LonLat(temp[2], temp[3]); |
2965 | 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 | 2979 | if(retornaArray){ |
2971 | - return ext.split(" "); | |
2980 | + return ext.split(sep); | |
2972 | 2981 | } |
2973 | 2982 | else{ |
2974 | 2983 | return ext; |
... | ... | @@ -2980,23 +2989,32 @@ i3GEO.util = { |
2980 | 2989 | Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM |
2981 | 2990 | */ |
2982 | 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 | 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 | 3003 | if(temp[0]*1 >= 180 || temp[0]*1 <= -180){ |
2986 | 3004 | projWGS84 = new OpenLayers.Projection("EPSG:4326"); |
2987 | 3005 | proj900913 = new OpenLayers.Projection("EPSG:900913"); |
2988 | 3006 | point = new OpenLayers.LonLat(temp[0], temp[1]); |
2989 | 3007 | metrica = point.transform(proj900913,projWGS84); |
2990 | - ext = metrica.lon+" "+metrica.lat; | |
3008 | + ext = metrica.lon+sep+metrica.lat; | |
2991 | 3009 | if(temp.length > 2){ |
2992 | 3010 | point = new OpenLayers.LonLat(temp[2], temp[3]); |
2993 | 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 | 3016 | if(retornaArray){ |
2999 | - return ext.split(" "); | |
3017 | + return ext.split(sep); | |
3000 | 3018 | } |
3001 | 3019 | else{ |
3002 | 3020 | return ext; |
... | ... | @@ -3016,6 +3034,19 @@ i3GEO.util = { |
3016 | 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 | 3050 | Function: navegadorDir |
3020 | 3051 | |
3021 | 3052 | Abre o navegador de arquivos localizados no servidor | ... | ... |
mashups/index.html
... | ... | @@ -70,8 +70,13 @@ body,td { |
70 | 70 | </fieldset> |
71 | 71 | <fieldset> |
72 | 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 | 80 | </p> |
76 | 81 | </fieldset> |
77 | 82 | <fieldset> | ... | ... |
mashups/openlayers.php
... | ... | @@ -271,8 +271,7 @@ if($temas != ""){ |
271 | 271 | } |
272 | 272 | } |
273 | 273 | $visivel = "false"; |
274 | - if(in_array($tema,$visiveis)) | |
275 | - { | |
274 | + if(in_array($tema,$visiveis)){ | |
276 | 275 | $visivel = "true"; |
277 | 276 | } |
278 | 277 | // echo $visivel;exit; |
... | ... | @@ -285,16 +284,11 @@ if($temas != ""){ |
285 | 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 | 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 | 287 | foreach($layers as $l){ |
294 | 288 | $tituloLayer = $l->getmetadata("tema"); |
295 | 289 | $nomeLayer = $l->name; |
296 | 290 | $visivel = "false"; |
297 | - if($l->status == MS_DEFAULT || $nlayers == 1){ | |
291 | + if($l->status == MS_DEFAULT || in_array($tema,$visiveis)){ | |
298 | 292 | $visivel = "true"; |
299 | 293 | } |
300 | 294 | if($tituloLayer != ""){ | ... | ... |
mashups/osm.php
... | ... | @@ -289,7 +289,7 @@ if($temas != ""){ |
289 | 289 | $tituloLayer = $l->getmetadata("tema"); |
290 | 290 | $nomeLayer = $l->name; |
291 | 291 | $visivel = "false"; |
292 | - if($l->status == MS_DEFAULT || $nlayers == 1){ | |
292 | + if($l->status == MS_DEFAULT || in_array($tema,$visiveis)){ | |
293 | 293 | $visivel = "true"; |
294 | 294 | } |
295 | 295 | if($tituloLayer != ""){ |
... | ... | @@ -397,18 +397,18 @@ function ajuda(){ |
397 | 397 | <head> |
398 | 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 | 402 | <script type="text/javascript" src="../pacotes/yui290/build/yahoo-dom-event/yahoo-dom-event.js"></script> |
403 | 403 | <script type="text/javascript" src="../pacotes/yui290/build/dragdrop/dragdrop-min.js"></script> |
404 | 404 | <script type="text/javascript" src="../pacotes/yui290/build/container/container-min.js"></script> |
405 | 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 | 407 | <script type="text/javascript" src="../classesjs/compactados/classe_janela_compacto.js"></script> |
408 | 408 | <script type="text/javascript" src="../pacotes/openlayers/OpenLayers2131.js"></script> |
409 | 409 | <script type="text/javascript" src="../classesjs/compactados/classe_desenho_compacto.js"></script> |
410 | 410 | <script type="text/javascript" src="../classesjs/classe_editorol.js"></script> |
411 | ---> | |
411 | + | |
412 | 412 | <?php |
413 | 413 | //carrega o script para layers do tipo plugin |
414 | 414 | if(count($temasPluginI3Geo) > 0){ |
... | ... | @@ -532,16 +532,17 @@ if(isset($mapext)){ |
532 | 532 | } |
533 | 533 | else{ |
534 | 534 | echo "i3GEO.editorOL.mapext = new OpenLayers.Bounds('-15125970.651191 -5205055.877383 15125970.651191 5205055.877383');\n"; |
535 | -} | |
535 | +} | |
536 | 536 | if(empty($fundo)){ |
537 | 537 | // echo "i3GEO.editorOL.mapa.allOverlays = true;"; |
538 | 538 | } |
539 | 539 | ?> |
540 | +i3GEO.Interface = {openlayers:{googleLike:true}}; | |
540 | 541 | i3GEO.editorOL.fundo = "osm"; |
541 | 542 | |
542 | 543 | var temp = i3GEO.editorOL.minresolution, |
543 | 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 | 546 | temp = temp / 2; |
546 | 547 | r.push(temp); |
547 | 548 | } |
... | ... | @@ -562,7 +563,7 @@ i3GEO.editorOL.inicia(); |
562 | 563 | if(!i3GEO.configura){ |
563 | 564 | i3GEO.configura = {"locaplic": "../"}; |
564 | 565 | } |
565 | -i3GEO.Interface = {openlayers:{googleLike:true}}; | |
566 | + | |
566 | 567 | <?php |
567 | 568 | //camadas plugin |
568 | 569 | ... | ... |