Commit 3c414ef7b4a6873e3e323067e7d296dddee3ec30

Authored by Edmar Moretti
1 parent 35683f8f

Correção na rotina do OpenLayers que tenta descobrir o endereço da aplicação. El…

…iminação de cookies na inicialização. Adaptação da ferramenta de filtro de imagem para a interface openlayers
aplicmap/openlayers.htm
... ... @@ -4,9 +4,8 @@
4 4 <meta http-equiv="Category" content="I3Geo Mapa interativo MMA geoprocessamento sig mobile">
5 5 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
6 6 <title>i3Geo - Mapa interativo</title>
7   -<script type="text/javascript" src="../classesjs/i3geo.js"></script>
  7 +<script type="text/javascript" src="../classesjs/i3geonaocompacto.js"></script>
8 8 <script type="text/javascript" src="../pacotes/openlayers/OpenLayers29.js.php"></script>
9   -<link rel="stylesheet" href="../pacotes/openlayers/theme/default/style.css" type="text/css" />
10 9 </head>
11 10 <body id="i3geo">
12 11  
... ...
classesjs/classe_interface.js
... ... @@ -226,6 +226,25 @@ i3GEO.Interface = {
226 226 {i3GEO.Interface.flamingo.inicia();}
227 227 },
228 228 /*
  229 + Function: alteraLayers
  230 +
  231 + Altera todos os layers do mapa modificando um determinado parâmetro
  232 + */
  233 + alteraParametroLayers: function(parametro,valor){
  234 + if(typeof(console) !== 'undefined'){console.info("i3GEO.Interface.inicia()");}
  235 + if(i3GEO.Interface.ATUAL === "padrao")
  236 + {i3GEO.atualiza();}
  237 + if(i3GEO.Interface.ATUAL === "openlayers")
  238 + {i3GEO.Interface.openlayers.alteraParametroLayers(parametro,valor);}
  239 + if(i3GEO.Interface.ATUAL === "googlemaps")
  240 + {i3GEO.atualiza();}
  241 + if(i3GEO.Interface.ATUAL === "googleearth")
  242 + {i3GEO.atualiza();}
  243 + if(i3GEO.Interface.ATUAL === "flamingo")
  244 + {i3GEO.atualiza();}
  245 + },
  246 +
  247 + /*
229 248 Function: ativaBotoes
230 249  
231 250 Ativa os botões de ferramentas
... ... @@ -660,9 +679,8 @@ i3GEO.Interface = {
660 679 i3GEO.arvoreDeCamadas.cria("",i3GEO.arvoreDeCamadas.CAMADAS,i3GEO.configura.sid,i3GEO.configura.locaplic);
661 680 },
662 681 criaLayers: function(){
663   - //var url = window.location.protocol+"//"+window.location.host+i3GEO.parametros.cgi+"?map="+i3GEO.parametros.mapfile+"&mode=map",
664   - var url = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?map="+i3GEO.parametros.mapfile,
665   - urlfundo = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?layer=&map="+i3GEO.parametros.mapfile.replace(".map","fundo.map"),
  682 + var url = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?map="+i3GEO.parametros.mapfile+"&tipoimagem="+i3GEO.configura.tipoimagem,
  683 + urlfundo = i3GEO.configura.locaplic+"/classesphp/mapa_openlayers.php?layer=&map="+i3GEO.parametros.mapfile.replace(".map","fundo.map")+"&tipoimagem="+i3GEO.configura.tipoimagem,
666 684 nlayers = i3GEO.arvoreDeCamadas.CAMADAS.length,
667 685 layer,
668 686 camada,
... ... @@ -670,8 +688,6 @@ i3GEO.Interface = {
670 688 opcoes,
671 689 i;
672 690  
673   -
674   -
675 691 if(i3geoOL.getLayersByName("Fundo").length == 0){
676 692 layer = new OpenLayers.Layer.WMS( "Fundo", urlfundo,{map_imagetype:i3GEO.Interface.OUTPUTFORMAT},{ratio: 1,singleTile:true,isBaseLayer:true, opacity: 1});
677 693 i3geoOL.addLayer(layer);
... ... @@ -710,7 +726,20 @@ i3GEO.Interface = {
710 726 {layer.setVisibility(true);}
711 727 }
712 728 i3geoOL.addLayers(i3GEO.Interface.openlayers.LAYERSADICIONAIS);
713   -
  729 + },
  730 + alteraParametroLayers: function(parametro,valor){
  731 + var layers = i3geoOL.layers,
  732 + nlayers = layers.length,
  733 + i,
  734 + url,
  735 + reg;
  736 + for(i=0;i<nlayers;i++){
  737 + url = layers[i].url;
  738 + reg = new RegExp(parametro+"([=])+([a-zA-Z0-9_]*)");
  739 + layers[i].url = url.replace(reg,"")
  740 + eval("layers[i].mergeNewParams({"+parametro+":valor})");
  741 + layers[i].redraw();
  742 + }
714 743 },
715 744 loadStartLayer: function(event){
716 745 var i = $i("arrastar_"+event.object.name);
... ... @@ -720,14 +749,6 @@ i3GEO.Interface = {
720 749 },
721 750 loadStopLayer: function(event){
722 751 var i = $i("arrastar_"+event.object.name);
723   - /*
724   - e = i3geoOL.getLayersByName(event.object.name)[0].div.firstChild.firstChild.id,
725   - attributes = {
726   - left: { from: 0, to: i3GEO.parametros.w*-1 }
727   - },
728   - anim = new YAHOO.util.Anim(e, attributes);
729   - anim.animate();
730   - */
731 752 if(i){
732 753 i.style.backgroundColor = "";
733 754 }
... ...
classesphp/classe_imagem.php
... ... @@ -66,6 +66,8 @@ $arquivo - Nome completo da imagem em disco.
66 66 {
67 67 $this->arquivoimg = $arquivo;
68 68 $this->img = imagecreatefrompng($arquivo);
  69 + imagealphablending($this->img, false);
  70 + imagesavealpha($this->img, true);
69 71 }
70 72 else
71 73 {return null;}
... ...
classesphp/classe_mapa.php
... ... @@ -187,8 +187,8 @@ string - javascript com os parametros
187 187 $escondido = $oLayer->getmetadata("escondido");
188 188 if($escondido == "")
189 189 {$escondido = "nao";}
190   - //if ( (strtoupper($oLayer->getmetadata("tema")) != "NAO") )
191   - //{
  190 + if ( (strtoupper($oLayer->getmetadata("tema")) != "NAO") )
  191 + {
192 192 $escala = $oLayer->getmetadata("escala");
193 193 if ($escala == ""){$escala = 0;}
194 194 $down = $oLayer->getmetadata("download");
... ... @@ -250,7 +250,7 @@ string - javascript com os parametros
250 250 "escondido"=>strtolower($escondido),
251 251 "iconetema"=>($oLayer->getmetadata("iconetema"))
252 252 );
253   - //}
  253 + }
254 254 }
255 255 //apaga o arquivo qy se não for necessário
256 256 //if (!$existesel && $qy)
... ...
classesphp/mapa_openlayers.php
... ... @@ -35,7 +35,7 @@ Arquivo:
35 35 i3geo/classesphp/mapa_openlayers.php
36 36  
37 37 */
38   -error_reporting(E_ALL);
  38 +//error_reporting(E_ALL);
39 39 if (!function_exists('ms_GetVersion'))
40 40 {
41 41 $s = PHP_SHLIB_SUFFIX;
... ... @@ -52,11 +52,13 @@ if(isset($_GET[&quot;BBOX&quot;]))
52 52  
53 53 if (($postgis_mapa != "") || ($postgis_mapa != " "))
54 54 {substituiCon($_GET["map"],$postgis_mapa);}
  55 +
55 56 $mapa = ms_newMapObj($_GET["map"]);
56 57 $qyfile = str_replace(".map",".qy",$_GET["map"]);
57 58 $qy = file_exists($qyfile);
58 59 if($qy)
59 60 {$mapa->loadquery($qyfile);}
  61 +
60 62 $layersNames = $mapa->getalllayernames();
61 63 foreach ($layersNames as $layerName)
62 64 {
... ... @@ -74,18 +76,46 @@ foreach ($layersNames as $layerName)
74 76 }
75 77 $map_size = explode(" ",$_GET["map_size"]);
76 78 $mapa->setsize($map_size[0],$map_size[1]);
  79 +
77 80 $mapext = explode(" ",$_GET["mapext"]);
78 81 $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]);
  82 +
79 83 $o = $mapa->outputformat;
80 84 $o->set("imagemode",MS_IMAGEMODE_RGBA);
  85 +
81 86 if(!$qy)
82 87 {$img = $mapa->draw();}
83 88 else
84 89 {$img = $mapa->drawQuery();}
  90 +
85 91 if (($postgis_mapa != "") || ($postgis_mapa != " "))
86 92 {restauraCon($_GET["map"],$postgis_mapa);}
87   -echo header("Content-type: " . $o->mimetype . "\n\n");
88   -$img->saveImage("");
  93 +
  94 +if (!function_exists('imagepng'))
  95 +{
  96 + $s = PHP_SHLIB_SUFFIX;
  97 + @dl( 'php_gd.'.$s );
  98 + if (!function_exists('imagepng'))
  99 + {@dl( 'php_gd2.'.$s );}
  100 + if (!function_exists('imagepng'))
  101 + {$_GET["TIPOIMAGEM"] = "";}
  102 +}
  103 +
  104 +if($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum")
  105 +{
  106 + $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico();
  107 + $img->saveImage($nomer);
  108 + filtraImagem($nomer,$_GET["TIPOIMAGEM"]);
  109 + $img = imagecreatefrompng($nomer);
  110 + imagealphablending($img, false);
  111 + imagesavealpha($img, true);
  112 + echo header("Content-type: " . $o->mimetype . "\n\n");
  113 + imagepng($img);
  114 +}
  115 +else{
  116 + echo header("Content-type: " . $o->mimetype . "\n\n");
  117 + $img->saveImage("");
  118 +}
89 119 function nomeRandomico($n=10)
90 120 {
91 121 $nomes = "";
... ... @@ -160,4 +190,32 @@ function restauraCon($map_file,$postgis_mapa)
160 190 }
161 191 }
162 192  
  193 +function filtraImagem($nomer,$tipoimagem)
  194 +{
  195 + include_once("classe_imagem.php");
  196 + $tiposImagem = explode(" ",$tipoimagem);
  197 + foreach ($tiposImagem as $tipoimagem){
  198 + $m = new Imagem($nomer);
  199 + if ($tipoimagem == "cinza")
  200 + {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));}
  201 + if ($tipoimagem == "sepiaclara")
  202 + {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));}
  203 + if ($tipoimagem == "sepianormal")
  204 + {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));}
  205 + if ($tipoimagem == "negativo")
  206 + {imagepng($m->negativo(),str_replace("\\","/",$nomer));}
  207 + if ($tipoimagem == "detectaBordas")
  208 + {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));}
  209 + if ($tipoimagem == "embassa")
  210 + {imagepng($m->embassa(),str_replace("\\","/",$nomer));}
  211 + if ($tipoimagem == "gaussian_blur")
  212 + {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));}
  213 + if ($tipoimagem == "selective_blur")
  214 + {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));}
  215 + if ($tipoimagem == "mean_removal")
  216 + {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));}
  217 + if ($tipoimagem == "pixelate")
  218 + {imagepng($m->pixelate(),str_replace("\\","/",$nomer));}
  219 + }
  220 +}
163 221 ?>
164 222 \ No newline at end of file
... ...
ferramentas/tipoimagem/index.js.php
... ... @@ -181,7 +181,8 @@ i3GEOF.tipoimagem = {
181 181 {filtro = 'nenhum';}
182 182 i3GEO.configura.tipoimagem = filtro;
183 183 g_operacao = "outras";
184   - i3GEO.atualiza();
  184 + //i3GEO.atualiza();
  185 + i3GEO.Interface.alteraParametroLayers("tipoimagem",filtro);
185 186 },
186 187 /*
187 188 Function: adicionar
... ...
guia_de_migracao.txt
... ... @@ -7,7 +7,12 @@ Para a versão 4.4
7 7 allow_call_time_pass_reference = On
8 8  
9 9 Foi acrescentado um novo LAYER em i3geo/aplicmpa/geral1.map e geral1windows.map com dados do Open Street Map. Caso vc não
10   - queira que essas camadas novas apareçam, basta removê-las desses arquivos.
  10 + queira que essa camada nova apareça, basta removê-las desses arquivos.
  11 +
  12 + Foi incluida a remoção de cookies no ms_criamapa.php, que inicializa o i3geo ($_COOKIE = array();). Se vc precisa definir cookies,
  13 + considere a necessidade de comentar a linha de código do ms_criamapa.php.
  14 +
  15 + Por default, o i3Geo passou a usar a interface openlayers.htm. Se vc quiser modificar isso, altere o ms_configura.php.
11 16 -------------------------------------------------------------------------------------------------
12 17 Para a versão 4.3
13 18  
... ...
ms_criamapa.php
... ... @@ -19,8 +19,15 @@ http://localhost/i3geo/ms_criamapa.php?temasa=estadosl bioma&amp;layers=estadosl bio
19 19 Caso a inicialização do i3geo ocorra por um outro programa PHP, o ms_criamapa.php deve ser executado via include. Nesse caso, os parâmetros devem ser especificados como variáveis, p.e.,
20 20  
21 21 $temasa=bioma;
  22 +
22 23 include("ms_criamapa.php");
23 24  
  25 +Os cookies passados ao servidor são eliminados com a linha:
  26 +
  27 +$_COOKIE = array();
  28 +
  29 +Se a sua aplicação precisa de cookies, comente essa linha do programa.
  30 +
24 31 Link:
25 32  
26 33 http://localhost/i3geo/ms_criamapa.php
... ... @@ -110,6 +117,8 @@ Indica onde está o diretório i3geo para que os includes seguintes possam ser loc
110 117 $caminho é sempre colocada antes do nome dos arquivos que serão incçuídos, p.e.,
111 118 require_once ($caminho."classesphp/carrega_ext.php");
112 119 */
  120 +$_COOKIE = array();
  121 +
113 122 if (!isset($caminho)){$caminho = "";}
114 123 if (!file_exists($caminho."classesphp/carrega_ext.php"))
115 124 {echo "<b> Nao foi possivel localizar o diretório classephp. Provavelmente vc precisara definir a variavel $camino";exit;}
... ...
pacotes/openlayers/OpenLayers29.js.php
... ... @@ -92,9 +92,17 @@
92 92 * issues. Applications that use the code below will continue to work seamlessly
93 93 * when that happens.
94 94 */
95   -var OpenLayers={singleFile:true};(function(){var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var scriptLocation;window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers.js":"OpenLayers.js",_getScriptLocation:function(){if(scriptLocation!=undefined){return scriptLocation;}
96   -scriptLocation="";var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var scripts=document.getElementsByTagName('script');for(var i=0,len=scripts.length;i<len;i++){var src=scripts[i].getAttribute('src');if(src){var match=src.match(isOL);if(match){scriptLocation=match[1];break;}}}
97   -return scriptLocation;}};if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/Image/IFrame.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/WMS/Post.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Layer/Zoomify.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Control/Graticule.js","OpenLayers/Control/TransformFeature.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Strategy/Refresh.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Protocol/SOS.js","OpenLayers/Protocol/SOS/v1_0_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/Atom.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/CSWGetDomain.js","OpenLayers/Format/CSWGetDomain/v2_0_2.js","OpenLayers/Format/CSWGetRecords.js","OpenLayers/Format/CSWGetRecords/v2_0_2.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSCapabilities/v1_3.js","OpenLayers/Format/WMSCapabilities/v1_3_0.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Format/OWSCommon/v1_1_0.js","OpenLayers/Format/SOSCapabilities.js","OpenLayers/Format/SOSCapabilities/v1_0_0.js","OpenLayers/Format/SOSGetObservation.js","OpenLayers/Format/SOSGetFeatureOfInterest.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
  95 +var OpenLayers={singleFile:true};(function()
  96 +{var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var scriptLocation;
  97 +window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers.js":"OpenLayers29.js.php",
  98 +_getScriptLocation:function(){if(scriptLocation!=undefined){return scriptLocation;}
  99 +scriptLocation="";
  100 +var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");
  101 +var scripts=document.getElementsByTagName('script');
  102 +for(var i=0,len=scripts.length;i<len;i++)
  103 +{var src=scripts[i].getAttribute('src');if(src){var match=src.match(isOL);if(match){scriptLocation=match[1];break;}}}
  104 +return scriptLocation;}};
  105 +if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/Image/IFrame.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/WMS/Post.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Layer/Zoomify.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Control/Graticule.js","OpenLayers/Control/TransformFeature.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Strategy/Refresh.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Protocol/SOS.js","OpenLayers/Protocol/SOS/v1_0_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/Atom.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/CSWGetDomain.js","OpenLayers/Format/CSWGetDomain/v2_0_2.js","OpenLayers/Format/CSWGetRecords.js","OpenLayers/Format/CSWGetRecords/v2_0_2.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSCapabilities/v1_3.js","OpenLayers/Format/WMSCapabilities/v1_3_0.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Format/OWSCommon/v1_1_0.js","OpenLayers/Format/SOSCapabilities.js","OpenLayers/Format/SOSCapabilities/v1_0_0.js","OpenLayers/Format/SOSGetObservation.js","OpenLayers/Format/SOSGetFeatureOfInterest.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
98 106 var host=OpenLayers._getScriptLocation()+"lib/";for(var i=0,len=jsfiles.length;i<len;i++){if(docWrite){allScriptTags[i]="<script src='"+host+jsfiles[i]+"'></script>";}else{var s=document.createElement("script");s.src=host+jsfiles[i];var h=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;h.appendChild(s);}}
99 107 if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="$Revision: 10129 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
100 108 return camelizedString;},format:function(template,context,args){if(!context){context=window;}
... ...