Commit 84221d2bed89426384ced117c6393c6b60e27ce1
1 parent
d97b1a46
Exists in
master
and in
7 other branches
Alteração na forma como urls kml são inseridas no mapa
Showing
8 changed files
with
108 additions
and
137 deletions
Show diff stats
admin/admin.db
No preview for this file type
ferramentas/carregakml/index.js
... | ... | @@ -150,12 +150,19 @@ i3GEOF.carregakml = { |
150 | 150 | Adiciona o KML ao mapa |
151 | 151 | */ |
152 | 152 | adiciona: function(){ |
153 | - if(i3GEOF.carregakml.aguarde.visibility === "visible") | |
154 | - {return;} | |
155 | - var url = $i("i3GEOcarregakmlurl").value; | |
153 | + var url, temp, cp, p; | |
154 | + if(i3GEOF.carregakml.aguarde.visibility === "visible"){ | |
155 | + return; | |
156 | + } | |
157 | + url = $i("i3GEOcarregakmlurl").value; | |
156 | 158 | if(url !== ""){ |
157 | - i3GEOF.carregakml.aguarde.visibility = "visible"; | |
158 | - i3GEO.Interface[i3GEO.Interface.ATUAL].adicionaKml(false,url,url,true); | |
159 | + temp = function(retorno){ | |
160 | + i3GEO.atualiza(); | |
161 | + }; | |
162 | + cp = new cpaint(); | |
163 | + cp.set_response_type("JSON"); | |
164 | + p = i3GEO.configura.locaplic+"/ferramentas/carregakml/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=crialayer&url="+url; | |
165 | + cp.call(p,"foo",temp); | |
159 | 166 | i3GEOF.carregakml.aguarde.visibility = "hidden"; |
160 | 167 | } |
161 | 168 | } | ... | ... |
ferramentas/conectarservicos/index.js
... | ... | @@ -154,7 +154,7 @@ i3GEOF.conectarservicos = |
154 | 154 | * Cria a janela flutuante para controle da ferramenta. |
155 | 155 | */ |
156 | 156 | iniciaJanelaFlutuante : function() { |
157 | - var minimiza, cabecalho, janela, divid, temp, titulo; | |
157 | + var minimiza, cabecalho, janela, divid, titulo; | |
158 | 158 | if($i("i3GEOF.conectarservicos")){ |
159 | 159 | return; |
160 | 160 | } | ... | ... |
ferramentas/mascara/index.js
... | ... | @@ -194,7 +194,7 @@ i3GEOF.mascara = { |
194 | 194 | + "&funcao=aplicar" |
195 | 195 | + "&tema=" + tema |
196 | 196 | + "&mascarar=" + mascarar.join(","); |
197 | - cp = new cpaint() | |
197 | + cp = new cpaint(); | |
198 | 198 | fim = function(retorno){ |
199 | 199 | i3GEO.Interface.atualizaMapa(); |
200 | 200 | i3GEOF.mascara.aguarde.visibility = "hidden"; | ... | ... |
js/interface.js
... | ... | @@ -728,7 +728,7 @@ i3GEO.Interface = |
728 | 728 | autoPanAnimation : { |
729 | 729 | duration : 250 |
730 | 730 | }, |
731 | - width : '200px', | |
731 | + minWidth : '200px', | |
732 | 732 | baloes : [] |
733 | 733 | }, |
734 | 734 | balao : function(texto, completo, x, y) { |
... | ... | @@ -748,7 +748,7 @@ i3GEO.Interface = |
748 | 748 | removeBaloes(); |
749 | 749 | } |
750 | 750 | painel = document.createElement("div"); |
751 | - painel.style.width = p.width; | |
751 | + painel.style.minWidth = p.minWidth; | |
752 | 752 | painel.className = "ol-popup"; |
753 | 753 | |
754 | 754 | cabecalho = document.createElement("div"); |
... | ... | @@ -972,7 +972,6 @@ i3GEO.Interface = |
972 | 972 | // insere a lista de layers de fundo |
973 | 973 | // |
974 | 974 | temp = $i("listaLayersBase"); |
975 | - // FIXME testar isso | |
976 | 975 | if (temp && i3GEO.arvoreDeCamadas.INCLUILFUNDO === false) { |
977 | 976 | // |
978 | 977 | // torna false a variavel que pode permitir que as camadas de fundo |
... | ... | @@ -1058,9 +1057,6 @@ i3GEO.Interface = |
1058 | 1057 | // verifica se nas preferencias existem ferramentas que devem ser |
1059 | 1058 | // abertas |
1060 | 1059 | i3GEO.configura.iniciaFerramentas.executa(); |
1061 | - | |
1062 | - // FIXME nao esta funcionando | |
1063 | - // i3GEO.Interface.openlayers.sobeLayersGraficos(); | |
1064 | 1060 | }, |
1065 | 1061 | /** |
1066 | 1062 | * Aplica um valor de opacidade aos layers do mapa |
... | ... | @@ -1217,68 +1213,48 @@ i3GEO.Interface = |
1217 | 1213 | insereLayerKml : function(id, url) { |
1218 | 1214 | var l, temp; |
1219 | 1215 | url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + url; |
1220 | - /* | |
1221 | - * eval(id + " = new OpenLayers.Layer.Vector('" + id + "', | |
1222 | - * {displayOutsideMaxExtent:true,displayInLayerSwitcher:false,visibility:true, strategies: [new | |
1223 | - * OpenLayers.Strategy.Fixed()],protocol: new OpenLayers.Protocol.HTTP({url: '" + url + "',format: new | |
1224 | - * OpenLayers.Format.KML({extractStyles: true,extractAttributes: true,maxDepth: 5})})})"); eval("i3geoOL.addLayer(" + id + | |
1225 | - * ");"); eval("temp = " + id + ".div;"); | |
1226 | - */ | |
1227 | - l = new OpenLayers.Layer.Vector(id, { | |
1228 | - displayOutsideMaxExtent : true, | |
1229 | - displayInLayerSwitcher : false, | |
1230 | - visibility : true, | |
1231 | - strategies : [ | |
1232 | - new OpenLayers.Strategy.Fixed() | |
1233 | - ], | |
1234 | - protocol : new OpenLayers.Protocol.HTTP({ | |
1216 | + l = new ol.layer.Vector({ | |
1217 | + title : url, | |
1218 | + name : id, | |
1219 | + isBaseLayer : false, | |
1220 | + source : new ol.source.Vector({ | |
1235 | 1221 | url : url, |
1236 | - format : new OpenLayers.Format.KML({ | |
1237 | - extractStyles : true, | |
1238 | - extractAttributes : true, | |
1239 | - maxDepth : 5 | |
1240 | - }) | |
1222 | + format : new ol.format.KML({ | |
1223 | + extractStyles : true | |
1224 | + }), | |
1225 | + tipoServico : "kml" | |
1241 | 1226 | }) |
1242 | 1227 | }); |
1243 | 1228 | i3geoOL.addLayer(l); |
1244 | - temp = l.div; | |
1245 | - temp.onclick = | |
1246 | - function(e) { | |
1247 | - var targ = "", id, temp, features, n, i, j = "", html = ""; | |
1248 | - if (!e) { | |
1249 | - e = window.event; | |
1250 | - } | |
1251 | - if (e.target) { | |
1252 | - targ = e.target; | |
1253 | - } else if (e.srcElement) { | |
1254 | - targ = e.srcElement; | |
1255 | - } | |
1256 | - if (targ.id) { | |
1257 | - temp = targ.id.split("_Point"); | |
1258 | - if (temp[0] === "OpenLayers_Geometry") { | |
1259 | - id = targ.id; | |
1260 | - temp = i3geoOL.getLayer(this.id); | |
1261 | - features = temp.features; | |
1262 | - n = features.length; | |
1263 | - for (i = 0; i < n; i++) { | |
1264 | - if (features[i].geometry.id === id) { | |
1265 | - for (j in features[i].attributes) { | |
1266 | - html += j + ": " + features[i].attributes[j]; | |
1267 | - } | |
1268 | - g = features[i].geometry; | |
1269 | - i3geoOL.addPopup(new OpenLayers.Popup.FramedCloud( | |
1270 | - "kml", | |
1271 | - new OpenLayers.LonLat(g.x, g.y), | |
1272 | - null, | |
1273 | - html, | |
1274 | - null, | |
1275 | - true)); | |
1229 | + temp = function(pixel) { | |
1230 | + var feature, chaves, c, i = 0, html = "", prop, g; | |
1276 | 1231 | |
1277 | - } | |
1278 | - } | |
1232 | + feature = i3geoOL.forEachFeatureAtPixel(pixel, function(feature, layer) { | |
1233 | + return feature; | |
1234 | + }); | |
1235 | + if (feature) { | |
1236 | + i3GEO.Interface.openlayers.BALAOPROP.removeAoAdicionar = false; | |
1237 | + i3GEO.Interface.openlayers.BALAOPROP.classeCadeado = "i3GEOiconeFechado"; | |
1238 | + chaves = feature.getKeys(); | |
1239 | + prop = feature.getProperties(); | |
1240 | + c = chaves.length; | |
1241 | + for (i = 0; i < c; i++) { | |
1242 | + if (chaves[i] != "geometry" && chaves[i] != "styleUrl") { | |
1243 | + html += chaves[i] + ": " + prop[chaves[i]]; | |
1279 | 1244 | } |
1280 | 1245 | } |
1281 | - }; | |
1246 | + g = feature.getGeometry().getCoordinates(); | |
1247 | + i3GEO.Interface.openlayers.balao(html, "", g[0], g[1], "kml"); | |
1248 | + } | |
1249 | + }; | |
1250 | + i3geoOL.on('click', function(evt) { | |
1251 | + evt.stopPropagation(); | |
1252 | + evt.preventDefault(); | |
1253 | + if (evt.dragging) { | |
1254 | + return; | |
1255 | + } | |
1256 | + temp(i3geoOL.getEventPixel(evt.originalEvent)); | |
1257 | + }); | |
1282 | 1258 | }, |
1283 | 1259 | ativaDesativaCamadaKml : function(obj, url) { |
1284 | 1260 | if (!obj.checked) { |
... | ... | @@ -1378,7 +1354,7 @@ i3GEO.Interface = |
1378 | 1354 | && camada.wmsurl !== "" |
1379 | 1355 | && camada.usasld.toLowerCase() != "sim") { |
1380 | 1356 | urllayer = camada.wmsurl; |
1381 | - if (camada.wmstile == 10){ | |
1357 | + if (camada.wmstile == 10) { | |
1382 | 1358 | // TODO testar isso |
1383 | 1359 | source = new ol.source.WMTS({ |
1384 | 1360 | url : urllayer, |
... | ... | @@ -1470,7 +1446,9 @@ i3GEO.Interface = |
1470 | 1446 | opcoes.name = camada.name; |
1471 | 1447 | } |
1472 | 1448 | source.set("name", camada.name); |
1473 | - source.set("parametrosUrl", {par : ""}); | |
1449 | + source.set("parametrosUrl", { | |
1450 | + par : "" | |
1451 | + }); | |
1474 | 1452 | opcoes.source = source; |
1475 | 1453 | opcoes.isBaseLayer = false; |
1476 | 1454 | opcoes.visible = true; |
... | ... | @@ -1571,15 +1549,15 @@ i3GEO.Interface = |
1571 | 1549 | param[parametro] = valor; |
1572 | 1550 | chaves = i3GEO.util.listaTodasChaves(param); |
1573 | 1551 | n = chaves.length; |
1574 | - for(j = 0; j < n; j++){ | |
1552 | + for (j = 0; j < n; j++) { | |
1575 | 1553 | k = chaves[j]; |
1576 | - if(param[k] != "" && k != "par"){ | |
1554 | + if (param[k] != "" && k != "par") { | |
1577 | 1555 | url += "&" + k + "=" + param[k]; |
1578 | 1556 | } |
1579 | 1557 | } |
1580 | 1558 | param.par = url; |
1581 | 1559 | console.info(url); |
1582 | - source.set("parametrosUrl",param); | |
1560 | + source.set("parametrosUrl", param); | |
1583 | 1561 | } |
1584 | 1562 | } |
1585 | 1563 | }, |
... | ... | @@ -1713,10 +1691,9 @@ i3GEO.Interface = |
1713 | 1691 | */ |
1714 | 1692 | atualizaTema : function(retorno, tema) { |
1715 | 1693 | var layer = i3geoOL.getLayersByName(tema), objtemas, funcaoLoad, servico, source; |
1716 | - if(layer.length == 0){ | |
1694 | + if (layer.length == 0) { | |
1717 | 1695 | return ""; |
1718 | - } | |
1719 | - else{ | |
1696 | + } else { | |
1720 | 1697 | layer = layer[0]; |
1721 | 1698 | } |
1722 | 1699 | if (layer && layer != undefined) { |
... | ... | @@ -1778,11 +1755,11 @@ i3GEO.Interface = |
1778 | 1755 | // |
1779 | 1756 | i3geoOL.on("pointerdrag", function(e) { |
1780 | 1757 | i3GEO.Interface.STATUS.pan = true; |
1781 | - var xy; | |
1758 | + //var xy; | |
1782 | 1759 | modoAtual = "move"; |
1783 | 1760 | i3GEO.barraDeBotoes.BOTAOCLICADO = "pan"; |
1784 | - xy = i3GEO.navega.centroDoMapa(); | |
1785 | - i3GEO.navega.marcaCentroDoMapa(xy); | |
1761 | + //xy = i3GEO.navega.centroDoMapa(); | |
1762 | + //i3GEO.navega.marcaCentroDoMapa(xy); | |
1786 | 1763 | }); |
1787 | 1764 | i3geoOL.on("click", function(e) { |
1788 | 1765 | e.stopPropagation(); |
... | ... | @@ -2594,10 +2571,10 @@ i3GEO.Interface = |
2594 | 2571 | i3GEOtouchesPosMapa = ""; |
2595 | 2572 | modoAtual = ""; |
2596 | 2573 | google.maps.event.addListener(i3GeoMap, "dragstart", function() { |
2597 | - var xy; | |
2574 | + //var xy; | |
2598 | 2575 | modoAtual = "move"; |
2599 | - xy = i3GEO.navega.centroDoMapa(); | |
2600 | - i3GEO.navega.marcaCentroDoMapa(xy); | |
2576 | + //xy = i3GEO.navega.centroDoMapa(); | |
2577 | + //i3GEO.navega.marcaCentroDoMapa(xy); | |
2601 | 2578 | i3GEO.eventos.cliquePerm.status = false; |
2602 | 2579 | }); |
2603 | 2580 | google.maps.event.addListener(i3GeoMap, "dragend", function() { | ... | ... |
js/mapa.js
... | ... | @@ -1389,7 +1389,12 @@ i3GEO.mapa = |
1389 | 1389 | return; |
1390 | 1390 | } |
1391 | 1391 | var ntemas, etiquetas, j, retorna, x = objposicaocursor.ddx, y = objposicaocursor.ddy; |
1392 | - | |
1392 | + if(x === -1 || y === -1){ | |
1393 | + return; | |
1394 | + } | |
1395 | + //para evitar duplo clique | |
1396 | + objposicaocursor.ddx = -1; | |
1397 | + objposicaocursor.ddy = -1; | |
1393 | 1398 | ntemas = i3GEO.arvoreDeCamadas.CAMADAS.length; |
1394 | 1399 | etiquetas = false; |
1395 | 1400 | for (j = 0; j < ntemas; j += 1) { | ... | ... |
js/plugini3geo.js
... | ... | @@ -894,66 +894,51 @@ i3GEO.pluginI3geo = |
894 | 894 | return []; |
895 | 895 | }, |
896 | 896 | inicia : function(camada, objMapa) { |
897 | - var layerkml; | |
897 | + var layerkml, url, temp; | |
898 | 898 | url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + camada.plugini3geo.parametros.url; |
899 | - layerkml = new OpenLayers.Layer.Vector(camada.name, { | |
900 | - displayOutsideMaxExtent : true, | |
901 | - displayInLayerSwitcher : false, | |
902 | - visibility : true, | |
903 | - strategies : [ | |
904 | - new OpenLayers.Strategy.Fixed() | |
905 | - ], | |
906 | - protocol : new OpenLayers.Protocol.HTTP({ | |
899 | + layerkml = new ol.layer.Vector({ | |
900 | + name : camada.name, | |
901 | + isBaseLayer : false, | |
902 | + source : new ol.source.Vector({ | |
907 | 903 | url : url, |
908 | - format : new OpenLayers.Format.KML({ | |
909 | - extractStyles : true, | |
910 | - extractAttributes : true, | |
911 | - maxDepth : 5 | |
912 | - }) | |
904 | + format : new ol.format.KML({ | |
905 | + extractStyles : true | |
906 | + }), | |
907 | + tipoServico : "kml" | |
913 | 908 | }) |
914 | 909 | }); |
915 | 910 | i3geoOL.addLayer(layerkml); |
916 | - | |
917 | 911 | if (!objMapa) { |
918 | 912 | objMapa = i3geoOL; |
919 | 913 | } |
920 | - layerkml.div.onclick = | |
921 | - function(e) { | |
922 | - var targ = "", id, temp, features, n, i, j = "", html = ""; | |
923 | - if (!e) { | |
924 | - e = window.event; | |
925 | - } | |
926 | - if (e.target) { | |
927 | - targ = e.target; | |
928 | - } else if (e.srcElement) { | |
929 | - targ = e.srcElement; | |
930 | - } | |
931 | - if (targ.id) { | |
932 | - temp = targ.id.split("_Point"); | |
933 | - if (temp[0] === "OpenLayers_Geometry") { | |
934 | - id = targ.id; | |
935 | - temp = i3geoOL.getLayer(this.id); | |
936 | - features = temp.features; | |
937 | - n = features.length; | |
938 | - for (i = 0; i < n; i++) { | |
939 | - if (features[i].geometry.id === id) { | |
940 | - for (j in features[i].attributes) { | |
941 | - html += j + ": " + features[i].attributes[j]; | |
942 | - } | |
943 | - g = features[i].geometry; | |
944 | - i3geoOL.addPopup(new OpenLayers.Popup.FramedCloud( | |
945 | - "kml", | |
946 | - new OpenLayers.LonLat(g.x, g.y), | |
947 | - null, | |
948 | - html, | |
949 | - null, | |
950 | - true)); | |
951 | - | |
952 | - } | |
953 | - } | |
914 | + temp = function(pixel) { | |
915 | + var feature, chaves, c, i = 0, html = "", prop, g; | |
916 | + feature = i3geoOL.forEachFeatureAtPixel(pixel, function(feature, layer) { | |
917 | + return feature; | |
918 | + }); | |
919 | + if (feature) { | |
920 | + i3GEO.Interface.openlayers.BALAOPROP.removeAoAdicionar = false; | |
921 | + i3GEO.Interface.openlayers.BALAOPROP.classeCadeado = "i3GEOiconeFechado"; | |
922 | + chaves = feature.getKeys(); | |
923 | + prop = feature.getProperties(); | |
924 | + c = chaves.length; | |
925 | + for (i = 0; i < c; i++) { | |
926 | + if (chaves[i] != "geometry" && chaves[i] != "styleUrl") { | |
927 | + html += chaves[i] + ": " + prop[chaves[i]]; | |
954 | 928 | } |
955 | 929 | } |
956 | - }; | |
930 | + g = feature.getGeometry().getCoordinates(); | |
931 | + i3GEO.Interface.openlayers.balao(html, "", g[0], g[1], "kml"); | |
932 | + } | |
933 | + }; | |
934 | + i3geoOL.on('click', function(evt) { | |
935 | + evt.stopPropagation(); | |
936 | + evt.preventDefault(); | |
937 | + if (evt.dragging) { | |
938 | + return; | |
939 | + } | |
940 | + temp(i3geoOL.getEventPixel(evt.originalEvent)); | |
941 | + }); | |
957 | 942 | |
958 | 943 | i3GEO.janela.fechaAguarde("aguardePlugin"); |
959 | 944 | i3GEO.eventos.cliquePerm.ativo = false; | ... | ... |
temas/_lmapakml.map
... | ... | @@ -2,7 +2,6 @@ MAP |
2 | 2 | FONTSET "../symbols/fontes.txt" |
3 | 3 | SYMBOLSET "../symbols/simbolosv6.sym" |
4 | 4 | LAYER |
5 | - | |
6 | 5 | METADATA |
7 | 6 | "CLASSE" "SIM" |
8 | 7 | "PLUGINI3GEO" '{"plugin":"layerkml","parametros":{"url":"http://dev.openlayers.org/examples/kml/sundials.kml"}}' |
... | ... | @@ -22,6 +21,4 @@ MAP |
22 | 21 | END # STYLE |
23 | 22 | END # CLASS |
24 | 23 | END # LAYER |
25 | - | |
26 | -END # MAP | |
27 | - | |
24 | +END # MAP | |
28 | 25 | \ No newline at end of file | ... | ... |