Commit 65744aed4b425e58cd65a56bf3433a453b34a475
1 parent
ec7a9d48
Exists in
master
Adaptacoes para Mapserver 7
Showing
18 changed files
with
7408 additions
and
2 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,314 @@ |
| 1 | +#Este mapfile e utilizado pelo i3geo na instalacao em servidores linux | |
| 2 | +#Toda vez que o i3geo e iniciado, esse mapfile e considerado como o mapa basico. | |
| 3 | +#Se vc quer alterar a aparência do mapa inicial, edite esse arquivo para refletir | |
| 4 | +#o mapa desejado. | |
| 5 | +# | |
| 6 | +#Se vc quer adicionar temas, dê preferência por editar o arquivo menutemas/menutemas.xml | |
| 7 | +#assim, as camadas ficam disponíveis no menu de adicao de temas do i3geo. Nao se esqueca | |
| 8 | +#de criar o arquivo mapfile no diretorio i3geo/temas (veja a documentacao no wiki da | |
| 9 | +#comunidade i3geo no Portal do Software Publico Brasileiro. | |
| 10 | +# | |
| 11 | +#Existem varios metadados que podem ser incluidos na definicao de cada LAYER e que sao especificos do i3geo, | |
| 12 | +#Esses metadados possibilitam coisas como mostrar ou nao a legenda de um tema no mapa, | |
| 13 | +#mostrar ou nao o tema na ferramenta de identificacao, etc. | |
| 14 | +#A lista completa de metadados vc pode obter no wiki da comunidade | |
| 15 | +# | |
| 16 | +MAP | |
| 17 | + # | |
| 18 | + #edite os caminhos caso a aplicacao esteja instalada em um local diferente do default | |
| 19 | + # | |
| 20 | + FONTSET "/var/www/i3geo/symbols/fontes.txt" | |
| 21 | + SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" | |
| 22 | + SHAPEPATH "/var/www/geodados" | |
| 23 | + IMAGECOLOR 104 171 195 | |
| 24 | + MAXSIZE 4096 | |
| 25 | + # | |
| 26 | + #Por default, o i3geo utiliza o tipo de imagem configurado em png2 | |
| 27 | + #Esse tipo nao e adequado para imagens raster, mas o i3geo muda automaticamente | |
| 28 | + #para png1 quando um arquivo raster e adicionado ao mapa | |
| 29 | + # | |
| 30 | + IMAGETYPE AGG_Q | |
| 31 | + #Brasil | |
| 32 | + #EXTENT -76.5125927 -39.3925675209 -29.5851853 9.49014852081 | |
| 33 | + EXTENT -140 -60 140 60 | |
| 34 | + SIZE 480 500 | |
| 35 | + STATUS ON | |
| 36 | + UNITS DD | |
| 37 | + NAME "GERAL" | |
| 38 | + DEBUG OFF | |
| 39 | + #CONFIG "MS_ERRORFILE" "/tmp/ms_tmp/ms_error.txt" | |
| 40 | + # | |
| 41 | + #utilize o agg apenas com mapserver 5x | |
| 42 | + | |
| 43 | + OUTPUTFORMAT | |
| 44 | + NAME 'AGG_Q' | |
| 45 | + DRIVER AGG/PNG | |
| 46 | + IMAGEMODE RGB | |
| 47 | + FORMATOPTION "QUANTIZE_FORCE=ON" | |
| 48 | + FORMATOPTION "QUANTIZE_DITHER=OFF" | |
| 49 | + FORMATOPTION "QUANTIZE_COLORS=256" | |
| 50 | + FORMATOPTION "INTERLACE=OFF" | |
| 51 | + END | |
| 52 | + | |
| 53 | + #OUTPUTFORMAT | |
| 54 | + # NAME svg | |
| 55 | + # MIMETYPE "image/svg+xml" | |
| 56 | + # DRIVER cairo/svg | |
| 57 | + ##FORMATOPTION "COMPRESSED_OUTPUT=TRUE" | |
| 58 | + ##FORMATOPTION "FULL_RESOLUTION=TRUE" | |
| 59 | + #END | |
| 60 | + | |
| 61 | + OUTPUTFORMAT | |
| 62 | + NAME jpeg | |
| 63 | + DRIVER "AGG/JPEG" | |
| 64 | + MIMETYPE "image/jpeg" | |
| 65 | + IMAGEMODE RGB | |
| 66 | + EXTENSION jpg | |
| 67 | + FORMATOPTION "INTERLACE=OFF" | |
| 68 | + END | |
| 69 | + | |
| 70 | + OUTPUTFORMAT | |
| 71 | + NAME png1 | |
| 72 | + MIMETYPE image/png | |
| 73 | + DRIVER AGG/PNG | |
| 74 | + EXTENSION png | |
| 75 | + IMAGEMODE RGB | |
| 76 | + TRANSPARENT FALSE | |
| 77 | + FORMATOPTION "INTERLACE=OFF" | |
| 78 | + END | |
| 79 | + | |
| 80 | + OUTPUTFORMAT | |
| 81 | + NAME png2 | |
| 82 | + MIMETYPE image/png | |
| 83 | + DRIVER AGG/PNG | |
| 84 | + EXTENSION png | |
| 85 | + IMAGEMODE PC256 | |
| 86 | + TRANSPARENT TRUE | |
| 87 | + FORMATOPTION "INTERLACE=OFF" | |
| 88 | + END | |
| 89 | + | |
| 90 | + | |
| 91 | + PROJECTION | |
| 92 | + "+proj=longlat +ellps=GRS67 +no_defs" | |
| 93 | + END | |
| 94 | + LEGEND | |
| 95 | + IMAGECOLOR 255 255 255 | |
| 96 | + KEYSIZE 12 10 | |
| 97 | + KEYSPACING 5 5 | |
| 98 | + LABEL | |
| 99 | + SIZE 7 | |
| 100 | + FONT "verdana" | |
| 101 | + TYPE truetype | |
| 102 | + BUFFER 0 | |
| 103 | + COLOR 0 0 0 | |
| 104 | + FORCE FALSE | |
| 105 | + MINDISTANCE -1 | |
| 106 | + MINFEATURESIZE -1 | |
| 107 | + OFFSET 0 -2 | |
| 108 | + PARTIALS TRUE | |
| 109 | + END | |
| 110 | + POSITION LL | |
| 111 | + STATUS off | |
| 112 | + #edite o caminho se a aplicacao for movida de lugar | |
| 113 | + #TEMPLATE "/var/www/i3geo/aplicmap/legenda.htm" | |
| 114 | + END | |
| 115 | + QUERYMAP | |
| 116 | + #OUTLINECOLOR 255 0 0 | |
| 117 | + COLOR 0 255 255 | |
| 118 | + SIZE 480 500 | |
| 119 | + STATUS on | |
| 120 | + STYLE hilite | |
| 121 | + END | |
| 122 | + REFERENCE | |
| 123 | + COLOR -1 -1 -1 | |
| 124 | + EXTENT -75.5728 -37.4751 -30.525 7.57273 | |
| 125 | + #-79.8713331401 -41.7736536401 -26.2264448599 11.8712346401 | |
| 126 | + #edite o caminho se a aplicacao for movida de lugar | |
| 127 | + IMAGE "/var/www/i3geo/imagens/referencia1.png" | |
| 128 | + OUTLINECOLOR -1 -1 -1 | |
| 129 | + SIZE 150 150 | |
| 130 | + STATUS off | |
| 131 | + MARKER "ref" | |
| 132 | + MARKERSIZE 8 | |
| 133 | + MINBOXSIZE 8 | |
| 134 | + MAXBOXSIZE 145 | |
| 135 | + END | |
| 136 | + SCALEBAR | |
| 137 | + BACKGROUNDCOLOR 200 200 200 | |
| 138 | + COLOR 0 0 0 | |
| 139 | + INTERVALS 5 | |
| 140 | + LABEL | |
| 141 | + SIZE TINY | |
| 142 | + TYPE BITMAP | |
| 143 | + BUFFER 0 | |
| 144 | + COLOR 0 0 0 | |
| 145 | + FORCE FALSE | |
| 146 | + MINDISTANCE -1 | |
| 147 | + MINFEATURESIZE -1 | |
| 148 | + OFFSET 0 0 | |
| 149 | + PARTIALS TRUE | |
| 150 | + END | |
| 151 | + POSITION LR | |
| 152 | + SIZE 200 2 | |
| 153 | + STATUS embed | |
| 154 | + STYLE 0 | |
| 155 | + TRANSPARENT FALSE | |
| 156 | + UNITS KILOMETERS | |
| 157 | + END | |
| 158 | + WEB | |
| 159 | + #edite o caminho se a aplicacao for movida de lugar | |
| 160 | + IMAGEPATH "/tmp/ms_tmp/" | |
| 161 | + IMAGEURL "/ms_tmp/" | |
| 162 | + TEMPLATE "" | |
| 163 | + END | |
| 164 | + LAYER | |
| 165 | + DATA "/var/www/i3geo/aplicmap/dados/mundo" | |
| 166 | + GROUP "mundo" | |
| 167 | + METADATA | |
| 168 | + "CLASSE" "SIM" #o simbolo sera mostrado na legenda | |
| 169 | + "ITENS" "FIPS_CNTRY,GMI_CNTRY,LONG_NAME,CNTRY_NAME" #itens que serao mostrados na opcao de identificacao | |
| 170 | + "ITENSDESC" "FIPS,GMI,Nome,Wikipedia" #descricao dos nomes dos itens | |
| 171 | + "ITENSLINK" ",,,http://pt.wikipedia.org/wiki/[CNTRY_NAME]" | |
| 172 | + "TEMA" "Países do mundo" #nome que sera mostrado na legenda | |
| 173 | + "TITULO" "Países do mundo" #nome alternativo que e mostrado nos combos para escolha do tema | |
| 174 | + "TIP" "FIPS_CNTRY,GMI_CNTRY,CNTRY_NAME" | |
| 175 | + "cache" "sim" | |
| 176 | + "itembuscarapida" "LONG_NAME" | |
| 177 | + END | |
| 178 | + NAME "mundo" | |
| 179 | + STATUS OFF | |
| 180 | + TEMPLATE "none.htm" | |
| 181 | + TYPE POLYGON | |
| 182 | + CLASS | |
| 183 | + NAME "" #vazio indica que nao sera incluido o nome ao lado do simbolo | |
| 184 | + STYLE | |
| 185 | + COLOR 230 230 230 | |
| 186 | + OUTLINECOLOR 255 255 255 | |
| 187 | + END | |
| 188 | + END | |
| 189 | + END | |
| 190 | + # | |
| 191 | + #para mostrar o mapa do Brasil, remova os comentarios | |
| 192 | + # | |
| 193 | + #LAYER | |
| 194 | + # DATA "/var/www/i3geo/aplicmap/dados/estados" | |
| 195 | + # METADATA | |
| 196 | + # "CLASSE" "SIM" | |
| 197 | + # "TEMA" "Brasil" | |
| 198 | + # "ESCALA" "250000" #escala utilizada nas marcas ao lado do tema na legenda | |
| 199 | + # "IDENTIFICA" "nao" | |
| 200 | + # "cache" "sim" | |
| 201 | + # "EXTENSAO" "-97.911949 -39.413578 -8.185829 9.511159" | |
| 202 | + # END | |
| 203 | + # NAME "estados" | |
| 204 | + # SIZEUNITS PIXELS | |
| 205 | + # STATUS DEFAULT | |
| 206 | + # TOLERANCE 0 | |
| 207 | + # TOLERANCEUNITS PIXELS | |
| 208 | + # TRANSPARENCY 100 | |
| 209 | + # TYPE POLYGON | |
| 210 | + # UNITS METERS | |
| 211 | + # CLASS | |
| 212 | + # NAME " " | |
| 213 | + # STYLE | |
| 214 | + # COLOR 232 220 201 | |
| 215 | + # MAXSIZE 100 | |
| 216 | + # MINSIZE 1 | |
| 217 | + # SIZE 1 | |
| 218 | + # SYMBOL 0 | |
| 219 | + # END | |
| 220 | + # END | |
| 221 | + #END | |
| 222 | + # | |
| 223 | + #para mostrar os limites estaduais do Brasil, remova os comentarios | |
| 224 | + # | |
| 225 | + #LAYER | |
| 226 | + # NAME estadosl # ok | |
| 227 | + # TYPE line | |
| 228 | + # STATUS DEFAULT | |
| 229 | + # DATA "/var/www/i3geo/aplicmap/dados/estados" | |
| 230 | + # TEMPLATE "estados.htm" | |
| 231 | + # METADATA | |
| 232 | + # ITENS "ESTADO" | |
| 233 | + # ITENSDESC "Estado" | |
| 234 | + # TEMA "Limite Estadual" | |
| 235 | + # ESCALA "250000" | |
| 236 | + # CLASSE "SIM" | |
| 237 | + # cache "sim" | |
| 238 | + # END | |
| 239 | + # CLASS | |
| 240 | + # NAME " " | |
| 241 | + # STYLE | |
| 242 | + # WIDTH 2 | |
| 243 | + # COLOR 255 255 0 | |
| 244 | + # OUTLINECOLOR -1 -1 -1 | |
| 245 | + # END | |
| 246 | + # STYLE | |
| 247 | + # COLOR 0 0 0 | |
| 248 | + # OUTLINECOLOR -1 -1 -1 | |
| 249 | + # END | |
| 250 | + # END # CLASS | |
| 251 | + #END # LAYER | |
| 252 | + | |
| 253 | + LAYER | |
| 254 | + METADATA | |
| 255 | + "TEMA" "NAO" | |
| 256 | + "ESCONDIDO" "SIM" | |
| 257 | + "cache" "nao" | |
| 258 | + END | |
| 259 | + NAME "copyright" | |
| 260 | + SIZEUNITS PIXELS | |
| 261 | + STATUS default | |
| 262 | + TOLERANCE 0 | |
| 263 | + TOLERANCEUNITS PIXELS | |
| 264 | + TRANSFORM FALSE | |
| 265 | + TYPE POINT | |
| 266 | + UNITS METERS | |
| 267 | + CLASS | |
| 268 | + LABEL | |
| 269 | + SIZE TINY | |
| 270 | + TYPE BITMAP | |
| 271 | + BUFFER 0 | |
| 272 | + COLOR 50 50 50 | |
| 273 | + FORCE FALSE | |
| 274 | + MINDISTANCE -1 | |
| 275 | + MINFEATURESIZE -1 | |
| 276 | + OFFSET 0 0 | |
| 277 | + PARTIALS TRUE | |
| 278 | + POSITION CC | |
| 279 | + END | |
| 280 | + END | |
| 281 | + FEATURE | |
| 282 | + POINTS | |
| 283 | + 10 5 | |
| 284 | + END | |
| 285 | + TEXT "- i3Geo" | |
| 286 | + END | |
| 287 | + END | |
| 288 | + | |
| 289 | + LAYER | |
| 290 | + METADATA | |
| 291 | + "TEMA" "Rosa dos ventos" | |
| 292 | + "IDENTIFICA" "nao" | |
| 293 | + "TABELA" "nao" | |
| 294 | + "CLASSE" "NAO" | |
| 295 | + END | |
| 296 | + NAME "rosadosventos" | |
| 297 | + SIZEUNITS PIXELS | |
| 298 | + STATUS OFF | |
| 299 | + TOLERANCE 0 | |
| 300 | + TOLERANCEUNITS PIXELS | |
| 301 | + TRANSFORM lr | |
| 302 | + TYPE POINT | |
| 303 | + UNITS pixels | |
| 304 | + CLASS | |
| 305 | + SYMBOL 'rosa200' | |
| 306 | + SIZE 90 | |
| 307 | + END | |
| 308 | + FEATURE | |
| 309 | + POINTS | |
| 310 | + -70 -70 | |
| 311 | + END | |
| 312 | + END | |
| 313 | + END | |
| 314 | +END | ... | ... |
| ... | ... | @@ -0,0 +1,314 @@ |
| 1 | +#Este mapfile e utilizado pelo i3geo na instalacao em servidores linux | |
| 2 | +#Toda vez que o i3geo e iniciado, esse mapfile e considerado como o mapa basico. | |
| 3 | +#Se vc quer alterar a aparência do mapa inicial, edite esse arquivo para refletir | |
| 4 | +#o mapa desejado. | |
| 5 | +# | |
| 6 | +#Se vc quer adicionar temas, dê preferência por editar o arquivo menutemas/menutemas.xml | |
| 7 | +#assim, as camadas ficam disponíveis no menu de adicao de temas do i3geo. Nao se esqueca | |
| 8 | +#de criar o arquivo mapfile no diretorio i3geo/temas (veja a documentacao no wiki da | |
| 9 | +#comunidade i3geo no Portal do Software Publico Brasileiro. | |
| 10 | +# | |
| 11 | +#Existem varios metadados que podem ser incluidos na definicao de cada LAYER e que sao especificos do i3geo, | |
| 12 | +#Esses metadados possibilitam coisas como mostrar ou nao a legenda de um tema no mapa, | |
| 13 | +#mostrar ou nao o tema na ferramenta de identificacao, etc. | |
| 14 | +#A lista completa de metadados vc pode obter no wiki da comunidade | |
| 15 | +# | |
| 16 | +MAP | |
| 17 | + # | |
| 18 | + #edite os caminhos caso a aplicacao esteja instalada em um local diferente do default | |
| 19 | + # | |
| 20 | + FONTSET "/var/www/html/i3geo/symbols/fontes.txt" | |
| 21 | + SYMBOLSET "/var/www/html/i3geo/symbols/simbolosv6.sym" | |
| 22 | + SHAPEPATH "/var/www/html/geodados" | |
| 23 | + IMAGECOLOR 104 171 195 | |
| 24 | + MAXSIZE 4096 | |
| 25 | + # | |
| 26 | + #Por default, o i3geo utiliza o tipo de imagem configurado em png2 | |
| 27 | + #Esse tipo nao e adequado para imagens raster, mas o i3geo muda automaticamente | |
| 28 | + #para png1 quando um arquivo raster e adicionado ao mapa | |
| 29 | + # | |
| 30 | + IMAGETYPE AGG_Q | |
| 31 | + #Brasil | |
| 32 | + #EXTENT -76.5125927 -39.3925675209 -29.5851853 9.49014852081 | |
| 33 | + EXTENT -160 -70 160 70 | |
| 34 | + SIZE 480 500 | |
| 35 | + STATUS ON | |
| 36 | + UNITS DD | |
| 37 | + NAME "GERAL" | |
| 38 | + DEBUG OFF | |
| 39 | + #CONFIG "MS_ERRORFILE" "/tmp/ms_tmp/ms_error.txt" | |
| 40 | + # | |
| 41 | + #utilize o agg apenas com mapserver 5x | |
| 42 | + | |
| 43 | + OUTPUTFORMAT | |
| 44 | + NAME 'AGG_Q' | |
| 45 | + DRIVER AGG/PNG | |
| 46 | + IMAGEMODE RGB | |
| 47 | + FORMATOPTION "QUANTIZE_FORCE=ON" | |
| 48 | + FORMATOPTION "QUANTIZE_DITHER=OFF" | |
| 49 | + FORMATOPTION "QUANTIZE_COLORS=256" | |
| 50 | + FORMATOPTION "INTERLACE=OFF" | |
| 51 | + END | |
| 52 | + | |
| 53 | + #OUTPUTFORMAT | |
| 54 | + # NAME svg | |
| 55 | + # MIMETYPE "image/svg+xml" | |
| 56 | + # DRIVER cairo/svg | |
| 57 | + # #FORMATOPTION "COMPRESSED_OUTPUT=TRUE" | |
| 58 | + # #FORMATOPTION "FULL_RESOLUTION=TRUE" | |
| 59 | + #END | |
| 60 | + | |
| 61 | + OUTPUTFORMAT | |
| 62 | + NAME jpeg | |
| 63 | + DRIVER "AGG/JPEG" | |
| 64 | + MIMETYPE "image/jpeg" | |
| 65 | + IMAGEMODE RGB | |
| 66 | + EXTENSION jpg | |
| 67 | + FORMATOPTION "INTERLACE=OFF" | |
| 68 | + END | |
| 69 | + | |
| 70 | + OUTPUTFORMAT | |
| 71 | + NAME png1 | |
| 72 | + MIMETYPE image/png | |
| 73 | + DRIVER AGG/PNG | |
| 74 | + EXTENSION png | |
| 75 | + IMAGEMODE RGB | |
| 76 | + TRANSPARENT FALSE | |
| 77 | + FORMATOPTION "INTERLACE=OFF" | |
| 78 | + END | |
| 79 | + | |
| 80 | + OUTPUTFORMAT | |
| 81 | + NAME png2 | |
| 82 | + MIMETYPE image/png | |
| 83 | + DRIVER AGG/PNG | |
| 84 | + EXTENSION png | |
| 85 | + IMAGEMODE PC256 | |
| 86 | + TRANSPARENT TRUE | |
| 87 | + FORMATOPTION "INTERLACE=OFF" | |
| 88 | + END | |
| 89 | + | |
| 90 | + | |
| 91 | + PROJECTION | |
| 92 | + "+proj=longlat +ellps=GRS67 +no_defs" | |
| 93 | + END | |
| 94 | + LEGEND | |
| 95 | + IMAGECOLOR 255 255 255 | |
| 96 | + KEYSIZE 12 10 | |
| 97 | + KEYSPACING 5 5 | |
| 98 | + LABEL | |
| 99 | + SIZE 7 | |
| 100 | + FONT "verdana" | |
| 101 | + TYPE truetype | |
| 102 | + BUFFER 0 | |
| 103 | + COLOR 0 0 0 | |
| 104 | + FORCE FALSE | |
| 105 | + MINDISTANCE -1 | |
| 106 | + MINFEATURESIZE -1 | |
| 107 | + OFFSET 0 -2 | |
| 108 | + PARTIALS TRUE | |
| 109 | + END | |
| 110 | + POSITION LL | |
| 111 | + STATUS off | |
| 112 | + #edite o caminho se a aplicacao for movida de lugar | |
| 113 | + #TEMPLATE "/var/www/html/i3geo/aplicmap/legenda.htm" | |
| 114 | + END | |
| 115 | + QUERYMAP | |
| 116 | + #OUTLINECOLOR 255 0 0 | |
| 117 | + COLOR 0 255 255 | |
| 118 | + SIZE 480 500 | |
| 119 | + STATUS on | |
| 120 | + STYLE hilite | |
| 121 | + END | |
| 122 | + REFERENCE | |
| 123 | + COLOR -1 -1 -1 | |
| 124 | + EXTENT -75.5728 -37.4751 -30.525 7.57273 | |
| 125 | + #-79.8713331401 -41.7736536401 -26.2264448599 11.8712346401 | |
| 126 | + #edite o caminho se a aplicacao for movida de lugar | |
| 127 | + IMAGE "/var/www/html/i3geo/imagens/referencia1.png" | |
| 128 | + OUTLINECOLOR -1 -1 -1 | |
| 129 | + SIZE 150 150 | |
| 130 | + STATUS off | |
| 131 | + MARKER "ref" | |
| 132 | + MARKERSIZE 8 | |
| 133 | + MINBOXSIZE 8 | |
| 134 | + MAXBOXSIZE 145 | |
| 135 | + END | |
| 136 | + SCALEBAR | |
| 137 | + BACKGROUNDCOLOR 200 200 200 | |
| 138 | + COLOR 0 0 0 | |
| 139 | + INTERVALS 5 | |
| 140 | + LABEL | |
| 141 | + SIZE TINY | |
| 142 | + TYPE BITMAP | |
| 143 | + BUFFER 0 | |
| 144 | + COLOR 0 0 0 | |
| 145 | + FORCE FALSE | |
| 146 | + MINDISTANCE -1 | |
| 147 | + MINFEATURESIZE -1 | |
| 148 | + OFFSET 0 0 | |
| 149 | + PARTIALS TRUE | |
| 150 | + END | |
| 151 | + POSITION LR | |
| 152 | + SIZE 200 2 | |
| 153 | + STATUS embed | |
| 154 | + STYLE 1 | |
| 155 | + TRANSPARENT FALSE | |
| 156 | + UNITS KILOMETERS | |
| 157 | + END | |
| 158 | + WEB | |
| 159 | + #edite o caminho se a aplicacao for movida de lugar | |
| 160 | + IMAGEPATH "/tmp/ms_tmp/" | |
| 161 | + IMAGEURL "/ms_tmp/" | |
| 162 | + TEMPLATE "" | |
| 163 | + END | |
| 164 | + LAYER | |
| 165 | + DATA "/var/www/html/i3geo/aplicmap/dados/mundo" | |
| 166 | + GROUP "mundo" | |
| 167 | + METADATA | |
| 168 | + "CLASSE" "SIM" #o simbolo sera mostrado na legenda | |
| 169 | + "ITENS" "FIPS_CNTRY,GMI_CNTRY,LONG_NAME,CNTRY_NAME" #itens que serao mostrados na opcao de identificacao | |
| 170 | + "ITENSDESC" "FIPS,GMI,Nome,Wikipedia" #descricao dos nomes dos itens | |
| 171 | + "ITENSLINK" ",,,http://pt.wikipedia.org/wiki/[CNTRY_NAME]" | |
| 172 | + "TEMA" "Países do mundo" #nome que sera mostrado na legenda | |
| 173 | + "TITULO" "Países do mundo" #nome alternativo que e mostrado nos combos para escolha do tema | |
| 174 | + "TIP" "FIPS_CNTRY,GMI_CNTRY,CNTRY_NAME" | |
| 175 | + "cache" "sim" | |
| 176 | + "itembuscarapida" "LONG_NAME" | |
| 177 | + END | |
| 178 | + NAME "mundo" | |
| 179 | + STATUS OFF | |
| 180 | + TEMPLATE "none.htm" | |
| 181 | + TYPE POLYGON | |
| 182 | + UNITS METERS | |
| 183 | + CLASS | |
| 184 | + NAME "" #vazio indica que nao sera incluido o nome ao lado do simbolo | |
| 185 | + STYLE | |
| 186 | + COLOR 230 230 230 | |
| 187 | + OUTLINECOLOR 255 255 255 | |
| 188 | + END | |
| 189 | + END | |
| 190 | + END | |
| 191 | + # | |
| 192 | + #para mostrar o mapa do Brasil, remova os comentarios | |
| 193 | + # | |
| 194 | + #LAYER | |
| 195 | + # DATA "/var/www/html/i3geo/aplicmap/dados/estados" | |
| 196 | + # METADATA | |
| 197 | + # "CLASSE" "SIM" | |
| 198 | + # "TEMA" "Brasil" | |
| 199 | + # "ESCALA" "250000" #escala utilizada nas marcas ao lado do tema na legenda | |
| 200 | + # "IDENTIFICA" "nao" | |
| 201 | + # "cache" "sim" | |
| 202 | + # "EXTENSAO" "-97.911949 -39.413578 -8.185829 9.511159" | |
| 203 | + # END | |
| 204 | + # NAME "estados" | |
| 205 | + # SIZEUNITS PIXELS | |
| 206 | + # STATUS DEFAULT | |
| 207 | + # TOLERANCE 0 | |
| 208 | + # TOLERANCEUNITS PIXELS | |
| 209 | + # TRANSPARENCY 100 | |
| 210 | + # TYPE POLYGON | |
| 211 | + # UNITS METERS | |
| 212 | + # CLASS | |
| 213 | + # NAME " " | |
| 214 | + # STYLE | |
| 215 | + # COLOR 232 220 201 | |
| 216 | + # MAXSIZE 100 | |
| 217 | + # MINSIZE 1 | |
| 218 | + # SIZE 1 | |
| 219 | + # SYMBOL 0 | |
| 220 | + # END | |
| 221 | + # END | |
| 222 | + #END | |
| 223 | + # | |
| 224 | + #para mostrar os limites estaduais do Brasil, remova os comentarios | |
| 225 | + # | |
| 226 | + #LAYER | |
| 227 | + # NAME estadosl # ok | |
| 228 | + # TYPE line | |
| 229 | + # STATUS DEFAULT | |
| 230 | + # DATA "/var/www/html/i3geo/aplicmap/dados/estados" | |
| 231 | + # TEMPLATE "estados.htm" | |
| 232 | + # METADATA | |
| 233 | + # ITENS "ESTADO" | |
| 234 | + # ITENSDESC "Estado" | |
| 235 | + # TEMA "Limite Estadual" | |
| 236 | + # ESCALA "250000" | |
| 237 | + # CLASSE "SIM" | |
| 238 | + # cache "sim" | |
| 239 | + # END | |
| 240 | + # CLASS | |
| 241 | + # NAME " " | |
| 242 | + # STYLE | |
| 243 | + # WIDTH 2 | |
| 244 | + # COLOR 255 255 0 | |
| 245 | + # OUTLINECOLOR -1 -1 -1 | |
| 246 | + # END | |
| 247 | + # STYLE | |
| 248 | + # COLOR 0 0 0 | |
| 249 | + # OUTLINECOLOR -1 -1 -1 | |
| 250 | + # END | |
| 251 | + # END # CLASS | |
| 252 | + #END # LAYER | |
| 253 | + | |
| 254 | + LAYER | |
| 255 | + METADATA | |
| 256 | + #"TEMA" "NAO" | |
| 257 | + "ESCONDIDO" "SIM" | |
| 258 | + "cache" "sim" | |
| 259 | + END | |
| 260 | + NAME "copyright" | |
| 261 | + SIZEUNITS PIXELS | |
| 262 | + STATUS default | |
| 263 | + TOLERANCE 0 | |
| 264 | + TOLERANCEUNITS PIXELS | |
| 265 | + TRANSFORM FALSE | |
| 266 | + TYPE POINT | |
| 267 | + UNITS METERS | |
| 268 | + CLASS | |
| 269 | + LABEL | |
| 270 | + SIZE TINY | |
| 271 | + TYPE BITMAP | |
| 272 | + BUFFER 0 | |
| 273 | + COLOR 50 50 50 | |
| 274 | + FORCE FALSE | |
| 275 | + MINDISTANCE -1 | |
| 276 | + MINFEATURESIZE -1 | |
| 277 | + OFFSET 0 0 | |
| 278 | + PARTIALS TRUE | |
| 279 | + POSITION CC | |
| 280 | + END | |
| 281 | + END | |
| 282 | + FEATURE | |
| 283 | + POINTS | |
| 284 | + 10 5 | |
| 285 | + END | |
| 286 | + TEXT "- i3Geo" | |
| 287 | + END | |
| 288 | + END | |
| 289 | + LAYER | |
| 290 | + METADATA | |
| 291 | + "TEMA" "Rosa dos ventos" | |
| 292 | + "IDENTIFICA" "nao" | |
| 293 | + "TABELA" "nao" | |
| 294 | + "CLASSE" "NAO" | |
| 295 | + END | |
| 296 | + NAME "rosadosventos" | |
| 297 | + SIZEUNITS PIXELS | |
| 298 | + STATUS OFF | |
| 299 | + TOLERANCE 0 | |
| 300 | + TOLERANCEUNITS PIXELS | |
| 301 | + TRANSFORM lr | |
| 302 | + TYPE POINT | |
| 303 | + UNITS pixels | |
| 304 | + CLASS | |
| 305 | + SYMBOL 'rosa200' | |
| 306 | + SIZE 90 | |
| 307 | + END | |
| 308 | + FEATURE | |
| 309 | + POINTS | |
| 310 | + -70 -70 | |
| 311 | + END | |
| 312 | + END | |
| 313 | + END | |
| 314 | +END | ... | ... |
| ... | ... | @@ -0,0 +1,308 @@ |
| 1 | +#Este mapfile e utilizado pelo i3geo na instalacao em servidores linux | |
| 2 | +#Toda vez que o i3geo e iniciado, esse mapfile e considerado como o mapa basico. | |
| 3 | +#Se vc quer alterar a aparência do mapa inicial, edite esse arquivo para refletir | |
| 4 | +#o mapa desejado. | |
| 5 | +# | |
| 6 | +#Se vc quer adicionar temas, dê preferência por editar o arquivo menutemas/menutemas.xml | |
| 7 | +#assim, as camadas ficam disponíveis no menu de adicao de temas do i3geo. Nao se esqueca | |
| 8 | +#de criar o arquivo mapfile no diretorio i3geo/temas (veja a documentacao no wiki da | |
| 9 | +#comunidade i3geo no Portal do Software Publico Brasileiro. | |
| 10 | +# | |
| 11 | +#Existem varios metadados que podem ser incluidos na definicao de cada LAYER e que sao especificos do i3geo, | |
| 12 | +#Esses metadados possibilitam coisas como mostrar ou nao a legenda de um tema no mapa, | |
| 13 | +#mostrar ou nao o tema na ferramenta de identificacao, etc. | |
| 14 | +#A lista completa de metadados vc pode obter no wiki da comunidade | |
| 15 | +# | |
| 16 | +MAP | |
| 17 | + # | |
| 18 | + #edite os caminhos caso a aplicacao esteja instalada em um local diferente do default | |
| 19 | + # | |
| 20 | + FONTSET "c:\ms4w\apache\htdocs\i3geo\symbols\fontes.txt" | |
| 21 | + SYMBOLSET "c:\ms4w\apache\htdocs\i3geo\symbols\simbolosv6.sym" | |
| 22 | + DEBUG OFF | |
| 23 | + MAXSIZE 4096 | |
| 24 | + #DEBUG 5 | |
| 25 | + #CONFIG "MS_ERRORFILE" "c:\ms4w\tmp\ms_error.txt" | |
| 26 | + | |
| 27 | + SHAPEPATH "c:\ms4w\apache\htdocs\geodados" | |
| 28 | + IMAGECOLOR 104 171 195 | |
| 29 | + IMAGETYPE AGG_Q | |
| 30 | + #Brasil | |
| 31 | + #EXTENT -76.5125927 -39.3925675209 -29.5851853 9.49014852081 | |
| 32 | + EXTENT -140 -60 140 60 | |
| 33 | + SIZE 480 500 | |
| 34 | + STATUS ON | |
| 35 | + UNITS DD | |
| 36 | + NAME "GERAL" | |
| 37 | + | |
| 38 | + OUTPUTFORMAT | |
| 39 | + NAME 'AGG_Q' | |
| 40 | + DRIVER AGG/PNG | |
| 41 | + IMAGEMODE RGB | |
| 42 | + FORMATOPTION "QUANTIZE_FORCE=ON" | |
| 43 | + FORMATOPTION "QUANTIZE_DITHER=OFF" | |
| 44 | + FORMATOPTION "QUANTIZE_COLORS=256" | |
| 45 | + FORMATOPTION "INTERLACE=OFF" | |
| 46 | + END | |
| 47 | + | |
| 48 | + OUTPUTFORMAT | |
| 49 | + NAME svg | |
| 50 | + MIMETYPE "image/svg+xml" | |
| 51 | + DRIVER cairo/svg | |
| 52 | + IMAGEMODE RGB | |
| 53 | + #FORMATOPTION "COMPRESSED_OUTPUT=TRUE" | |
| 54 | + #FORMATOPTION "FULL_RESOLUTION=TRUE" | |
| 55 | + END | |
| 56 | + OUTPUTFORMAT | |
| 57 | + NAME jpeg | |
| 58 | + DRIVER "AGG/JPEG" | |
| 59 | + #MIMETYPE "image/jpeg" | |
| 60 | + IMAGEMODE RGB | |
| 61 | + EXTENSION jpg | |
| 62 | + FORMATOPTION "INTERLACE=OFF" | |
| 63 | + END | |
| 64 | + | |
| 65 | + OUTPUTFORMAT | |
| 66 | + NAME png1 | |
| 67 | + MIMETYPE image/png | |
| 68 | + DRIVER AGG/PNG | |
| 69 | + EXTENSION png | |
| 70 | + IMAGEMODE RGBA | |
| 71 | + TRANSPARENT FALSE | |
| 72 | + FORMATOPTION "INTERLACE=OFF" | |
| 73 | + END | |
| 74 | + | |
| 75 | + OUTPUTFORMAT | |
| 76 | + NAME png2 | |
| 77 | + MIMETYPE image/png | |
| 78 | + DRIVER AGG/PNG | |
| 79 | + EXTENSION png | |
| 80 | + IMAGEMODE PC256 | |
| 81 | + TRANSPARENT TRUE | |
| 82 | + FORMATOPTION "INTERLACE=OFF" | |
| 83 | + END | |
| 84 | + | |
| 85 | + PROJECTION | |
| 86 | + "+proj=longlat +ellps=GRS67 +no_defs" | |
| 87 | + END | |
| 88 | + LEGEND | |
| 89 | + IMAGECOLOR 255 255 255 | |
| 90 | + KEYSIZE 12 10 | |
| 91 | + KEYSPACING 5 5 | |
| 92 | + LABEL | |
| 93 | + SIZE 7 | |
| 94 | + FONT "verdana" | |
| 95 | + TYPE truetype | |
| 96 | + BUFFER 0 | |
| 97 | + COLOR 0 0 0 | |
| 98 | + FORCE FALSE | |
| 99 | + MINDISTANCE -1 | |
| 100 | + MINFEATURESIZE -1 | |
| 101 | + OFFSET 0 -2 | |
| 102 | + PARTIALS TRUE | |
| 103 | + END | |
| 104 | + POSITION LL | |
| 105 | + STATUS OFF | |
| 106 | + #edite o caminho se a aplicacao for movida de lugar | |
| 107 | + #TEMPLATE "c:\ms4w\apache\htdocs\i3geo/aplicmap/legenda.htm" | |
| 108 | + END | |
| 109 | + QUERYMAP | |
| 110 | + #OUTLINECOLOR 255 0 0 | |
| 111 | + COLOR 0 255 255 | |
| 112 | + SIZE 480 500 | |
| 113 | + STATUS on | |
| 114 | + STYLE hilite | |
| 115 | + END | |
| 116 | + REFERENCE | |
| 117 | + COLOR -1 -1 -1 | |
| 118 | + EXTENT -75.5728 -37.4751 -30.525 7.57273#-79.8713331401 -41.7736536401 -26.2264448599 11.8712346401 | |
| 119 | + #edite o caminho se a aplicacao for movida de lugar | |
| 120 | + IMAGE "c:/ms4w/apache/htdocs/i3geo/imagens/referencia1.png" | |
| 121 | + OUTLINECOLOR -1 -1 -1 | |
| 122 | + SIZE 150 150 | |
| 123 | + STATUS off | |
| 124 | + MARKER "ref" | |
| 125 | + MARKERSIZE 8 | |
| 126 | + MINBOXSIZE 8 | |
| 127 | + MAXBOXSIZE 145 | |
| 128 | + END | |
| 129 | + SCALEBAR | |
| 130 | + BACKGROUNDCOLOR 200 200 200 | |
| 131 | + COLOR 0 0 0 | |
| 132 | + INTERVALS 5 | |
| 133 | + LABEL | |
| 134 | + SIZE TINY | |
| 135 | + TYPE BITMAP | |
| 136 | + BUFFER 0 | |
| 137 | + COLOR 0 0 0 | |
| 138 | + FORCE FALSE | |
| 139 | + MINDISTANCE -1 | |
| 140 | + MINFEATURESIZE -1 | |
| 141 | + OFFSET 0 0 | |
| 142 | + PARTIALS TRUE | |
| 143 | + END | |
| 144 | + POSITION LR | |
| 145 | + SIZE 200 2 | |
| 146 | + STATUS embed | |
| 147 | + STYLE 1 | |
| 148 | + TRANSPARENT FALSE | |
| 149 | + UNITS KILOMETERS | |
| 150 | + END | |
| 151 | + WEB | |
| 152 | + #edite o caminho se a aplicacao for movida de lugar | |
| 153 | + IMAGEPATH "c:/ms4w/tmp/ms_tmp/" | |
| 154 | + IMAGEURL "/ms_tmp/" | |
| 155 | + TEMPLATE "" | |
| 156 | + END | |
| 157 | + LAYER | |
| 158 | + DATA "c:\ms4w\apache\htdocs\i3geo/aplicmap/dados/mundo" | |
| 159 | + METADATA | |
| 160 | + "CLASSE" "SIM" #o simbolo sera mostrado na legenda | |
| 161 | + "ITENS" "FIPS_CNTRY,GMI_CNTRY,LONG_NAME,CNTRY_NAME" #itens que serao mostrados na opcao de identificacao | |
| 162 | + "ITENSDESC" "FIPS,GMI,Nome,Wikipedia" #descricao dos nomes dos itens | |
| 163 | + "ITENSLINK" ",,,http://pt.wikipedia.org/wiki/[CNTRY_NAME]" | |
| 164 | + "TEMA" "Países do mundo" #nome que sera mostrado na legenda | |
| 165 | + "TITULO" "Países do mundo" #nome alternativo que e mostrado nos combos para escolha do tema | |
| 166 | + "TIP" "FIPS_CNTRY,GMI_CNTRY,CNTRY_NAME" | |
| 167 | + #"ESCONDIDO" "sim" | |
| 168 | + "cache" "sim" | |
| 169 | + "itembuscarapida" "LONG_NAME" | |
| 170 | + END | |
| 171 | + NAME "mundo" | |
| 172 | + STATUS OFF | |
| 173 | + TEMPLATE "none.htm" | |
| 174 | + TYPE POLYGON | |
| 175 | + CLASS | |
| 176 | + NAME " " #vazio indica que nao sera incluido o nome ao lado do simbolo | |
| 177 | + STYLE | |
| 178 | + COLOR 230 230 230 | |
| 179 | + OUTLINECOLOR 255 255 255 | |
| 180 | + END | |
| 181 | + END | |
| 182 | + END | |
| 183 | + # | |
| 184 | + #para mostrar o mapa do Brasil, remova os comentarios | |
| 185 | + # | |
| 186 | + #LAYER | |
| 187 | + # DATA "c:\ms4w\apache\htdocs\i3geo/aplicmap/dados/estados" | |
| 188 | + # METADATA | |
| 189 | + # "CLASSE" "SIM" | |
| 190 | + # "TEMA" "Brasil" | |
| 191 | + # "ESCALA" "250000" #escala utilizada nas marcas ao lado do tema na legenda | |
| 192 | + # "IDENTIFICA" "nao" | |
| 193 | + # "cache" "sim" | |
| 194 | + # "EXTENSAO" "-97.911949 -39.413578 -8.185829 9.511159" | |
| 195 | + # END | |
| 196 | + # NAME "estados" | |
| 197 | + # SIZEUNITS PIXELS | |
| 198 | + # STATUS DEFAULT | |
| 199 | + # TOLERANCE 0 | |
| 200 | + # TOLERANCEUNITS PIXELS | |
| 201 | + # TRANSPARENCY 100 | |
| 202 | + # TYPE POLYGON | |
| 203 | + # UNITS METERS | |
| 204 | + # CLASS | |
| 205 | + # NAME " " | |
| 206 | + # STYLE | |
| 207 | + # COLOR 232 220 201 | |
| 208 | + # MAXSIZE 100 | |
| 209 | + # MINSIZE 1 | |
| 210 | + # SIZE 1 | |
| 211 | + # SYMBOL 0 | |
| 212 | + # END | |
| 213 | + # END | |
| 214 | + #END | |
| 215 | + # | |
| 216 | + #para mostrar os limites estaduais do Brasil, remova os comentarios | |
| 217 | + # | |
| 218 | + #LAYER | |
| 219 | + # NAME estadosl # ok | |
| 220 | + # TYPE line | |
| 221 | + # STATUS DEFAULT | |
| 222 | + # DATA "c:/ms4w/apache/htdocs/i3geo/aplicmap/dados/estados.shp" | |
| 223 | + # TEMPLATE "estados.htm" | |
| 224 | + # METADATA | |
| 225 | + # ITENS "ESTADO" | |
| 226 | + # ITENSDESC "Estado" | |
| 227 | + # TEMA "Limite Estadual" | |
| 228 | + # ESCALA "250000" | |
| 229 | + # CLASSE "SIM" | |
| 230 | + # cache "sim" | |
| 231 | + # END | |
| 232 | + # CLASS | |
| 233 | + # NAME " " | |
| 234 | + # STYLE | |
| 235 | + # WIDTH 2 | |
| 236 | + # COLOR 255 255 0 | |
| 237 | + # OUTLINECOLOR -1 -1 -1 | |
| 238 | + # END | |
| 239 | + # STYLE | |
| 240 | + # COLOR 0 0 0 | |
| 241 | + # OUTLINECOLOR -1 -1 -1 | |
| 242 | + # END | |
| 243 | + # END # CLASS | |
| 244 | + #END # LAYER | |
| 245 | + | |
| 246 | + LAYER | |
| 247 | + METADATA | |
| 248 | + #"TEMA" "NAO" | |
| 249 | + "ESCONDIDO" "SIM" | |
| 250 | + "cache" "sim" | |
| 251 | + END | |
| 252 | + NAME "copyright" | |
| 253 | + SIZEUNITS PIXELS | |
| 254 | + STATUS DEFAULT | |
| 255 | + TOLERANCE 0 | |
| 256 | + TOLERANCEUNITS PIXELS | |
| 257 | + TRANSFORM FALSE | |
| 258 | + TYPE POINT | |
| 259 | + UNITS METERS | |
| 260 | + CLASS | |
| 261 | + LABEL | |
| 262 | + SIZE TINY | |
| 263 | + TYPE BITMAP | |
| 264 | + BUFFER 0 | |
| 265 | + COLOR 50 50 50 | |
| 266 | + FORCE FALSE | |
| 267 | + MINDISTANCE -1 | |
| 268 | + MINFEATURESIZE -1 | |
| 269 | + OFFSET 0 0 | |
| 270 | + PARTIALS TRUE | |
| 271 | + POSITION CC | |
| 272 | + END | |
| 273 | + END | |
| 274 | + FEATURE | |
| 275 | + POINTS | |
| 276 | + 10 5 | |
| 277 | + END | |
| 278 | + TEXT "- i3Geo" | |
| 279 | + END | |
| 280 | + END | |
| 281 | + LAYER | |
| 282 | + METADATA | |
| 283 | + "TEMA" "Rosa dos ventos" | |
| 284 | + "IDENTIFICA" "nao" | |
| 285 | + "TABELA" "nao" | |
| 286 | + "CLASSE" "NAO" | |
| 287 | + #"cache" "sim" | |
| 288 | + END | |
| 289 | + NAME "rosadosventos" | |
| 290 | + SIZEUNITS PIXELS | |
| 291 | + STATUS OFF | |
| 292 | + TOLERANCE 0 | |
| 293 | + TOLERANCEUNITS PIXELS | |
| 294 | + TRANSFORM lr | |
| 295 | + TYPE POINT | |
| 296 | + UNITS pixels | |
| 297 | + CLASS | |
| 298 | + SYMBOL 'rosa200' | |
| 299 | + SIZE 90 | |
| 300 | + END | |
| 301 | + FEATURE | |
| 302 | + POINTS | |
| 303 | + -70 -70 | |
| 304 | + END | |
| 305 | + END | |
| 306 | + END | |
| 307 | + | |
| 308 | +END | |
| 0 | 309 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,149 @@ |
| 1 | +MAP | |
| 2 | + EXTENT -76.512593 -36.948432 -29.585185 7.046013 | |
| 3 | + FONTSET "../symbols/fontes.txt" | |
| 4 | + SYMBOLSET "../symbols/simbolosv6.sym" | |
| 5 | + IMAGECOLOR 255 255 255 | |
| 6 | + IMAGETYPE png | |
| 7 | + MAXSIZE 10000 | |
| 8 | + SHAPEPATH "/opt/www/html/geodados" | |
| 9 | + SIZE 450 450 | |
| 10 | + STATUS ON | |
| 11 | + UNITS METERS | |
| 12 | + #CONFIG MS_NONSQUARE "YES" | |
| 13 | + #CONFIG MS_ERRORFILE "/ms4w/tmp/ms_error.txt" | |
| 14 | + NAME "i3geoogc" | |
| 15 | + DEBUG OFF | |
| 16 | + #DEBUG 5 | |
| 17 | + #CONFIG "MS_ERRORFILE" "/tmp/ms_tmp/ms_error.txt" | |
| 18 | + OUTPUTFORMAT | |
| 19 | + NAME 'png' | |
| 20 | + MIMETYPE "image/png" | |
| 21 | + DRIVER AGG/PNG | |
| 22 | + IMAGEMODE RGBA | |
| 23 | + FORMATOPTION "QUANTIZE_FORCE=ON" | |
| 24 | + FORMATOPTION "QUANTIZE_DITHER=OFF" | |
| 25 | + FORMATOPTION "QUANTIZE_COLORS=256" | |
| 26 | + FORMATOPTION "INTERLACE=OFF" | |
| 27 | + TRANSPARENT TRUE | |
| 28 | + END | |
| 29 | + OUTPUTFORMAT | |
| 30 | + NAME 'shape-zip' | |
| 31 | + DRIVER 'OGR/ESRI Shapefile' | |
| 32 | + IMAGEMODE FEATURE | |
| 33 | + END | |
| 34 | + OUTPUTFORMAT | |
| 35 | + NAME "csv" | |
| 36 | + DRIVER "OGR/CSV" | |
| 37 | + #MIMETYPE "text/csv" | |
| 38 | + FORMATOPTION "LCO:GEOMETRY=AS_WKT" | |
| 39 | + FORMATOPTION "STORAGE=memory" | |
| 40 | + #FORMATOPTION "FILENAME=result.csv" | |
| 41 | + END | |
| 42 | + OUTPUTFORMAT | |
| 43 | + NAME 'kml' | |
| 44 | + DRIVER 'OGR/KML' | |
| 45 | + MIMETYPE "application/vnd.google-earth.kml+xml" | |
| 46 | + #FORMATOPTION "STORAGE=memory" | |
| 47 | + IMAGEMODE FEATURE | |
| 48 | + END | |
| 49 | + OUTPUTFORMAT | |
| 50 | + NAME "geojson" | |
| 51 | + DRIVER "OGR/GEOJSON" | |
| 52 | + #MIMETYPE "application/json; subtype=geojson" | |
| 53 | + FORMATOPTION "STORAGE=memory" | |
| 54 | + FORMATOPTION "FORM=SIMPLE" | |
| 55 | + END | |
| 56 | + | |
| 57 | + PROJECTION | |
| 58 | + "+proj=longlat +ellps=GRS67 +no_defs" | |
| 59 | + END | |
| 60 | + LEGEND | |
| 61 | + IMAGECOLOR 255 255 255 | |
| 62 | + KEYSIZE 10 10 | |
| 63 | + KEYSPACING 5 5 | |
| 64 | + LABEL | |
| 65 | + ANGLE 0.000000 | |
| 66 | + ANTIALIAS TRUE | |
| 67 | + FONT "verdana" | |
| 68 | + MAXSIZE 256 | |
| 69 | + MINSIZE 4 | |
| 70 | + SIZE 10 | |
| 71 | + TYPE TRUETYPE | |
| 72 | + BUFFER 0 | |
| 73 | + COLOR 0 0 0 | |
| 74 | + FORCE FALSE | |
| 75 | + MINDISTANCE -1 | |
| 76 | + MINFEATURESIZE -1 | |
| 77 | + OFFSET 0 0 | |
| 78 | + PARTIALS FALSE | |
| 79 | + END | |
| 80 | + POSITION UL | |
| 81 | + STATUS ON | |
| 82 | + END | |
| 83 | + | |
| 84 | + QUERYMAP | |
| 85 | + COLOR 255 255 0 | |
| 86 | + SIZE -1 -1 | |
| 87 | + STATUS OFF | |
| 88 | + STYLE HILITE | |
| 89 | + END | |
| 90 | + | |
| 91 | + SCALEBAR | |
| 92 | + ALIGN CENTER | |
| 93 | + COLOR 0 0 0 | |
| 94 | + IMAGECOLOR 255 255 255 | |
| 95 | + INTERVALS 4 | |
| 96 | + LABEL | |
| 97 | + SIZE MEDIUM | |
| 98 | + TYPE BITMAP | |
| 99 | + BUFFER 0 | |
| 100 | + COLOR 0 0 0 | |
| 101 | + FORCE FALSE | |
| 102 | + MINDISTANCE -1 | |
| 103 | + MINFEATURESIZE -1 | |
| 104 | + OFFSET 0 0 | |
| 105 | + PARTIALS TRUE | |
| 106 | + END | |
| 107 | + POSITION LL | |
| 108 | + SIZE 200 3 | |
| 109 | + STATUS OFF | |
| 110 | + STYLE 0 | |
| 111 | + UNITS MILES | |
| 112 | + END | |
| 113 | + | |
| 114 | + WEB | |
| 115 | + IMAGEPATH "/tmp/ms_tmp/" | |
| 116 | + IMAGEURL "/ms_tmp/" | |
| 117 | + #nao coloque texto com acentuacao aqui | |
| 118 | + METADATA | |
| 119 | + "ows_country" "Brasil" | |
| 120 | + "ows_keywordlist" "i3Geo" | |
| 121 | + "ows_context_fid" "i3geo" | |
| 122 | + "ows_city" "Brasilia" | |
| 123 | + "ows_contactperson" "Web Master" | |
| 124 | + "ows_addresstype" "uri" | |
| 125 | + "ows_context_version" "1.1.1" | |
| 126 | + "wms_getcapabilities_version" "1.1.1" | |
| 127 | + "ows_abstract" "Web services gerados da base de dados do i3Geo. Para chamar um tema especificamente, veja o sistema de ajuda, digitando no navegador web ogc.php?ajuda=, para uma lista compacta de todos os servicos, digite ogc.php?lista=temas" | |
| 128 | + "ows_contactposition" "Administrador do sitio web" | |
| 129 | + "ows_stateorprovince" "DF" | |
| 130 | + "ows_contactorganization" "Coordenacao Geral de TI" | |
| 131 | + "ows_name" "i3geoogc" | |
| 132 | + "ows_accessconstraints" "vedado o uso comercial" | |
| 133 | + "ows_fees" "none" | |
| 134 | + "ows_contactelectronicmailaddress" "" | |
| 135 | + "ows_getcontext_enabled" "1" | |
| 136 | + "ows_namespace_uri" "http://www.omsug.ca/osgis2004" | |
| 137 | + "ows_address" "http://www.mma.gov.br" | |
| 138 | + "ows_postcode" "" | |
| 139 | + "ows_enable_request" "*" | |
| 140 | + "ows_sld_enabled" "true" | |
| 141 | + "wms_feature_info_mime_type" "application/json" | |
| 142 | + END | |
| 143 | + QUERYFORMAT text/html | |
| 144 | + LEGENDFORMAT text/html | |
| 145 | + BROWSEFORMAT text/html | |
| 146 | + TEMPLATE "none.htm" | |
| 147 | + END | |
| 148 | + | |
| 149 | +END | ... | ... |
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | +MAP | |
| 2 | +SYMBOLSET ../symbols/simboloslinv6.sym | |
| 3 | +FONTSET "../symbols/fontes.txt" | |
| 4 | + LAYER | |
| 5 | + METADATA | |
| 6 | + END | |
| 7 | + NAME "linha" | |
| 8 | + SIZEUNITS PIXELS | |
| 9 | + STATUS OFF | |
| 10 | + TOLERANCE 0 | |
| 11 | + TOLERANCEUNITS PIXELS | |
| 12 | + TYPE LINE | |
| 13 | + UNITS METERS | |
| 14 | + CLASS | |
| 15 | + NAME "" | |
| 16 | + METADATA | |
| 17 | + END | |
| 18 | + STYLE | |
| 19 | + COLOR 0 0 0 | |
| 20 | + MAXSIZE 500 | |
| 21 | + MINSIZE 1 | |
| 22 | + SIZE 5 | |
| 23 | + SYMBOL "linha" | |
| 24 | + END | |
| 25 | + END | |
| 26 | + END | |
| 27 | +END | |
| 0 | 28 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +MAP | |
| 2 | +SYMBOLSET ../symbols/simbolospolv6.sym | |
| 3 | +FONTSET "../symbols/fontes.txt" | |
| 4 | + DEBUG OFF | |
| 5 | + #DEBUG 5 | |
| 6 | + #CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt" | |
| 7 | +LAYER | |
| 8 | + METADATA | |
| 9 | + END | |
| 10 | + NAME "p0" | |
| 11 | + SIZEUNITS PIXELS | |
| 12 | + STATUS OFF | |
| 13 | + TOLERANCE 0 | |
| 14 | + TOLERANCEUNITS PIXELS | |
| 15 | + TYPE POLYGON | |
| 16 | + UNITS METERS | |
| 17 | + CLASS | |
| 18 | + NAME "" | |
| 19 | + METADATA | |
| 20 | + END | |
| 21 | + STYLE | |
| 22 | + COLOR 0 0 0 | |
| 23 | + MAXSIZE 500 | |
| 24 | + MINSIZE 1 | |
| 25 | + SYMBOL "p0" | |
| 26 | + END | |
| 27 | + END | |
| 28 | + END | |
| 29 | +END | |
| 0 | 30 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | +MAP | |
| 2 | +SYMBOLSET ../symbols/simbolosptv6.sym | |
| 3 | +FONTSET "../symbols/fontes.txt" | |
| 4 | + LAYER | |
| 5 | + METADATA | |
| 6 | + END | |
| 7 | + NAME "seta" | |
| 8 | + SIZEUNITS PIXELS | |
| 9 | + STATUS OFF | |
| 10 | + TOLERANCE 0 | |
| 11 | + TOLERANCEUNITS PIXELS | |
| 12 | + TYPE POINT | |
| 13 | + UNITS METERS | |
| 14 | + CLASS | |
| 15 | + NAME "" | |
| 16 | + METADATA | |
| 17 | + END | |
| 18 | + STYLE | |
| 19 | + COLOR 0 0 0 | |
| 20 | + MAXSIZE 500 | |
| 21 | + MINSIZE 1 | |
| 22 | + SIZE 8 | |
| 23 | + SYMBOL "ponto" | |
| 24 | + END | |
| 25 | + END | |
| 26 | + END | |
| 27 | +END | |
| 0 | 28 | \ No newline at end of file | ... | ... |
classesphp/classe_legenda.php
| ... | ... | @@ -659,8 +659,8 @@ class Legenda |
| 659 | 659 | else |
| 660 | 660 | {$mapatemp = ms_newMapObj($this->localaplicacao."/aplicmap/".$t); |
| 661 | 661 | } |
| 662 | - | |
| 663 | 662 | $l = $mapatemp->getlayer(0); |
| 663 | + | |
| 664 | 664 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| 665 | 665 | { |
| 666 | 666 | $novoss = dirname($this->mapa->symbolsetfilename)."\\".basename($mapatemp->symbolsetfilename); |
| ... | ... | @@ -673,11 +673,13 @@ class Legenda |
| 673 | 673 | for ($i=0;$i < $ns;++$i) |
| 674 | 674 | { |
| 675 | 675 | $oSymbol = $this->mapa->getSymbolObjectById($i); |
| 676 | + | |
| 676 | 677 | $nomes = $oSymbol->name; |
| 677 | 678 | if($nomes == "") |
| 678 | 679 | { |
| 679 | 680 | $nomes = $i; |
| 680 | 681 | } |
| 682 | + | |
| 681 | 683 | $adiciona = ms_newLayerObj($this->mapa, $l); |
| 682 | 684 | $nomel = $l->name; |
| 683 | 685 | $tematemp= $this->mapa->getlayerbyname($nomel); |
| ... | ... | @@ -686,8 +688,11 @@ class Legenda |
| 686 | 688 | $e->set("symbolname",$nomes); |
| 687 | 689 | $e->set("size",$tamanho); |
| 688 | 690 | $e->set("width",$width); |
| 691 | + | |
| 689 | 692 | $ico = $c->createLegendIcon(40,40); |
| 693 | + | |
| 690 | 694 | $nimg = $ico->saveWebImage(); |
| 695 | + | |
| 691 | 696 | $pat = $this->mapa->web->imageurl; |
| 692 | 697 | $ins .= "<img src='".$nimg."' style='cursor:pointer;border: 5px solid #FFFFFF' title=".$nomes." onclick='".$onclick."'>"; |
| 693 | 698 | } | ... | ... |
classesphp/mapa_inicia.php
| ... | ... | @@ -286,7 +286,7 @@ function iniciaMapa() |
| 286 | 286 | $copyright = ""; |
| 287 | 287 | $lc = $m->mapa->getlayerbyname("copyright"); |
| 288 | 288 | if($lc != "" && $lc->status == MS_DEFAULT ){ |
| 289 | - if($versao["principal"] == 6){ | |
| 289 | + if($versao["principal"] > 6){ | |
| 290 | 290 | $shape = $lc->getShape(new resultObj(0)); |
| 291 | 291 | $copyright = $shape->text; |
| 292 | 292 | } | ... | ... |
| ... | ... | @@ -0,0 +1,2056 @@ |
| 1 | +//TODO documentar | |
| 2 | +//TODO incluir balao de informacoes como um elemento grafico de desenho | |
| 3 | +//TODO incluir caixas de texto | |
| 4 | +//TODO incluir undo na edicao | |
| 5 | + | |
| 6 | +/* | |
| 7 | + Editor vetorial de limites para a interface google maps | |
| 8 | + | |
| 9 | + Utilizado em i3geo/metaestat/editorlimites.php | |
| 10 | + | |
| 11 | + Utiliza a API do Google Maps e pacotes/wicket/wicket.js (que cria o objeto Wkt com funcoes para processamento de Wkt) | |
| 12 | + | |
| 13 | + Licenca: | |
| 14 | + | |
| 15 | + GPL2 | |
| 16 | + | |
| 17 | + i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 18 | + | |
| 19 | + Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 20 | + Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
| 21 | + | |
| 22 | + Esse programa utiliza parcialmente os codigos da aplicacao calculadora de carbono desenvolvido pelo | |
| 23 | + IPAM - Instituto de Pesquisa Ambiental da Amazonia | |
| 24 | + | |
| 25 | + Este programa e software livre; voce pode redistribui-lo | |
| 26 | + e/ou modifica-lo sob os termos da Licenca Publica Geral | |
| 27 | + GNU conforme publicada pela Free Software Foundation; | |
| 28 | + | |
| 29 | + Este programa e distribuido na expectativa de que seja util, | |
| 30 | + porem, SEM NENHUMA GARANTIA; nem mesmo a garantia implicita | |
| 31 | + de COMERCIABILIDADE OU ADEQUACAO A UMA FINALIDADE ESPECIFICA. | |
| 32 | + Consulte a Licenca Publica Geral do GNU para mais detalhes. | |
| 33 | + Voce deve ter recebido uma copia da Licenca Publica Geral do | |
| 34 | + GNU junto com este programa; se nao, escreva para a | |
| 35 | + Free Software Foundation, Inc., no endereco | |
| 36 | + 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 37 | + */ | |
| 38 | +// | |
| 39 | +if (typeof (i3GEO) === 'undefined') { | |
| 40 | + var i3GEO = {}; | |
| 41 | +} | |
| 42 | +/* | |
| 43 | + * Classe i3GEO.editorGM | |
| 44 | + * | |
| 45 | + * Funções de edição vetorial utilizadas pelo editor de regiões do sistema METAESTAT | |
| 46 | + */ | |
| 47 | +i3GEO.editorGM = | |
| 48 | + { | |
| 49 | + iconePonto : function(sel) { | |
| 50 | + if (sel) { | |
| 51 | + return i3GEO.configura.locaplic + "/imagens/google/symbol_middot_y.png"; | |
| 52 | + } else { | |
| 53 | + return i3GEO.configura.locaplic + "/imagens/google/symbol_middot.png"; | |
| 54 | + } | |
| 55 | + }, | |
| 56 | + /** | |
| 57 | + * Objeto DOM com a imagem de aguarde existente no cabecalho da janela | |
| 58 | + * | |
| 59 | + */ | |
| 60 | + aguarde : "", | |
| 61 | + /** | |
| 62 | + * Guarda o Id do DIV que recebera o conteudo HTML do editor | |
| 63 | + */ | |
| 64 | + iddiv : "", | |
| 65 | + /** | |
| 66 | + * Objeto criado com new google.maps.drawing.DrawingManager | |
| 67 | + */ | |
| 68 | + drawingManager : "", | |
| 69 | + selectedShape : null, | |
| 70 | + /** | |
| 71 | + * guarda o mapeamento entre o codigo da regiao e o codigo do layer adicionado ao mapa | |
| 72 | + */ | |
| 73 | + regioestemas : {}, | |
| 74 | + /** | |
| 75 | + * Guarda o mapeamento entre o codigo da regiao e o codigo do layer adicionado ao mapa | |
| 76 | + */ | |
| 77 | + temasregioes : {}, | |
| 78 | + /** | |
| 79 | + * Guarda os dados descritivos sobre cada regiao obtidos na formacao no combo de escolha de regioes | |
| 80 | + */ | |
| 81 | + descregioes : [], | |
| 82 | + /** | |
| 83 | + * Inicia o editor | |
| 84 | + * | |
| 85 | + * Cria o objeto da API do Google Maps com new google.maps.drawing.DrawingManager A janela flutuante que recebera os componentes do | |
| 86 | + * editor ja deve estar aberta (veja editorlimites.php) Executa i3GEO.editorGM.html | |
| 87 | + * | |
| 88 | + * @param Id | |
| 89 | + * do DIV que recebera o conteudo HTML do editor | |
| 90 | + */ | |
| 91 | + inicia : function(iddiv) { | |
| 92 | + var i, n, ics; | |
| 93 | + // mensagem | |
| 94 | + // i3GEO.janela.tempoMsg("Atenção: apenas tabelas no esquema i3geo_metaestat podem ser editadas."); | |
| 95 | + i3GEO.editorGM.iddiv = iddiv; | |
| 96 | + $i(iddiv).innerHTML = i3GEO.editorGM.html(); | |
| 97 | + ics = $i(iddiv).getElementsByTagName("button"); | |
| 98 | + n = ics.length; | |
| 99 | + i3GEO.barraDeBotoes.ativaBotoes(); | |
| 100 | + i3GEO.editorGM.comboRegiaoEditavel(); | |
| 101 | + for (i = 0; i < n; i++) { | |
| 102 | + ics[i].style.backgroundColor = "white"; | |
| 103 | + ics[i].className = "iconeGuiaMovel"; | |
| 104 | + ics[i].onmouseout = function() { | |
| 105 | + this.className = "iconeGuiaMovel iconeGuiaMovelMouseOut"; | |
| 106 | + }; | |
| 107 | + ics[i].onmouseover = function() { | |
| 108 | + this.className = "iconeGuiaMovel iconeGuiaMovelMouseOver"; | |
| 109 | + }; | |
| 110 | + ics[i].style.backgroundImage = "none"; | |
| 111 | + ics[i].style.height = "32px"; | |
| 112 | + ics[i].style.width = "32px"; | |
| 113 | + ics[i].style.border = "1px solid gray"; | |
| 114 | + ics[i].style.margin = "0px"; | |
| 115 | + } | |
| 116 | + i3GEO.editorGM.drawingManager = | |
| 117 | + new google.maps.drawing.DrawingManager({ | |
| 118 | + drawingMode : google.maps.drawing.OverlayType.POLYGON, | |
| 119 | + drawingControl : false, | |
| 120 | + drawingControlOptions : { | |
| 121 | + position : google.maps.ControlPosition.TOP_CENTER, | |
| 122 | + drawingModes : [ | |
| 123 | + google.maps.drawing.OverlayType.POLYGON, | |
| 124 | + google.maps.drawing.OverlayType.MARKER, | |
| 125 | + google.maps.drawing.OverlayType.POLYLINE | |
| 126 | + ] | |
| 127 | + }, | |
| 128 | + markerOptions : { | |
| 129 | + icon : i3GEO.editorGM.iconePonto(), | |
| 130 | + clickable : true, | |
| 131 | + zIndex : 1, | |
| 132 | + draggable : true, | |
| 133 | + tema : "", | |
| 134 | + colunaid : "", | |
| 135 | + valorid : "", | |
| 136 | + colunanome : "", | |
| 137 | + valornome : "", | |
| 138 | + editable : false | |
| 139 | + }, | |
| 140 | + polygonOptions : { | |
| 141 | + fillColor : '#ffff00', | |
| 142 | + fillOpacity : .5, | |
| 143 | + strokeWeight : 2, | |
| 144 | + clickable : true, | |
| 145 | + zIndex : 1, | |
| 146 | + editable : true, | |
| 147 | + tema : "", | |
| 148 | + colunaid : "", | |
| 149 | + valorid : "", | |
| 150 | + colunanome : "", | |
| 151 | + valornome : "" | |
| 152 | + } | |
| 153 | + }); | |
| 154 | + i3GEO.editorGM.drawingManager.setMap(i3GeoMap); | |
| 155 | + i3GEO.editorGM.drawingManager.setDrawingMode(null); | |
| 156 | + google.maps.event.addListener(i3GEO.editorGM.drawingManager, 'overlaycomplete', function(e) { | |
| 157 | + // if (e.type != google.maps.drawing.OverlayType.MARKER) { | |
| 158 | + i3GEO.editorGM.drawingManager.setDrawingMode(null); | |
| 159 | + i3GEO.editorGM.mudaicone(); | |
| 160 | + var newShape = e.overlay; | |
| 161 | + newShape.type = e.type; | |
| 162 | + newShape.tema = $i("i3geoCartoRegioesEditaveis").value; | |
| 163 | + newShape.colunaid = ""; | |
| 164 | + newShape.valorid = ""; | |
| 165 | + newShape.colunanome = ""; | |
| 166 | + newShape.valornome = ""; | |
| 167 | + google.maps.event.addListener(newShape, 'click', function() { | |
| 168 | + i3GEO.editorGM.setSelection(newShape); | |
| 169 | + }); | |
| 170 | + i3GEO.editorGM.setSelection(newShape); | |
| 171 | + i3GEO.desenho.googlemaps.shapes.push(newShape); | |
| 172 | + // } | |
| 173 | + }); | |
| 174 | + google.maps.event.addListener(i3GEO.editorGM.drawingManager, 'drawingmode_changed', i3GEO.editorGM.clearSelection); | |
| 175 | + google.maps.event.addListener(i3GeoMap, 'click', i3GEO.editorGM.clearSelection); | |
| 176 | + }, | |
| 177 | + /** | |
| 178 | + * Atualiza as camadas do mapa que sao oriundas do sistema METAESTAT Busca a lista de camadas com | |
| 179 | + * ferramentas/metaestat/analise.php?funcao=LISTACAMADASMETAESTAT Faz um loop para atualizar cada camada | |
| 180 | + */ | |
| 181 | + atualizaCamadasMetaestat : function() { | |
| 182 | + var p = | |
| 183 | + i3GEO.configura.locaplic + "/ferramentas/metaestat/analise.php?funcao=LISTACAMADASMETAESTAT&g_sid=" + i3GEO.configura.sid, temp = | |
| 184 | + function(retorno) { | |
| 185 | + var n = retorno.data.length, i; | |
| 186 | + for (i = 0; i < n; i++) { | |
| 187 | + i3GEO.Interface.atualizaTema("", retorno.data[i]); | |
| 188 | + } | |
| 189 | + }; | |
| 190 | + cpJSON.call(p, "foo", temp); | |
| 191 | + }, | |
| 192 | + /** | |
| 193 | + * Monta o codigo HTML com o conteudo da ferramenta Define os botoes e demais elementos que serao preenchidos via codigo | |
| 194 | + * | |
| 195 | + * @return html | |
| 196 | + */ | |
| 197 | + html : function() { | |
| 198 | + var ins = | |
| 199 | + '<div style=margin-left:5px >' + ' <button title="' + $trad("dpol") | |
| 200 | + + '" onclick="i3GEO.editorGM.digitalizaPol(this)"><img src="' | |
| 201 | + + i3GEO.configura.locaplic | |
| 202 | + + '/imagens/gisicons/polygon-create.png" /></button>' | |
| 203 | + + ' <button title="' | |
| 204 | + + $trad("dponto") | |
| 205 | + + '" onclick="i3GEO.editorGM.digitalizaPt(this)"><img src="' | |
| 206 | + + i3GEO.configura.locaplic | |
| 207 | + + '/imagens/gisicons/point-create.png" /></button>' | |
| 208 | + + ' <button title="' | |
| 209 | + + $trad("capturar") | |
| 210 | + + '" onclick="i3GEO.editorGM.capturaPoligonoTema.ativa(this)"><img src="' | |
| 211 | + + i3GEO.configura.locaplic | |
| 212 | + + '/imagens/gisicons/layer-import.png" /></button>' | |
| 213 | + + ' <button title="' | |
| 214 | + + $trad("d24t") | |
| 215 | + + '" onclick="i3GEO.editorGM.seleciona(this)"><img src="' | |
| 216 | + + i3GEO.configura.locaplic | |
| 217 | + + '/imagens/gisicons/select.png" /></button>' | |
| 218 | + + ' <button title="' | |
| 219 | + + $trad("studo") | |
| 220 | + + '" onclick="i3GEO.editorGM.selectAll(this)"><img src="' | |
| 221 | + + i3GEO.configura.locaplic | |
| 222 | + + '/imagens/gisicons/selectall.png" /></button>' | |
| 223 | + + ' <button title="' | |
| 224 | + + $trad("excsel") | |
| 225 | + + '" onclick="i3GEO.editorGM.deleteSelectedShape()"><img src="' | |
| 226 | + + i3GEO.configura.locaplic | |
| 227 | + + '/imagens/gisicons/selected-delete.png" /></button>' | |
| 228 | + + ' <button title="' | |
| 229 | + + $trad("salvexc") | |
| 230 | + + '" onclick="i3GEO.editorGM.salvaLimite.inicia()"><img src="' | |
| 231 | + + i3GEO.configura.locaplic | |
| 232 | + + '/imagens/gisicons/vector-save.png" /></button>' | |
| 233 | + + ' <button title="' | |
| 234 | + + $trad("edatrib") | |
| 235 | + + '" onclick="i3GEO.editorGM.editarAtributos.ativa(this)"><img src="' | |
| 236 | + + i3GEO.configura.locaplic | |
| 237 | + + '/imagens/gisicons/annotation-form.png" /></button>' | |
| 238 | + + ' <button title="' | |
| 239 | + + $trad("s1") | |
| 240 | + + '" onmousedown="i3GEO.editorGM.mudaicone()" onclick="i3GEO.editorGM.ajuda()" ><img src="' | |
| 241 | + + i3GEO.configura.locaplic | |
| 242 | + + '/imagens/gisicons/help-contents.png" /></button>' | |
| 243 | + + ' <br><div id="i3geoCartoRegioesEditaveisDiv" ><img style="display:block;z-index:2" src="' | |
| 244 | + + i3GEO.configura.locaplic | |
| 245 | + + '/imagens/aguarde.gif" /></div></div>'; // combo para escolher a regiao | |
| 246 | + return ins; | |
| 247 | + }, | |
| 248 | + /** | |
| 249 | + * Atualiza a ferramenta quando a janela flutuante tem seu foco ativado | |
| 250 | + */ | |
| 251 | + ativaFoco : function() { | |
| 252 | + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "crosshair", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); | |
| 253 | + i3GEO.barraDeBotoes.ativaIcone("pan"); | |
| 254 | + i3GEO.editorGM.mudaicone(); | |
| 255 | + i3GEO.Interface.googlemaps.recalcPar(); | |
| 256 | + }, | |
| 257 | + /** | |
| 258 | + * Marca uma figura como selecionada | |
| 259 | + * | |
| 260 | + * @param objeto | |
| 261 | + * shape que sera marcado | |
| 262 | + */ | |
| 263 | + setSelection : function(shape) { | |
| 264 | + if (shape.setEditable) { | |
| 265 | + shape.setEditable(!shape.editable); | |
| 266 | + } else { | |
| 267 | + shape.editable = true; | |
| 268 | + shape.setIcon({ | |
| 269 | + url : i3GEO.editorGM.iconePonto(true) | |
| 270 | + }); | |
| 271 | + } | |
| 272 | + }, | |
| 273 | + /** | |
| 274 | + * Marca todas as figuras como nao selecionadas As figuras existentes no mapa sao mantidas na variavel | |
| 275 | + * i3GEO.desenho.googlemaps.shapes | |
| 276 | + */ | |
| 277 | + clearSelection : function() { | |
| 278 | + var i, n = i3GEO.desenho.googlemaps.shapes.length; | |
| 279 | + for (i = 0; i < n; i++) { | |
| 280 | + if (i3GEO.desenho.googlemaps.shapes[i] != "" && i3GEO.desenho.googlemaps.shapes[i].setEditable) { | |
| 281 | + i3GEO.desenho.googlemaps.shapes[i].setEditable(false); | |
| 282 | + } else if (i3GEO.desenho.googlemaps.shapes[i] != "") {// caso for ponto | |
| 283 | + i3GEO.desenho.googlemaps.shapes[i].editable = false; | |
| 284 | + if (i3GEO.desenho.googlemaps.shapes[i].setIcon) { | |
| 285 | + i3GEO.desenho.googlemaps.shapes[i].setIcon({ | |
| 286 | + url : i3GEO.editorGM.iconePonto(false) | |
| 287 | + }); | |
| 288 | + } | |
| 289 | + } | |
| 290 | + } | |
| 291 | + }, | |
| 292 | + /** | |
| 293 | + * Marca todas as figuras como selecionadas As figuras existentes no mapa sao mantidas na variavel i3GEO.desenho.googlemaps.shapes | |
| 294 | + */ | |
| 295 | + selectAll : function() { | |
| 296 | + var i, n = i3GEO.desenho.googlemaps.shapes.length; | |
| 297 | + for (i = 0; i < n; i++) { | |
| 298 | + if (i3GEO.desenho.googlemaps.shapes[i] != "" && i3GEO.desenho.googlemaps.shapes[i].setEditable) { | |
| 299 | + i3GEO.desenho.googlemaps.shapes[i].setEditable(true); | |
| 300 | + } else if (i3GEO.desenho.googlemaps.shapes[i] != "") {// caso for ponto | |
| 301 | + i3GEO.desenho.googlemaps.shapes[i].editable = true; | |
| 302 | + i3GEO.desenho.googlemaps.shapes[i].setIcon({ | |
| 303 | + url : i3GEO.editorGM.iconePonto(true) | |
| 304 | + }); | |
| 305 | + } | |
| 306 | + } | |
| 307 | + }, | |
| 308 | + /** | |
| 309 | + * Remove do mapa as figuras que estiverem selecionadas | |
| 310 | + * | |
| 311 | + * @param boolean | |
| 312 | + * indica se deve ser feita uma confirmacao ou nao antes de apagar | |
| 313 | + */ | |
| 314 | + deleteSelectedShape : function(naoconfirma) { | |
| 315 | + i3GEO.janela.tempoMsg($trad("meneditor1")); | |
| 316 | + if (!naoconfirma) { | |
| 317 | + naoconfirma = false; | |
| 318 | + } | |
| 319 | + var i, n = i3GEO.desenho.googlemaps.shapes.length; | |
| 320 | + if (n > 0) { | |
| 321 | + if (naoconfirma === false) { | |
| 322 | + var x = window.confirm($trad("excsel") + "?"); | |
| 323 | + } else { | |
| 324 | + x = true; | |
| 325 | + } | |
| 326 | + if (x) { | |
| 327 | + for (i = 0; i < n; i++) { | |
| 328 | + if (i3GEO.desenho.googlemaps.shapes[i] != "" && i3GEO.desenho.googlemaps.shapes[i].editable | |
| 329 | + && i3GEO.desenho.googlemaps.shapes[i].editable === true) { | |
| 330 | + i3GEO.desenho.googlemaps.shapes[i].setMap(null); | |
| 331 | + i3GEO.desenho.googlemaps.shapes[i] = ""; | |
| 332 | + } | |
| 333 | + } | |
| 334 | + } | |
| 335 | + } else { | |
| 336 | + i3GEO.janela.tempoMsg($trad("selum")); | |
| 337 | + } | |
| 338 | + }, | |
| 339 | + /** | |
| 340 | + * Lista as figuras que estao marcadas como selecionadas | |
| 341 | + * | |
| 342 | + * @return array de shapes | |
| 343 | + */ | |
| 344 | + selectedShapes : function() { | |
| 345 | + var i, s = [], n = i3GEO.desenho.googlemaps.shapes.length; | |
| 346 | + for (i = 0; i < n; i++) { | |
| 347 | + if (i3GEO.desenho.googlemaps.shapes[i] != "" && i3GEO.desenho.googlemaps.shapes[i].editable === true) { | |
| 348 | + s.push(i3GEO.desenho.googlemaps.shapes[i]); | |
| 349 | + } | |
| 350 | + } | |
| 351 | + return s; | |
| 352 | + }, | |
| 353 | + /** | |
| 354 | + * Lista as coordenadas de todas as figuras existentes | |
| 355 | + * | |
| 356 | + * @return objeto contendo a indicacao do tipo de figura e o array com a lista de coordenadas | |
| 357 | + */ | |
| 358 | + getCoordenadas : function() { | |
| 359 | + var coordenadas = [], lista = [], n = i3GEO.desenho.googlemaps.shapes.length, tipo = "", ps, nps, j, p, i, r; | |
| 360 | + | |
| 361 | + for (i = 0; i < n; i++) { | |
| 362 | + coordenadas = []; | |
| 363 | + if (i3GEO.desenho.googlemaps.shapes[i] != "" && i3GEO.desenho.googlemaps.shapes[i].editable === true) { | |
| 364 | + if (tipo == "") { | |
| 365 | + tipo = i3GEO.desenho.googlemaps.shapes[i].type; | |
| 366 | + } | |
| 367 | + ps = i3GEO.desenho.googlemaps.shapes[i].getPath(); | |
| 368 | + nps = ps.getLength(); | |
| 369 | + for (j = 0; j < nps; j++) { | |
| 370 | + p = ps.getAt(j); | |
| 371 | + coordenadas.push([ | |
| 372 | + p.lng() + " " + p.lat() | |
| 373 | + ]); | |
| 374 | + } | |
| 375 | + lista.push(coordenadas); | |
| 376 | + } | |
| 377 | + } | |
| 378 | + r = { | |
| 379 | + "tipo" : tipo, | |
| 380 | + "coordenadas" : lista | |
| 381 | + }; | |
| 382 | + return r; | |
| 383 | + }, | |
| 384 | + /** | |
| 385 | + * Converte um objeto shape em uma string WKT | |
| 386 | + * | |
| 387 | + * @param shape | |
| 388 | + */ | |
| 389 | + toWKT : function(obj) { | |
| 390 | + var wkt = new Wkt.Wkt(); | |
| 391 | + wkt.fromObject(obj); | |
| 392 | + return wkt.write(); | |
| 393 | + }, | |
| 394 | + merge : function(geoms) { | |
| 395 | + var n = geoms.length, w = new Wkt.Wkt(), g, m, i; | |
| 396 | + w.read(geoms[0].toString()); | |
| 397 | + if (n > 1) { | |
| 398 | + for (i = 1; i < n; i++) { | |
| 399 | + g = geoms[i].toString(); | |
| 400 | + m = new Wkt.Wkt(); | |
| 401 | + m.read(g); | |
| 402 | + w.merge(m); | |
| 403 | + } | |
| 404 | + } | |
| 405 | + return w.write(); | |
| 406 | + }, | |
| 407 | + /** | |
| 408 | + * Funcoes que controlam o processo de obtencao das coordenadas de um componente de uma camada existente no mapa | |
| 409 | + */ | |
| 410 | + capturaPoligonoTema : { | |
| 411 | + /** | |
| 412 | + * Ativa a operaco de captura definindo o evento que sera executado no onclick do mouse sobre o mapa O evento executa | |
| 413 | + * i3GEO.editorGM.capturaPoligonoTema.captura | |
| 414 | + * | |
| 415 | + * @param botao | |
| 416 | + * da interface que foi pressionado | |
| 417 | + */ | |
| 418 | + ativa : function(botao) { | |
| 419 | + i3GEO.editorGM.mudaicone(botao); | |
| 420 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 421 | + i3GEO.eventos.adicionaEventos("MOUSECLIQUE", [ | |
| 422 | + "i3GEO.editorGM.capturaPoligonoTema.captura()" | |
| 423 | + ]); | |
| 424 | + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "crosshair", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); | |
| 425 | + }, | |
| 426 | + desativa : function() { | |
| 427 | + }, | |
| 428 | + /** | |
| 429 | + * Realiza a captura de um componente do mapa quando o usuario faz o clique A captura e feita com | |
| 430 | + * classesphp/mapa_controle.php&funcao=identifica3 O resultado e adicionado ao mapa como um novo objeto shape | |
| 431 | + */ | |
| 432 | + captura : function() { | |
| 433 | + var temp, tema = "", regiao = "", p, par, aguarde = $i("i3GEOjanelaEditor_imagemCabecalho"); | |
| 434 | + if (!$i("i3geoCartoRegioesEditaveis")) { | |
| 435 | + i3GEO.eventos.removeEventos("MOUSECLIQUE", [ | |
| 436 | + "i3GEO.editorGM.capturaPoligonoTema.captura()" | |
| 437 | + ]); | |
| 438 | + } else { | |
| 439 | + temp = | |
| 440 | + function(retorno) { | |
| 441 | + var temp, n, i, WicketWkt, wkt = "", colunaid = "", valorid = "", colunanome = "", valornome = "", aguarde = | |
| 442 | + $i("i3GEOjanelaEditor_imagemCabecalho"); | |
| 443 | + if (i3GEO.editorGM.descregioes["a_" + regiao]["identificador"]) { | |
| 444 | + colunaid = i3GEO.editorGM.descregioes["a_" + regiao]["identificador"]; | |
| 445 | + } | |
| 446 | + if (i3GEO.editorGM.descregioes["a_" + regiao]["colunanomeregiao"]) { | |
| 447 | + colunanome = i3GEO.editorGM.descregioes["a_" + regiao]["colunanomeregiao"]; | |
| 448 | + } | |
| 449 | + if (aguarde) { | |
| 450 | + aguarde.style.visibility = "hidden"; | |
| 451 | + } | |
| 452 | + // obtem os dados buscando nos itens que vem da requisicao ao wms | |
| 453 | + temp = retorno.data[0].resultado[0]; | |
| 454 | + if (temp === " ") { | |
| 455 | + i3GEO.janela.tempoMsg($trad("meneditor2")); | |
| 456 | + return; | |
| 457 | + } | |
| 458 | + i3GEO.editorGM.mudaicone(); | |
| 459 | + n = temp.length; | |
| 460 | + for (i = 0; i < n; i++) { | |
| 461 | + if (temp[i].alias == "wkt") { | |
| 462 | + wkt = temp[i].valor; | |
| 463 | + } | |
| 464 | + if (temp[i].alias == colunaid || temp[i].item == colunaid) { | |
| 465 | + valorid = temp[i].valor; | |
| 466 | + } | |
| 467 | + if (temp[i].alias == colunanome || temp[i].item == colunanome) { | |
| 468 | + valornome = temp[i].valor; | |
| 469 | + } | |
| 470 | + } | |
| 471 | + // objeto do wicket ver pacotes/wicket | |
| 472 | + WicketWkt = new Wkt.Wkt(); | |
| 473 | + // wkt = "MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 45 20, 30 5, 10 10, 10 30, 20 35), (30 20, 20 | |
| 474 | + // 25, 20 15, 30 20)))"; | |
| 475 | + try { // Catch any malformed WKT strings | |
| 476 | + WicketWkt.read(wkt); | |
| 477 | + } catch (e1) { | |
| 478 | + try { | |
| 479 | + wkt.read(wkt.replace('\n', '').replace('\r', '').replace('\t', '')); | |
| 480 | + } catch (e2) { | |
| 481 | + if (e2.name === 'WKTError') { | |
| 482 | + alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.'); | |
| 483 | + return; | |
| 484 | + } | |
| 485 | + } | |
| 486 | + } | |
| 487 | + obj = WicketWkt.toObject(i3GeoMap.defaults); | |
| 488 | + // obj.setMap(i3GeoMap); // Add it to the map | |
| 489 | + // i3GEO.desenho.googlemaps.shapes.push(obj); | |
| 490 | + i3GEO.editorGM.adicionaPoligonos(obj, tema, colunaid, valorid, colunanome, valornome); | |
| 491 | + i3GEO.eventos.MOUSECLIQUE = []; | |
| 492 | + }; | |
| 493 | + regiao = $i("i3geoCartoRegioesEditaveis").value; | |
| 494 | + if (regiao != "") { | |
| 495 | + tema = i3GEO.editorGM.regioestemas["a" + regiao]; | |
| 496 | + if (aguarde && aguarde.style.visibility == "hidden") { | |
| 497 | + aguarde.style.visibility = "visible"; | |
| 498 | + p = i3GEO.configura.locaplic + "/classesphp/mapa_controle.php"; | |
| 499 | + par = | |
| 500 | + "funcao=identifica3&opcao=tema&xy=" + objposicaocursor.ddx | |
| 501 | + + "," | |
| 502 | + + objposicaocursor.ddy | |
| 503 | + + "&resolucao=5&g_sid=" | |
| 504 | + + i3GEO.configura.sid | |
| 505 | + + "&ext=" | |
| 506 | + + i3GEO.parametros.mapexten | |
| 507 | + + "&listaDeTemas=&wkt=sim&tema=" | |
| 508 | + + tema; | |
| 509 | + cpJSON.call(p, "identifica", temp, par); | |
| 510 | + } | |
| 511 | + } | |
| 512 | + } | |
| 513 | + } | |
| 514 | + }, | |
| 515 | + /** | |
| 516 | + * Monta um combo com a lista de regioes cadastradas e que podem ser editadas pelo editor A regiao em edicao sera a escolhida nesse | |
| 517 | + * combo Ao ser escolhida, e adicionada uma camada no mapa | |
| 518 | + * | |
| 519 | + * @param opcional | |
| 520 | + * codigo da regiao no cadastro. Se nao for definido, busca todas | |
| 521 | + */ | |
| 522 | + comboRegiaoEditavel : function(codigo_tipo_regiao) { | |
| 523 | + if (!codigo_tipo_regiao) { | |
| 524 | + codigo_tipo_regiao = ""; | |
| 525 | + } | |
| 526 | + var onde = $i("i3geoCartoRegioesEditaveisDiv"), temp = | |
| 527 | + function(dados) { | |
| 528 | + var n = dados.length, ins = '<br><p class="paragrafo" >' + $trad("camedit") + ':</p>', i; | |
| 529 | + ins += | |
| 530 | + "<select onchange='i3GEO.editorGM.comboRegiaoEditavelOnchange(this)' id='i3geoCartoRegioesEditaveis' style='width:175px' ><option value=''>---</option>"; | |
| 531 | + for (i = 0; i < n; i++) { | |
| 532 | + ins += "<option value='" + dados[i].codigo_tipo_regiao + "'>" + dados[i].nome_tipo_regiao + "</option>"; | |
| 533 | + i3GEO.editorGM.descregioes["a_" + dados[i].codigo_tipo_regiao] = dados[i]; | |
| 534 | + } | |
| 535 | + // inclui as camadas que sao editaveis e estao no mapa | |
| 536 | + dados = i3GEO.arvoreDeCamadas.filtraCamadas("editavel", "SIM", "igual"); | |
| 537 | + n = dados.length; | |
| 538 | + for (i = 0; i < n; i++) { | |
| 539 | + // layer e usado aqui para identificar que a camada veio do mapa e nao do cadastro de regioes | |
| 540 | + if (!dados[i].codigo_tipo_regiao || dados[i].codigo_tipo_regiao === "") { | |
| 541 | + ins += "<option value='" + dados[i].name + "'>" + dados[i].tema + "</option>"; | |
| 542 | + dados[i]["identificador"] = dados[i].colunaidunico; | |
| 543 | + dados[i]["colunanomeregiao"] = ""; | |
| 544 | + i3GEO.editorGM.descregioes["a_" + dados[i].name] = dados[i]; | |
| 545 | + } | |
| 546 | + } | |
| 547 | + ins += "</select>"; | |
| 548 | + if (onde) { | |
| 549 | + onde.innerHTML = ins; | |
| 550 | + } | |
| 551 | + return ins; | |
| 552 | + }; | |
| 553 | + i3GEO.php.listaTipoRegiao(temp, codigo_tipo_regiao); | |
| 554 | + }, | |
| 555 | + /** | |
| 556 | + * Funcao ativada no evento onchange do combo criado com comboRegiaoEditavel Executa i3GEO.php.mapfileTipoRegiao | |
| 557 | + */ | |
| 558 | + comboRegiaoEditavelOnchange : function(combo) { | |
| 559 | + if (combo.value === "") { | |
| 560 | + return; | |
| 561 | + } | |
| 562 | + i3GEO.editorGM.editarAtributos.desativa(); | |
| 563 | + // caso a camada escolhida seja uma camada normal, vinda de um mapfile | |
| 564 | + if (i3GEO.arvoreDeCamadas.pegaTema(combo.value) != "") { | |
| 565 | + i3GEO.editorGM.regioestemas["a" + combo.value] = combo.value; | |
| 566 | + i3GEO.editorGM.temasregioes[combo.value] = combo.value; | |
| 567 | + } else { | |
| 568 | + var temp = function(retorno) { | |
| 569 | + if (i3GEO.arvoreDeCamadas.pegaTema(retorno.layer) == "") { | |
| 570 | + i3GEO.php.adtema(i3GEO.atualiza, retorno.mapfile); | |
| 571 | + // guarda o codigo e relaciona com a regiao | |
| 572 | + i3GEO.editorGM.regioestemas["a" + combo.value] = retorno.layer; | |
| 573 | + i3GEO.editorGM.temasregioes[retorno.layer] = combo.value; | |
| 574 | + } | |
| 575 | + }; | |
| 576 | + i3GEO.php.mapfileTipoRegiao(temp, combo.value); | |
| 577 | + } | |
| 578 | + }, | |
| 579 | + /** | |
| 580 | + * Altera as bordas dos icones e desativa eventos Desativa todos os botoes e ativa o indicado | |
| 581 | + * | |
| 582 | + * @param objeto | |
| 583 | + * DOM que representa o botao que sera focado | |
| 584 | + */ | |
| 585 | + mudaicone : function(botao) { | |
| 586 | + var c = $i(i3GEO.editorGM.iddiv), ci = c.getElementsByTagName("img"), n = ci.length, i; | |
| 587 | + for (i = 0; i < n; i++) { | |
| 588 | + ci[i].parentNode.style.backgroundColor = "#F5F5F5"; | |
| 589 | + } | |
| 590 | + i3GEO.eventos.MOUSECLIQUE = []; | |
| 591 | + i3GEO.editorGM.capturaPoligonoTema.desativa(); | |
| 592 | + i3GEO.editorGM.editarAtributos.desativa(); | |
| 593 | + if (botao && botao.style) { | |
| 594 | + botao.style.backgroundColor = "#cedff2"; | |
| 595 | + } | |
| 596 | + }, | |
| 597 | + /** | |
| 598 | + * Ativa a digitalizacao de poligono | |
| 599 | + * | |
| 600 | + * @param objeto | |
| 601 | + * DOM que representa o botao que sera focado | |
| 602 | + */ | |
| 603 | + digitalizaPol : function(botao) { | |
| 604 | + i3GEO.editorGM.mudaicone(botao); | |
| 605 | + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "pointer", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); | |
| 606 | + i3GEO.editorGM.drawingManager.setOptions({ | |
| 607 | + drawingMode : google.maps.drawing.OverlayType.POLYGON | |
| 608 | + }); | |
| 609 | + }, | |
| 610 | + /** | |
| 611 | + * Ativa a digitalizacao de ponto | |
| 612 | + * | |
| 613 | + * @param objeto | |
| 614 | + * DOM que representa o botao que sera focado | |
| 615 | + */ | |
| 616 | + digitalizaPt : function(botao) { | |
| 617 | + i3GEO.editorGM.mudaicone(botao); | |
| 618 | + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "pointer", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); | |
| 619 | + i3GEO.editorGM.drawingManager.setOptions({ | |
| 620 | + drawingMode : google.maps.drawing.OverlayType.MARKER | |
| 621 | + }); | |
| 622 | + }, | |
| 623 | + /** | |
| 624 | + * Ativa a selecao de figuras | |
| 625 | + * | |
| 626 | + * @param objeto | |
| 627 | + * DOM que representa o botao que sera focado | |
| 628 | + */ | |
| 629 | + seleciona : function(botao) { | |
| 630 | + i3GEO.editorGM.mudaicone(botao); | |
| 631 | + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "pointer", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); | |
| 632 | + i3GEO.editorGM.drawingManager.setOptions({ | |
| 633 | + drawingMode : null | |
| 634 | + }); | |
| 635 | + }, | |
| 636 | + /** | |
| 637 | + * Adiciona uma nova figura ao mapa (shape) Pode ser poligono ou ponto | |
| 638 | + * | |
| 639 | + * @param objeto | |
| 640 | + * shape (API do Google) | |
| 641 | + * @param codigo | |
| 642 | + * do layer que sera vinculado ao shape | |
| 643 | + * @param coluna | |
| 644 | + * do tema que contem os identificadores de cada um de seus elementos (registros) | |
| 645 | + * @param valor | |
| 646 | + * do identificador | |
| 647 | + * @param coluna | |
| 648 | + * que cntem os nomes das regioes | |
| 649 | + * @param nome | |
| 650 | + * da regiao a ser adicionada | |
| 651 | + */ | |
| 652 | + adicionaPoligonos : function(obj, tema, colunaid, valorid, colunanome, valornome) { | |
| 653 | + if (!tema) { | |
| 654 | + tema = $i("i3geoCartoRegioesEditaveis").value; | |
| 655 | + } | |
| 656 | + if (!colunaid) { | |
| 657 | + colunaid = ""; | |
| 658 | + } | |
| 659 | + if (!valorid) { | |
| 660 | + valorid = ""; | |
| 661 | + } | |
| 662 | + if (!colunanome) { | |
| 663 | + colunanome = ""; | |
| 664 | + } | |
| 665 | + if (!valornome) { | |
| 666 | + valornome = ""; | |
| 667 | + } | |
| 668 | + var pol; | |
| 669 | + if (Wkt.isArray(obj)) { // Distinguish multigeometries (Arrays) from objects | |
| 670 | + for (i in obj) { | |
| 671 | + if (obj.hasOwnProperty(i) && !Wkt.isArray(obj[i])) { | |
| 672 | + pol = new google.maps.Polygon({ | |
| 673 | + path : obj[i].getPath(), | |
| 674 | + map : i3GeoMap, | |
| 675 | + fillColor : '#ffff00', | |
| 676 | + fillOpacity : .5, | |
| 677 | + strokeWeight : 2, | |
| 678 | + clickable : true, | |
| 679 | + zIndex : 1, | |
| 680 | + editable : true, | |
| 681 | + tema : tema, | |
| 682 | + colunaid : colunaid, | |
| 683 | + valorid : valorid, | |
| 684 | + colunanome : colunanome, | |
| 685 | + valornome : valornome | |
| 686 | + }); | |
| 687 | + google.maps.event.addListener(pol, 'click', function() { | |
| 688 | + i3GEO.editorGM.setSelection(pol); | |
| 689 | + }); | |
| 690 | + i3GEO.desenho.googlemaps.shapes.push(pol); | |
| 691 | + } | |
| 692 | + } | |
| 693 | + return; | |
| 694 | + } | |
| 695 | + if (obj.type === 'polygon' || obj.type === 'linestring') { | |
| 696 | + pol = new google.maps.Polygon({ | |
| 697 | + paths : obj.getPaths(), | |
| 698 | + map : i3GeoMap, | |
| 699 | + fillColor : '#ffff00', | |
| 700 | + fillOpacity : .5, | |
| 701 | + strokeWeight : 2, | |
| 702 | + clickable : true, | |
| 703 | + zIndex : 1, | |
| 704 | + editable : true, | |
| 705 | + tema : tema, | |
| 706 | + colunaid : colunaid, | |
| 707 | + valorid : valorid, | |
| 708 | + colunanome : colunanome, | |
| 709 | + valornome : valornome | |
| 710 | + }); | |
| 711 | + google.maps.event.addListener(pol, 'click', function() { | |
| 712 | + i3GEO.editorGM.setSelection(pol); | |
| 713 | + }); | |
| 714 | + i3GEO.desenho.googlemaps.shapes.push(pol); | |
| 715 | + return; | |
| 716 | + } | |
| 717 | + if (obj.type === 'marker') { | |
| 718 | + i3GEO.editorGM.selectAll(); | |
| 719 | + if (i3GEO.desenho.googlemaps.shapes.length > 0) { | |
| 720 | + i3GEO.editorGM.deleteSelectedShape(true); | |
| 721 | + } | |
| 722 | + pol = new google.maps.Marker({ | |
| 723 | + position : new google.maps.LatLng(obj.getPosition().ob, obj.getPosition().pb), | |
| 724 | + map : i3GeoMap, | |
| 725 | + icon : { | |
| 726 | + url : i3GEO.editorGM.iconePonto(false) | |
| 727 | + }, | |
| 728 | + clickable : true, | |
| 729 | + zIndex : 1, | |
| 730 | + draggable : true, | |
| 731 | + tema : tema, | |
| 732 | + colunaid : colunaid, | |
| 733 | + valorid : valorid, | |
| 734 | + colunanome : colunanome, | |
| 735 | + valornome : valornome, | |
| 736 | + editable : false | |
| 737 | + }); | |
| 738 | + google.maps.event.addListener(pol, 'click', function() { | |
| 739 | + i3GEO.editorGM.setSelection(pol); | |
| 740 | + }); | |
| 741 | + i3GEO.desenho.googlemaps.shapes.push(pol); | |
| 742 | + return; | |
| 743 | + } | |
| 744 | + }, | |
| 745 | + /** | |
| 746 | + * Salva um poligono no banco de dados | |
| 747 | + */ | |
| 748 | + salvaLimite : { | |
| 749 | + /** | |
| 750 | + * Inicia a ferramenta definindo as funcoes dos botoes Executa i3GEO.editorGM.salvaLimite.criaJanelaFlutuante | |
| 751 | + */ | |
| 752 | + inicia : function() { | |
| 753 | + if (i3GEO.login.verificaCookieLogin() === false) { | |
| 754 | + i3GEO.janela.tempoMsg($trad("meneditor3")); | |
| 755 | + if (i3GEO.editorGM.selectedShapes().length > 0) { | |
| 756 | + var temp = i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0]); | |
| 757 | + i3GEO.mapa.dialogo.wkt2layer(temp); | |
| 758 | + } | |
| 759 | + return; | |
| 760 | + } | |
| 761 | + var wkt, temp, s = i3GEO.editorGM.selectedShapes(), n = s.length, janela = YAHOO.i3GEO.janela.manager.find("salvaLimite"); | |
| 762 | + if (janela) { | |
| 763 | + janela.destroy(); | |
| 764 | + } | |
| 765 | + if (n == 1) { | |
| 766 | + s = s[0]; | |
| 767 | + temp = function(retorno) { | |
| 768 | + i3GEO.editorGM.deleteSelectedShape(true); | |
| 769 | + i3GEO.Interface.redesenha(); | |
| 770 | + }; | |
| 771 | + // verifica se e uma regiao cadastrada ou um tema comum editavel | |
| 772 | + if (i3GEO.editorGM.descregioes["a_" + $i("i3geoCartoRegioesEditaveis").value].tema != undefined) { | |
| 773 | + wkt = i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0]); | |
| 774 | + if (wkt && wkt != "") { | |
| 775 | + // cria um novo registro | |
| 776 | + if (s.valorid == "") { | |
| 777 | + p = | |
| 778 | + i3GEO.configura.locaplic + "/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid=" | |
| 779 | + + i3GEO.configura.sid; | |
| 780 | + cpJSON.call(p, "foo", temp, "&tema=" + $i("i3geoCartoRegioesEditaveis").value + "&wkt=" + wkt); | |
| 781 | + } else { | |
| 782 | + // atualiza a geometria | |
| 783 | + p = | |
| 784 | + i3GEO.configura.locaplic + "/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid=" | |
| 785 | + + i3GEO.configura.sid; | |
| 786 | + cpJSON.call(p, "foo", temp, "&idunico=" + s.valorid | |
| 787 | + + "&tema=" | |
| 788 | + + $i("i3geoCartoRegioesEditaveis").value | |
| 789 | + + "&wkt=" | |
| 790 | + + wkt); | |
| 791 | + } | |
| 792 | + } | |
| 793 | + } else { | |
| 794 | + // formulario para o caso de ser um tema cadastrado como regiao no sistema metaestat | |
| 795 | + i3GEO.editorGM.salvaLimite.criaJanelaFlutuante(i3GEO.editorGM.salvaLimite.html( | |
| 796 | + s.colunaid, | |
| 797 | + s.valorid, | |
| 798 | + s.colunanome, | |
| 799 | + s.valornome)); | |
| 800 | + new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao1", { | |
| 801 | + onclick : { | |
| 802 | + fn : function() { | |
| 803 | + i3GEO.editorGM.salvaLimite.gravaDados(true); | |
| 804 | + } | |
| 805 | + } | |
| 806 | + }); | |
| 807 | + new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao2", { | |
| 808 | + onclick : { | |
| 809 | + fn : function() { | |
| 810 | + i3GEO.editorGM.salvaLimite.gravaDados(false); | |
| 811 | + } | |
| 812 | + } | |
| 813 | + }); | |
| 814 | + new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao3", { | |
| 815 | + onclick : { | |
| 816 | + fn : function() { | |
| 817 | + i3GEO.editorGM.salvaLimite.excluiPoligono(); | |
| 818 | + } | |
| 819 | + } | |
| 820 | + }); | |
| 821 | + } | |
| 822 | + } else { | |
| 823 | + i3GEO.janela.tempoMsg("Selecione uma figura"); | |
| 824 | + } | |
| 825 | + }, | |
| 826 | + /** | |
| 827 | + * Monta o HTML para o formulario que permite salvar os dados | |
| 828 | + */ | |
| 829 | + html : function(colunaIdElemento, valorIdElemento, colunaNomeElemento, valorNomeElemento) { | |
| 830 | + var ins = | |
| 831 | + '' + '<p class=paragrafo >Se o valor do código for vazio, será criado um novo elemento. Caso contrário, os valores atualmente registrados serão atualizados.</p>' | |
| 832 | + + '<p class=paragrafo >Edite os atributos:</p>' | |
| 833 | + + '<input type=hidden id="inputColunaIdElemento" value="' + colunaIdElemento | |
| 834 | + + '" />' | |
| 835 | + + '<input type=hidden id="inputColunaNomeElemento" value="' | |
| 836 | + + colunaNomeElemento | |
| 837 | + + '" />' | |
| 838 | + + '<input type=hidden id="inputIdentificadorElemento" value="' | |
| 839 | + + valorIdElemento | |
| 840 | + + '" />' | |
| 841 | + + '<input type=hidden id="inputNomeElemento" value="' | |
| 842 | + + valorNomeElemento | |
| 843 | + + '" />' | |
| 844 | + + '<p class=paragrafo >Código:</p>' | |
| 845 | + + '<p class=paragrafo ><input class=digitar type=text id="inputIdentificadorNovoElemento" value="' | |
| 846 | + + valorIdElemento | |
| 847 | + + '" style="width:180;cursor:text" /></p>' | |
| 848 | + + '<p class=paragrafo >Nome:</p>' | |
| 849 | + + '<p class=paragrafo ><input class=digitar type=text id="inputNomeNovoElemento" value="' | |
| 850 | + + valorNomeElemento | |
| 851 | + + '" style="width:180;cursor:text" /></p>' | |
| 852 | + + '<p class=paragrafo >Escolha a operação desejada:</p>' | |
| 853 | + + '<input id=i3GEOFmetaestati3GEO.editorGMBotao1 type="button" value="Salvar tudo" />' | |
| 854 | + + ' <input id=i3GEOFmetaestati3GEO.editorGMBotao2 type="button" value="Salvar apenas os atributos" />' | |
| 855 | + + '<br><br><input id=i3GEOFmetaestati3GEO.editorGMBotao3 type="button" value="Excluir" />'; | |
| 856 | + return ins; | |
| 857 | + }, | |
| 858 | + /** | |
| 859 | + * Cria a janela flutuante para receber os componentes da ferramenta | |
| 860 | + * | |
| 861 | + * @param html | |
| 862 | + * com o conteudo da ferramenta | |
| 863 | + */ | |
| 864 | + criaJanelaFlutuante : function(html) { | |
| 865 | + var titulo, cabecalho, minimiza, janela; | |
| 866 | + cabecalho = function() { | |
| 867 | + }; | |
| 868 | + minimiza = function() { | |
| 869 | + i3GEO.janela.minimiza("salvaLimite"); | |
| 870 | + }; | |
| 871 | + titulo = "<div class='i3GeoTituloJanela'>" + $trad("sdados") + "</div>"; | |
| 872 | + janela = i3GEO.janela.cria("300px", "265px", "", "", "", titulo, "salvaLimite", true, "hd", cabecalho, minimiza); | |
| 873 | + $i("salvaLimite_corpo").style.backgroundColor = "white"; | |
| 874 | + $i("salvaLimite_corpo").innerHTML = html; | |
| 875 | + YAHOO.util.Event.addListener(janela[0].close, "click", i3GEO.editorGM.mudaicone); | |
| 876 | + }, | |
| 877 | + /** | |
| 878 | + * Aplica a operacao de salvar os dados no banco para o shape selecionado Executa | |
| 879 | + * admin/php/metaestat.php?funcao=mantemDadosRegiao | |
| 880 | + * | |
| 881 | + * @param boolean | |
| 882 | + * indica se as coordenadas serao salvas tambem | |
| 883 | + */ | |
| 884 | + gravaDados : function(comwkt) { | |
| 885 | + if (i3GEO.login.verificaCookieLogin() === false) { | |
| 886 | + i3GEO.janela.tempoMsg($trad("meneditor3")); | |
| 887 | + return; | |
| 888 | + } | |
| 889 | + if (!window.confirm($trad("sdados") + "?")) { | |
| 890 | + return; | |
| 891 | + } | |
| 892 | + var p, codigo_tipo_regiao = $i("i3geoCartoRegioesEditaveis").value, identificadornovo = | |
| 893 | + $i("inputIdentificadorNovoElemento").value, identificador = $i("inputIdentificadorElemento").value, nome = | |
| 894 | + $i("inputNomeNovoElemento").value, wkt = "", temp = function(retorno) { | |
| 895 | + i3GEO.editorGM.deleteSelectedShape(true); | |
| 896 | + var janela = YAHOO.i3GEO.janela.manager.find("salvaLimite"); | |
| 897 | + if (janela) { | |
| 898 | + janela.destroy(); | |
| 899 | + } | |
| 900 | + i3GEO.Interface.redesenha(); | |
| 901 | + }; | |
| 902 | + if (comwkt === true) { | |
| 903 | + wkt = i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0]); | |
| 904 | + } else { | |
| 905 | + if (identificadornovo === identificador && $i("inputNomeElemento").value === nome) { | |
| 906 | + i3GEO.janela.tempoMsg($trad("meneditor4")); | |
| 907 | + return; | |
| 908 | + } | |
| 909 | + } | |
| 910 | + p = i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo="; | |
| 911 | + cpJSON.call(p, "foo", temp, "&codigo_tipo_regiao=" + codigo_tipo_regiao | |
| 912 | + + "&identificadornovo=" | |
| 913 | + + identificadornovo | |
| 914 | + + "&identificador=" | |
| 915 | + + identificador | |
| 916 | + + "&nome=" | |
| 917 | + + nome | |
| 918 | + + "&wkt=" | |
| 919 | + + wkt); | |
| 920 | + }, | |
| 921 | + /** | |
| 922 | + * Exclui um registro do banco de dados Executa admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=excluir | |
| 923 | + */ | |
| 924 | + excluiPoligono : function() { | |
| 925 | + if (i3GEO.login.verificaCookieLogin() === false) { | |
| 926 | + i3GEO.janela.tempoMsg($trad("meneditor3")); | |
| 927 | + return; | |
| 928 | + } | |
| 929 | + if (!window.confirm($trad("excsel") + "?")) { | |
| 930 | + return; | |
| 931 | + } | |
| 932 | + var codigo_tipo_regiao = $i("i3geoCartoRegioesEditaveis").value, identificador = $i("inputIdentificadorElemento").value, temp = | |
| 933 | + function(retorno) { | |
| 934 | + i3GEO.editorGM.deleteSelectedShape(true); | |
| 935 | + var janela = YAHOO.i3GEO.janela.manager.find("salvaLimite"); | |
| 936 | + if (janela) { | |
| 937 | + janela.destroy(); | |
| 938 | + } | |
| 939 | + i3GEO.Interface.redesenha(); | |
| 940 | + }, p = i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=excluir"; | |
| 941 | + if (identificador === "") { | |
| 942 | + i3GEO.janela.tempoMsg($trad("meneditor5")); | |
| 943 | + } else { | |
| 944 | + cpJSON.call(p, "foo", temp, "&codigo_tipo_regiao=" + codigo_tipo_regiao + "&identificador=" + identificador); | |
| 945 | + } | |
| 946 | + } | |
| 947 | + }, | |
| 948 | + /** | |
| 949 | + * Funcoes que controlam o processo de edicao de atributos de um shape | |
| 950 | + */ | |
| 951 | + editarAtributos : { | |
| 952 | + aliascolunas : "", // guarda os nomes das colunas e seus aliases para permitir a criacao de novos registros | |
| 953 | + x : "", | |
| 954 | + y : "", | |
| 955 | + /** | |
| 956 | + * Ativa a ferramenta Define os eventos de onclick para abrir formulario quando o usuario clica no mapa Para cada regiao sao | |
| 957 | + * obtidas todas as variaveis cadastradas Executa i3GEO.editorGM.editarAtributos.criaJanelaFlutuante Executa | |
| 958 | + * i3GEO.editorGM.editarAtributos.comboVariaveis(); | |
| 959 | + */ | |
| 960 | + ativa : function(botao) { | |
| 961 | + if ($i("i3geoCartoRegioesEditaveis").value == "") { | |
| 962 | + i3GEO.janela.tempoMsg("Escolha uma regiao"); | |
| 963 | + return; | |
| 964 | + } | |
| 965 | + i3GEO.editorGM.mudaicone(botao); | |
| 966 | + i3GEO.eventos.adicionaEventos("MOUSECLIQUE", [ | |
| 967 | + "i3GEO.editorGM.editarAtributos.captura()" | |
| 968 | + ]); | |
| 969 | + var janela = YAHOO.i3GEO.janela.manager.find("editaAtributos"); | |
| 970 | + if (janela) { | |
| 971 | + $i("editarAtributosForm").innerHTML = ""; | |
| 972 | + } else { | |
| 973 | + i3GEO.editorGM.editarAtributos.criaJanelaFlutuante(i3GEO.editorGM.editarAtributos.html()); | |
| 974 | + i3GEO.editorGM.editarAtributos.comboVariaveis(); | |
| 975 | + } | |
| 976 | + }, | |
| 977 | + /** | |
| 978 | + * Fecha a janela de edicao | |
| 979 | + */ | |
| 980 | + desativa : function() { | |
| 981 | + var janela = YAHOO.i3GEO.janela.manager.find("editaAtributos"); | |
| 982 | + if (janela) { | |
| 983 | + janela.destroy(); | |
| 984 | + } | |
| 985 | + }, | |
| 986 | + criaJanelaFlutuante : function(html) { | |
| 987 | + var janela, titulo, cabecalho, minimiza; | |
| 988 | + cabecalho = function() { | |
| 989 | + }; | |
| 990 | + minimiza = function() { | |
| 991 | + i3GEO.janela.minimiza("editaAtributos"); | |
| 992 | + }; | |
| 993 | + titulo = "<div class='i3GeoTituloJanela'>" + $trad("atrib") + "</div>"; | |
| 994 | + janela = i3GEO.janela.cria("250px", "265px", "", "", "", titulo, "editaAtributos", false, "hd", cabecalho, minimiza); | |
| 995 | + $i("editaAtributos_corpo").style.backgroundColor = "white"; | |
| 996 | + $i("editaAtributos_corpo").innerHTML = html; | |
| 997 | + i3GEO.janela.tempoMsg($trad("meneditor6")); | |
| 998 | + YAHOO.util.Event.addListener(janela[0].close, "click", i3GEO.editorGM.mudaicone); | |
| 999 | + }, | |
| 1000 | + /** | |
| 1001 | + * Fornece o HTML com os objetos que receberao os componentes da ferramenta | |
| 1002 | + * | |
| 1003 | + * @return html | |
| 1004 | + */ | |
| 1005 | + html : function() { | |
| 1006 | + var ins = | |
| 1007 | + '' + '<p class="paragrafo" ><div id="editarAtributosVariaveis" ></div></p>' | |
| 1008 | + + '<p class="paragrafo" ><div id="editarAtributosMedidasVariavel" ></div></p>' | |
| 1009 | + + '<p class="paragrafo" ><div id="editarAtributosRegiao" ></div></p>' | |
| 1010 | + + '<p class="paragrafo" ><div id="editarAtributosForm" ></div></p>' | |
| 1011 | + + ''; | |
| 1012 | + return ins; | |
| 1013 | + }, | |
| 1014 | + /** | |
| 1015 | + * Monta um combo para escolha de uma variavel que sera editada Executa i3GEO.php.listaVariavel | |
| 1016 | + */ | |
| 1017 | + comboVariaveis : function() { | |
| 1018 | + var temp = | |
| 1019 | + function(dados) { | |
| 1020 | + var i, n = dados.length, ins = ''; | |
| 1021 | + ins += '<p class="paragrafo" >Escolha uma variável para editar</p>'; | |
| 1022 | + ins += | |
| 1023 | + "<select style='box-shadow:0 1px 5px gray;width:200px' onchange='i3GEO.editorGM.editarAtributos.comboMedidasVariavel(this)'><option value=''>---</option>"; | |
| 1024 | + for (i = 0; i < n; i++) { | |
| 1025 | + ins += | |
| 1026 | + "<option title='" + dados[i].descricao | |
| 1027 | + + "' value='" | |
| 1028 | + + dados[i].codigo_variavel | |
| 1029 | + + "'>" | |
| 1030 | + + dados[i].nome | |
| 1031 | + + "</option>"; | |
| 1032 | + } | |
| 1033 | + ins += "</select>"; | |
| 1034 | + $i("editarAtributosVariaveis").innerHTML = ins; | |
| 1035 | + }; | |
| 1036 | + i3GEO.php.listaVariavel(temp, "i3geo_metaestat"); | |
| 1037 | + }, | |
| 1038 | + /** | |
| 1039 | + * Monta um combo com as medidas de uma variavel Executa i3GEO.php.listaMedidaVariavel | |
| 1040 | + * | |
| 1041 | + * @param objeto | |
| 1042 | + * DOM do tipo select que contem a lista de variaveis | |
| 1043 | + */ | |
| 1044 | + comboMedidasVariavel : function(comboMedidas) { | |
| 1045 | + var temp = | |
| 1046 | + function(dados) { | |
| 1047 | + var i, n = dados.length, ins = ''; | |
| 1048 | + ins += '<p class="paragrafo" >Escolha uma medida da variável para editar</p>'; | |
| 1049 | + ins += | |
| 1050 | + "<select id='editarAtributosComboMedidas' style='box-shadow:0 1px 5px gray;width:200px' onchange=''><option value=''>---</option>"; | |
| 1051 | + for (i = 0; i < n; i++) { | |
| 1052 | + if (dados[i].esquemadb == "i3geo_metaestat" && dados[i].codigo_tipo_regiao == $i("i3geoCartoRegioesEditaveis").value) { | |
| 1053 | + ins += "<option value='" + dados[i].id_medida_variavel + "'>" + dados[i].nomemedida + "</option>"; | |
| 1054 | + } | |
| 1055 | + } | |
| 1056 | + | |
| 1057 | + ins += "</select>"; | |
| 1058 | + $i("editarAtributosMedidasVariavel").innerHTML = ins; | |
| 1059 | + }; | |
| 1060 | + if (comboMedidas.value !== "") { | |
| 1061 | + i3GEO.php.listaMedidaVariavel(comboMedidas.value, temp); | |
| 1062 | + } | |
| 1063 | + }, | |
| 1064 | + /** | |
| 1065 | + * Captura os atributos de um elemento do mapa Executa i3GEO.editorGM.editarAtributos.pegaDados(); | |
| 1066 | + */ | |
| 1067 | + captura : function() { | |
| 1068 | + if (!YAHOO.i3GEO.janela.manager.find("editaAtributos")) { | |
| 1069 | + i3GEO.editorGM.mudaicone(botao); | |
| 1070 | + return; | |
| 1071 | + } | |
| 1072 | + i3GEO.editorGM.editarAtributos.x = objposicaocursor.ddx; | |
| 1073 | + i3GEO.editorGM.editarAtributos.y = objposicaocursor.ddy; | |
| 1074 | + i3GEO.editorGM.editarAtributos.pegaDados(); | |
| 1075 | + }, | |
| 1076 | + /** | |
| 1077 | + * Obtem os dados de um elemento de uma regiao Monta o formulario para edicao Executa | |
| 1078 | + * admin/php/metaestat.php?funcao=listaAtributosMedidaVariavelXY | |
| 1079 | + */ | |
| 1080 | + pegaDados : function() { | |
| 1081 | + var p = i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=listaAtributosMedidaVariavelXY", codigo_tipo_regiao = | |
| 1082 | + $i("i3geoCartoRegioesEditaveis").value, id_medida_variavel = $i("editarAtributosComboMedidas").value, temp = | |
| 1083 | + function(retorno) { | |
| 1084 | + var atr = retorno.atributos, i = 0, n = atr.dados.length, j = 0, idunico = "", nj = atr.aliascolunas.length, ins = | |
| 1085 | + "" + '<p class=paragrafo >Limite geográfico escolhido:</p>' | |
| 1086 | + + '<p class=paragrafo ><b>Nome: </b>' | |
| 1087 | + + retorno.regiao.nomeregiao | |
| 1088 | + + '</p>' | |
| 1089 | + + '<p class=paragrafo ><b>Código: </b>' | |
| 1090 | + + retorno.regiao.identificador_regiao | |
| 1091 | + + '</p>' | |
| 1092 | + + '<input type=hidden id="editarAtributosidentificador_regiao" value="' | |
| 1093 | + + retorno.regiao.identificador_regiao | |
| 1094 | + + '" />' | |
| 1095 | + + '<p class=paragrafo >Atributos:</p>' | |
| 1096 | + + '<input id=editarAtributosAdicionar value="Adicionar um novo" />' | |
| 1097 | + + ' <input id=editarAtributosSalvar value="Salvar" />'; | |
| 1098 | + $i("editarAtributosRegiao").innerHTML = ins; | |
| 1099 | + ins = ""; | |
| 1100 | + // registros | |
| 1101 | + for (i = 0; i < n; i++) { | |
| 1102 | + // descobre qual o indice que corresponde ao idunico do registro | |
| 1103 | + for (j = 0; j < nj; j++) { | |
| 1104 | + if (atr.aliascolunas[j] == "idunico") { | |
| 1105 | + idunico = atr.dados[i][atr.colunas[j]]; | |
| 1106 | + } | |
| 1107 | + } | |
| 1108 | + ins += | |
| 1109 | + "<hr><div><p class=paragrafo style='color:blue;cursor:pointer' onclick='i3GEO.editorGM.editarAtributos.excluir(" + idunico | |
| 1110 | + + ")' >excluir</p>"; | |
| 1111 | + // colunas | |
| 1112 | + for (j = 0; j < nj; j++) { | |
| 1113 | + if (atr.aliascolunas[j] !== "idunico") { | |
| 1114 | + ins += | |
| 1115 | + '<p class=paragrafo >' + atr.aliascolunas[j] | |
| 1116 | + + ':<br>' | |
| 1117 | + + '<input class=digitar id="idunico_' | |
| 1118 | + + idunico | |
| 1119 | + + '" value="' | |
| 1120 | + + atr.dados[i][atr.colunas[j]] | |
| 1121 | + + '" name="' | |
| 1122 | + + atr.colunas[j] | |
| 1123 | + + '" /></p>'; | |
| 1124 | + } | |
| 1125 | + } | |
| 1126 | + } | |
| 1127 | + $i("editarAtributosForm").innerHTML = ins; | |
| 1128 | + new YAHOO.widget.Button("editarAtributosAdicionar", { | |
| 1129 | + onclick : { | |
| 1130 | + fn : function() { | |
| 1131 | + var novoel = document.createElement("div"), ins = "<hr><br>"; | |
| 1132 | + for (j = 0; j < nj; j++) { | |
| 1133 | + if (atr.aliascolunas[j] !== "idunico") { | |
| 1134 | + ins += | |
| 1135 | + '<p class=paragrafo >' + atr.aliascolunas[j] | |
| 1136 | + + ' - ' | |
| 1137 | + + atr.descricao[j] | |
| 1138 | + + ':<br>' | |
| 1139 | + + '<input class=digitar id="" value="" name="' | |
| 1140 | + + atr.colunas[j] | |
| 1141 | + + '" /></p>'; | |
| 1142 | + } | |
| 1143 | + } | |
| 1144 | + ins += "<br></div>"; | |
| 1145 | + novoel.innerHTML = ins; | |
| 1146 | + $i("editarAtributosForm").appendChild(novoel); | |
| 1147 | + } | |
| 1148 | + } | |
| 1149 | + }); | |
| 1150 | + new YAHOO.widget.Button("editarAtributosSalvar", { | |
| 1151 | + onclick : { | |
| 1152 | + fn : function() { | |
| 1153 | + i3GEO.editorGM.editarAtributos.salva(); | |
| 1154 | + } | |
| 1155 | + } | |
| 1156 | + }); | |
| 1157 | + }; | |
| 1158 | + cpJSON.call(p, "foo", temp, "&codigo_tipo_regiao=" + codigo_tipo_regiao | |
| 1159 | + + "&id_medida_variavel=" | |
| 1160 | + + id_medida_variavel | |
| 1161 | + + "&x=" | |
| 1162 | + + i3GEO.editorGM.editarAtributos.x | |
| 1163 | + + "&y=" | |
| 1164 | + + i3GEO.editorGM.editarAtributos.y); | |
| 1165 | + }, | |
| 1166 | + // FIXME redesenhar as camadas que sofrerem alteracoes em funcao do salvar ou excluir | |
| 1167 | + /** | |
| 1168 | + * Exclui o valor de uma medida de variavel para o componente de uma regiao | |
| 1169 | + */ | |
| 1170 | + excluir : function(id) { | |
| 1171 | + if (i3GEO.login.verificaCookieLogin() === false) { | |
| 1172 | + i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção"); | |
| 1173 | + return; | |
| 1174 | + } | |
| 1175 | + var p = i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=excluiAtributosMedidaVariavel", codigo_tipo_regiao = | |
| 1176 | + $i("i3geoCartoRegioesEditaveis").value, id_medida_variavel = $i("editarAtributosComboMedidas").value, identificador_regiao = | |
| 1177 | + $i("editarAtributosidentificador_regiao").value, temp = function(retorno) { | |
| 1178 | + i3GEO.editorGM.editarAtributos.pegaDados(); | |
| 1179 | + i3GEO.janela.fechaAguarde("aguardeSalvaAtributos"); | |
| 1180 | + }; | |
| 1181 | + i3GEO.janela.AGUARDEMODAL = true; | |
| 1182 | + i3GEO.janela.abreAguarde("aguardeSalvaAtributos", "Salvando..."); | |
| 1183 | + i3GEO.janela.AGUARDEMODAL = false; | |
| 1184 | + cpJSON.call(p, "foo", temp, "&codigo_tipo_regiao=" + codigo_tipo_regiao | |
| 1185 | + + "&identificador_regiao=" | |
| 1186 | + + identificador_regiao | |
| 1187 | + + "&id_medida_variavel=" | |
| 1188 | + + id_medida_variavel | |
| 1189 | + + "&id=" | |
| 1190 | + + id); | |
| 1191 | + | |
| 1192 | + }, | |
| 1193 | + /** | |
| 1194 | + * Salva os valores digitados | |
| 1195 | + */ | |
| 1196 | + salva : function() { | |
| 1197 | + if (i3GEO.login.verificaCookieLogin() === false) { | |
| 1198 | + i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção"); | |
| 1199 | + return; | |
| 1200 | + } | |
| 1201 | + var container = $i("editarAtributosForm"), divsT = container.getElementsByTagName("div"), n = divsT.length, i = 0, dv = "", inputs = | |
| 1202 | + "", codigo_tipo_regiao = $i("i3geoCartoRegioesEditaveis").value, id_medida_variavel = | |
| 1203 | + $i("editarAtributosComboMedidas").value, identificador_regiao = $i("editarAtributosidentificador_regiao").value, nj, j, colunas = | |
| 1204 | + [], colunasT = [], valores = [], valoresT = [], idsunicosT = [], p = | |
| 1205 | + i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=salvaAtributosMedidaVariavel", re = | |
| 1206 | + new RegExp("idunico_", "g"), // prefixo usado para marcar o id dos elementos input que contem os valores que se quer | |
| 1207 | + // obter | |
| 1208 | + temp = function(retorno) { | |
| 1209 | + i3GEO.editorGM.editarAtributos.pegaDados(); | |
| 1210 | + i3GEO.editorGM.atualizaCamadasMetaestat(); | |
| 1211 | + i3GEO.janela.fechaAguarde("aguardeSalvaAtributos"); | |
| 1212 | + }; | |
| 1213 | + if (codigo_tipo_regiao == "") { | |
| 1214 | + i3GEO.janela.tempoMsg("Problemas com o codigo da regiao"); | |
| 1215 | + return; | |
| 1216 | + } | |
| 1217 | + if (id_medida_variavel == "") { | |
| 1218 | + i3GEO.janela.tempoMsg("Escolha uma medida"); | |
| 1219 | + return; | |
| 1220 | + } | |
| 1221 | + if (identificador_regiao == "") { | |
| 1222 | + i3GEO.janela.tempoMsg("Problemas com o identificador da regiao"); | |
| 1223 | + return; | |
| 1224 | + } | |
| 1225 | + for (i = 0; i < n; i++) { | |
| 1226 | + dv = divsT[i]; | |
| 1227 | + inputs = dv.getElementsByTagName("input"); | |
| 1228 | + nj = inputs.length; | |
| 1229 | + colunas = []; | |
| 1230 | + valores = []; | |
| 1231 | + for (j = 0; j < nj; j++) { | |
| 1232 | + colunas.push(inputs[j].name); | |
| 1233 | + valores.push(inputs[j].value); | |
| 1234 | + } | |
| 1235 | + idsunicosT.push(inputs[0].id.replace(re, '')); | |
| 1236 | + colunasT.push(colunas.join("|")); | |
| 1237 | + valoresT.push(valores.join("|")); | |
| 1238 | + } | |
| 1239 | + i3GEO.janela.AGUARDEMODAL = true; | |
| 1240 | + i3GEO.janela.abreAguarde("aguardeSalvaAtributos", "Salvando..."); | |
| 1241 | + i3GEO.janela.AGUARDEMODAL = false; | |
| 1242 | + cpJSON.call(p, "foo", temp, "&codigo_tipo_regiao=" + codigo_tipo_regiao | |
| 1243 | + + "&identificador_regiao=" | |
| 1244 | + + identificador_regiao | |
| 1245 | + + "&id_medida_variavel=" | |
| 1246 | + + id_medida_variavel | |
| 1247 | + + "&colunas=" | |
| 1248 | + + colunasT[0] | |
| 1249 | + + "&valores=" | |
| 1250 | + + valoresT.join("#") | |
| 1251 | + + "&idsunicos=" | |
| 1252 | + + idsunicosT.join("|")); | |
| 1253 | + } | |
| 1254 | + }, | |
| 1255 | + /** | |
| 1256 | + * Abre a janela de ajuda sobre a operacao dos botoes do editor | |
| 1257 | + */ | |
| 1258 | + ajuda : function() { | |
| 1259 | + var titulo, cabecalho, minimiza, html = ""; | |
| 1260 | + cabecalho = function() { | |
| 1261 | + }; | |
| 1262 | + minimiza = function() { | |
| 1263 | + i3GEO.janela.minimiza("editaAtributosAjuda"); | |
| 1264 | + }; | |
| 1265 | + titulo = "<div class='i3GeoTituloJanela'>Ajuda </div>"; | |
| 1266 | + i3GEO.janela.cria("400px", "350px", "", "", "", titulo, "editaAtributosAjuda", false, "hd", cabecalho, minimiza); | |
| 1267 | + $i("editaAtributosAjuda_corpo").style.backgroundColor = "white"; | |
| 1268 | + html += | |
| 1269 | + "<table class=lista8 >" + "<tr><td><img src='" + i3GEO.configura.locaplic | |
| 1270 | + + "/imagens/gisicons/polygon-create.png' /></td>" | |
| 1271 | + + "<td>Clique no mapa para traçar um polígono novo. Cada clique corresponde a um vértice do polígono. Para encerrar o traçado utilize um duplo clique. Após traçar um novo polígono pode-se selecioná-lo novamente e editar os vértices, se for necessário, ou mesmo apagar o polígono por completo. O novo polígono só será salvo por meio da opção específica para isso.</td></tr>" | |
| 1272 | + + "<tr><td><img src='" | |
| 1273 | + + i3GEO.configura.locaplic | |
| 1274 | + + "/imagens/gisicons/layer-import.png' /></td>" | |
| 1275 | + + "<td>Utilize essa opção para capturar os vértices de um polígono existente. O resultado da captura é uma figura que pode ser editada, ou seja, os vértices podem ser modificados de posição ou mesmo removidos. Após editar, salve o novo polígono.</td></tr>" | |
| 1276 | + + "<tr><td><img src='" | |
| 1277 | + + i3GEO.configura.locaplic | |
| 1278 | + + "/imagens/gisicons/select.png' /></td>" | |
| 1279 | + + "<td>Após ativar essa opção clique no mapa sobre uma figura existente (que tenha sido capturada ou digtalizada). A figura passará então para o estado de 'selecionada' podendo ser utilizada por outras ferramentas de edição.</td></tr>" | |
| 1280 | + + "<tr><td><img src='" | |
| 1281 | + + i3GEO.configura.locaplic | |
| 1282 | + + "/imagens/gisicons/selected-delete.png' /></td>" | |
| 1283 | + + "<td>Remove da tela a figura que estiver selecionada. Essa operação não apaga o polígono do banco de dados, apenas remove do modo de edição.</td></tr>" | |
| 1284 | + + "<tr><td><img src='" | |
| 1285 | + + i3GEO.configura.locaplic | |
| 1286 | + + "/imagens/gisicons/vector-save.png' /></td>" | |
| 1287 | + + "<td>Salva no banco de dados a figura que estiver selecionada. Essa opção altera apenas os atributos do limite geográfico, não afetando os valores armazenados em cada medida de variável.</td></tr>" | |
| 1288 | + + "<tr><td><img src='" | |
| 1289 | + + i3GEO.configura.locaplic | |
| 1290 | + + "/imagens/gisicons/annotation-form.png' /></td>" | |
| 1291 | + + "<td>Abre um formulário que permite alterar os valores de uma medida de variável relacionada a uma determinada região. Após abrir o formulário, clique no mapa sobre a região desejada, mas escolha a medida da variável primeiro. Os valores já existentes poderão então ser alterados ou podem ser adicionados novos.</td></tr>" | |
| 1292 | + + "</table>"; | |
| 1293 | + $i("editaAtributosAjuda_corpo").innerHTML = html; | |
| 1294 | + } | |
| 1295 | + }; | |
| 1296 | + | |
| 1297 | +// copia do original de pacotes/wicket | |
| 1298 | + | |
| 1299 | +/* global Wkt, google, document, window, console */ | |
| 1300 | +google.maps.Marker.prototype.type = 'marker'; | |
| 1301 | +google.maps.Polyline.prototype.type = 'polyline'; | |
| 1302 | +google.maps.Polygon.prototype.type = 'polygon'; | |
| 1303 | +google.maps.Rectangle.prototype.type = 'rectangle'; | |
| 1304 | +google.maps.Circle.prototype.type = 'circle'; | |
| 1305 | + | |
| 1306 | +/** | |
| 1307 | + * @license | |
| 1308 | + * | |
| 1309 | + * Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu) Michigan Tech Research Institute (MTRI) 3600 Green Court, Suite 100, Ann Arbor, | |
| 1310 | + * MI, 48105 | |
| 1311 | + * | |
| 1312 | + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by | |
| 1313 | + * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. | |
| 1314 | + * | |
| 1315 | + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 1316 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |
| 1317 | + * | |
| 1318 | + * You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 1319 | + * | |
| 1320 | + */ | |
| 1321 | +(function(Wkt) { | |
| 1322 | + | |
| 1323 | + /** | |
| 1324 | + * @augments Wkt.Wkt A framework-dependent flag, set for each Wkt.Wkt() instance, that indicates whether or not a closed polygon | |
| 1325 | + * geometry should be interpreted as a rectangle. | |
| 1326 | + */ | |
| 1327 | + Wkt.Wkt.prototype.isRectangle = false; | |
| 1328 | + | |
| 1329 | + /** | |
| 1330 | + * @augments Wkt.Wkt An object of framework-dependent construction methods used to generate objects belonging to the various geometry | |
| 1331 | + * classes of the framework. | |
| 1332 | + */ | |
| 1333 | + Wkt.Wkt.prototype.construct = { | |
| 1334 | + /** | |
| 1335 | + * Creates the framework's equivalent point geometry object. | |
| 1336 | + * | |
| 1337 | + * @param config | |
| 1338 | + * {Object} An optional properties hash the object should use | |
| 1339 | + * @param component | |
| 1340 | + * {Object} An optional component to build from | |
| 1341 | + * @return {google.maps.Marker} | |
| 1342 | + */ | |
| 1343 | + point : function(config, component) { | |
| 1344 | + var c = component || this.components; | |
| 1345 | + | |
| 1346 | + config = config || {}; | |
| 1347 | + | |
| 1348 | + config.position = new google.maps.LatLng(c[0].y, c[0].x); | |
| 1349 | + | |
| 1350 | + return new google.maps.Marker(config); | |
| 1351 | + }, | |
| 1352 | + | |
| 1353 | + /** | |
| 1354 | + * Creates the framework's equivalent multipoint geometry object. | |
| 1355 | + * | |
| 1356 | + * @param config | |
| 1357 | + * {Object} An optional properties hash the object should use | |
| 1358 | + * @return {Array} Array containing multiple google.maps.Marker | |
| 1359 | + */ | |
| 1360 | + multipoint : function(config) { | |
| 1361 | + var i, c, arr; | |
| 1362 | + | |
| 1363 | + c = this.components; | |
| 1364 | + | |
| 1365 | + config = config || {}; | |
| 1366 | + | |
| 1367 | + arr = []; | |
| 1368 | + | |
| 1369 | + for (i = 0; i < c.length; i += 1) { | |
| 1370 | + arr.push(this.construct.point(config, c[i])); | |
| 1371 | + } | |
| 1372 | + | |
| 1373 | + return arr; | |
| 1374 | + }, | |
| 1375 | + | |
| 1376 | + /** | |
| 1377 | + * Creates the framework's equivalent linestring geometry object. | |
| 1378 | + * | |
| 1379 | + * @param config | |
| 1380 | + * {Object} An optional properties hash the object should use | |
| 1381 | + * @param component | |
| 1382 | + * {Object} An optional component to build from | |
| 1383 | + * @return {google.maps.Polyline} | |
| 1384 | + */ | |
| 1385 | + linestring : function(config, component) { | |
| 1386 | + var i, c; | |
| 1387 | + | |
| 1388 | + c = component || this.components; | |
| 1389 | + | |
| 1390 | + config = config || { | |
| 1391 | + editable : false | |
| 1392 | + }; | |
| 1393 | + | |
| 1394 | + config.path = []; | |
| 1395 | + | |
| 1396 | + for (i = 0; i < c.length; i += 1) { | |
| 1397 | + config.path.push(new google.maps.LatLng(c[i].y, c[i].x)); | |
| 1398 | + } | |
| 1399 | + | |
| 1400 | + return new google.maps.Polyline(config); | |
| 1401 | + }, | |
| 1402 | + | |
| 1403 | + /** | |
| 1404 | + * Creates the framework's equivalent multilinestring geometry object. | |
| 1405 | + * | |
| 1406 | + * @param config | |
| 1407 | + * {Object} An optional properties hash the object should use | |
| 1408 | + * @return {Array} Array containing multiple google.maps.Polyline instances | |
| 1409 | + */ | |
| 1410 | + multilinestring : function(config) { | |
| 1411 | + var i, c, arr; | |
| 1412 | + | |
| 1413 | + c = this.components; | |
| 1414 | + | |
| 1415 | + config = config || { | |
| 1416 | + editable : false | |
| 1417 | + }; | |
| 1418 | + | |
| 1419 | + config.path = []; | |
| 1420 | + | |
| 1421 | + arr = []; | |
| 1422 | + | |
| 1423 | + for (i = 0; i < c.length; i += 1) { | |
| 1424 | + arr.push(this.construct.linestring(config, c[i])); | |
| 1425 | + } | |
| 1426 | + | |
| 1427 | + return arr; | |
| 1428 | + }, | |
| 1429 | + | |
| 1430 | + /** | |
| 1431 | + * Creates the framework's equivalent Box or Rectangle geometry object. | |
| 1432 | + * | |
| 1433 | + * @param config | |
| 1434 | + * {Object} An optional properties hash the object should use | |
| 1435 | + * @param component | |
| 1436 | + * {Object} An optional component to build from | |
| 1437 | + * @return {google.maps.Rectangle} | |
| 1438 | + */ | |
| 1439 | + box : function(config, component) { | |
| 1440 | + var c = component || this.components; | |
| 1441 | + | |
| 1442 | + config = config || {}; | |
| 1443 | + | |
| 1444 | + config.bounds = new google.maps.LatLngBounds(new google.maps.LatLng(c[0].y, c[0].x), new google.maps.LatLng(c[1].y, c[1].x)); | |
| 1445 | + | |
| 1446 | + return new google.maps.Rectangle(config); | |
| 1447 | + }, | |
| 1448 | + | |
| 1449 | + /** | |
| 1450 | + * Creates the framework's equivalent polygon geometry object. | |
| 1451 | + * | |
| 1452 | + * @param config | |
| 1453 | + * {Object} An optional properties hash the object should use | |
| 1454 | + * @param component | |
| 1455 | + * {Object} An optional component to build from | |
| 1456 | + * @return {google.maps.Polygon} | |
| 1457 | + */ | |
| 1458 | + polygon : function(config, component) { | |
| 1459 | + var j, k, c, rings, verts; | |
| 1460 | + | |
| 1461 | + c = component || this.components; | |
| 1462 | + | |
| 1463 | + config = config || { | |
| 1464 | + editable : false | |
| 1465 | + // Editable geometry off by default | |
| 1466 | + }; | |
| 1467 | + | |
| 1468 | + config.paths = []; | |
| 1469 | + | |
| 1470 | + rings = []; | |
| 1471 | + for (j = 0; j < c.length; j += 1) { // For each ring... | |
| 1472 | + | |
| 1473 | + verts = []; | |
| 1474 | + // NOTE: We iterate to one (1) less than the Array length to skip the last vertex | |
| 1475 | + for (k = 0; k < c[j].length - 1; k += 1) { // For each vertex... | |
| 1476 | + verts.push(new google.maps.LatLng(c[j][k].y, c[j][k].x)); | |
| 1477 | + | |
| 1478 | + } // eo for each vertex | |
| 1479 | + | |
| 1480 | + if (j !== 0) { // Reverse the order of coordinates in inner rings | |
| 1481 | + if (config.reverseInnerPolygons == null || config.reverseInnerPolygons) { | |
| 1482 | + verts.reverse(); | |
| 1483 | + } | |
| 1484 | + } | |
| 1485 | + | |
| 1486 | + rings.push(verts); | |
| 1487 | + } // eo for each ring | |
| 1488 | + | |
| 1489 | + config.paths = config.paths.concat(rings); | |
| 1490 | + | |
| 1491 | + if (this.isRectangle) { | |
| 1492 | + return (function() { | |
| 1493 | + var bounds, v = 0; | |
| 1494 | + | |
| 1495 | + bounds = new google.maps.LatLngBounds(); | |
| 1496 | + | |
| 1497 | + for (v in rings[0]) { // Ought to be only 1 ring in a Rectangle | |
| 1498 | + if (rings[0].hasOwnProperty(v)) { | |
| 1499 | + bounds.extend(rings[0][v]); | |
| 1500 | + } | |
| 1501 | + } | |
| 1502 | + | |
| 1503 | + return new google.maps.Rectangle({ | |
| 1504 | + bounds : bounds | |
| 1505 | + }); | |
| 1506 | + }()); | |
| 1507 | + } else { | |
| 1508 | + return new google.maps.Polygon(config); | |
| 1509 | + } | |
| 1510 | + }, | |
| 1511 | + | |
| 1512 | + /** | |
| 1513 | + * Creates the framework's equivalent multipolygon geometry object. | |
| 1514 | + * | |
| 1515 | + * @param config | |
| 1516 | + * {Object} An optional properties hash the object should use | |
| 1517 | + * @return {Array} Array containing multiple google.maps.Polygon | |
| 1518 | + */ | |
| 1519 | + multipolygon : function(config) { | |
| 1520 | + var i, c, arr; | |
| 1521 | + | |
| 1522 | + c = this.components; | |
| 1523 | + | |
| 1524 | + config = config || { | |
| 1525 | + editable : false | |
| 1526 | + }; | |
| 1527 | + | |
| 1528 | + config.path = []; | |
| 1529 | + | |
| 1530 | + arr = []; | |
| 1531 | + | |
| 1532 | + for (i = 0; i < c.length; i += 1) { | |
| 1533 | + arr.push(this.construct.polygon(config, c[i])); | |
| 1534 | + } | |
| 1535 | + | |
| 1536 | + return arr; | |
| 1537 | + } | |
| 1538 | + | |
| 1539 | + }; | |
| 1540 | + | |
| 1541 | + /** | |
| 1542 | + * @augments Wkt.Wkt A framework-dependent deconstruction method used to generate internal geometric representations from instances of | |
| 1543 | + * framework geometry. This method uses object detection to attempt to classify members of framework geometry classes into the | |
| 1544 | + * standard WKT types. | |
| 1545 | + * @param obj | |
| 1546 | + * {Object} An instance of one of the framework's geometry classes | |
| 1547 | + * @param multiFlag | |
| 1548 | + * {Boolean} If true, then the deconstructor will be forced to return a MultiGeometry (multipoint, multilinestring or | |
| 1549 | + * multipolygon) | |
| 1550 | + * @return {Object} A hash of the 'type' and 'components' thus derived, plus the WKT string of the feature. | |
| 1551 | + */ | |
| 1552 | + Wkt.Wkt.prototype.deconstruct = | |
| 1553 | + function(obj, multiFlag) { | |
| 1554 | + var features, i, j, verts, rings, sign, tmp, response, lat, lng; | |
| 1555 | + | |
| 1556 | + // Shortcut to signed area function (determines clockwise vs counter-clock) | |
| 1557 | + if (google.maps.geometry) { | |
| 1558 | + sign = google.maps.geometry.spherical.computeSignedArea; | |
| 1559 | + } | |
| 1560 | + ; | |
| 1561 | + | |
| 1562 | + // google.maps.LatLng ////////////////////////////////////////////////////// | |
| 1563 | + if (obj.constructor === google.maps.LatLng) { | |
| 1564 | + | |
| 1565 | + response = { | |
| 1566 | + type : 'point', | |
| 1567 | + components : [ | |
| 1568 | + { | |
| 1569 | + x : obj.lng(), | |
| 1570 | + y : obj.lat() | |
| 1571 | + } | |
| 1572 | + ] | |
| 1573 | + }; | |
| 1574 | + return response; | |
| 1575 | + } | |
| 1576 | + | |
| 1577 | + // google.maps.Point ////////////////////////////////////////////////////// | |
| 1578 | + if (obj.constructor === google.maps.Point) { | |
| 1579 | + response = { | |
| 1580 | + type : 'point', | |
| 1581 | + components : [ | |
| 1582 | + { | |
| 1583 | + x : obj.x, | |
| 1584 | + y : obj.y | |
| 1585 | + } | |
| 1586 | + ] | |
| 1587 | + }; | |
| 1588 | + return response; | |
| 1589 | + } | |
| 1590 | + | |
| 1591 | + // google.maps.Marker ////////////////////////////////////////////////////// | |
| 1592 | + if (obj.constructor === google.maps.Marker) { | |
| 1593 | + response = { | |
| 1594 | + type : 'point', | |
| 1595 | + components : [ | |
| 1596 | + { | |
| 1597 | + x : obj.getPosition().lng(), | |
| 1598 | + y : obj.getPosition().lat() | |
| 1599 | + } | |
| 1600 | + ] | |
| 1601 | + }; | |
| 1602 | + return response; | |
| 1603 | + } | |
| 1604 | + | |
| 1605 | + // google.maps.Polyline //////////////////////////////////////////////////// | |
| 1606 | + if (obj.constructor === google.maps.Polyline) { | |
| 1607 | + | |
| 1608 | + verts = []; | |
| 1609 | + for (i = 0; i < obj.getPath().length; i += 1) { | |
| 1610 | + tmp = obj.getPath().getAt(i); | |
| 1611 | + verts.push({ | |
| 1612 | + x : tmp.lng(), | |
| 1613 | + y : tmp.lat() | |
| 1614 | + }); | |
| 1615 | + } | |
| 1616 | + response = { | |
| 1617 | + type : 'linestring', | |
| 1618 | + components : verts | |
| 1619 | + }; | |
| 1620 | + return response; | |
| 1621 | + | |
| 1622 | + } | |
| 1623 | + | |
| 1624 | + // google.maps.Polygon ///////////////////////////////////////////////////// | |
| 1625 | + if (obj.constructor === google.maps.Polygon) { | |
| 1626 | + | |
| 1627 | + rings = []; | |
| 1628 | + | |
| 1629 | + if (multiFlag === undefined) { | |
| 1630 | + multiFlag = (function() { | |
| 1631 | + var areas, l; | |
| 1632 | + | |
| 1633 | + l = obj.getPaths().length; | |
| 1634 | + if (l <= 1) { // Trivial; this is a single polygon | |
| 1635 | + return false; | |
| 1636 | + } | |
| 1637 | + | |
| 1638 | + if (l === 2) { | |
| 1639 | + // If clockwise*clockwise or counter*counter, i.e. | |
| 1640 | + // (-1)*(-1) or (1)*(1), then result would be positive | |
| 1641 | + if (sign(obj.getPaths().getAt(0)) * sign(obj.getPaths().getAt(1)) < 0) { | |
| 1642 | + return false; // Most likely single polygon with 1 hole | |
| 1643 | + } | |
| 1644 | + | |
| 1645 | + return true; | |
| 1646 | + } | |
| 1647 | + | |
| 1648 | + // Must be longer than 3 polygons at this point... | |
| 1649 | + areas = obj.getPaths().getArray().map(function(k) { | |
| 1650 | + return sign(k) / Math.abs(sign(k)); // Unit normalization (outputs 1 or -1) | |
| 1651 | + }); | |
| 1652 | + | |
| 1653 | + // If two clockwise or two counter-clockwise rings are found | |
| 1654 | + // (at different indices)... | |
| 1655 | + if (areas.indexOf(areas[0]) !== areas.lastIndexOf(areas[0])) { | |
| 1656 | + multiFlag = true; // Flag for holes in one or more polygons | |
| 1657 | + return true; | |
| 1658 | + } | |
| 1659 | + | |
| 1660 | + return false; | |
| 1661 | + | |
| 1662 | + }()); | |
| 1663 | + } | |
| 1664 | + | |
| 1665 | + for (i = 0; i < obj.getPaths().length; i += 1) { // For each polygon (ring)... | |
| 1666 | + tmp = obj.getPaths().getAt(i); | |
| 1667 | + verts = []; | |
| 1668 | + for (j = 0; j < obj.getPaths().getAt(i).length; j += 1) { // For each vertex... | |
| 1669 | + verts.push({ | |
| 1670 | + x : tmp.getAt(j).lng(), | |
| 1671 | + y : tmp.getAt(j).lat() | |
| 1672 | + }); | |
| 1673 | + | |
| 1674 | + } | |
| 1675 | + | |
| 1676 | + if (!tmp.getAt(tmp.length - 1).equals(tmp.getAt(0))) { | |
| 1677 | + if (i % 2 !== 0) { // In inner rings, coordinates are reversed... | |
| 1678 | + verts.unshift({ // Add the first coordinate again for closure | |
| 1679 | + x : tmp.getAt(tmp.length - 1).lng(), | |
| 1680 | + y : tmp.getAt(tmp.length - 1).lat() | |
| 1681 | + }); | |
| 1682 | + | |
| 1683 | + } else { | |
| 1684 | + verts.push({ // Add the first coordinate again for closure | |
| 1685 | + x : tmp.getAt(0).lng(), | |
| 1686 | + y : tmp.getAt(0).lat() | |
| 1687 | + }); | |
| 1688 | + | |
| 1689 | + } | |
| 1690 | + | |
| 1691 | + } | |
| 1692 | + | |
| 1693 | + if (obj.getPaths().length > 1 && i > 0) { | |
| 1694 | + // If this and the last ring have the same signs... | |
| 1695 | + if (sign(obj.getPaths().getAt(i)) > 0 && sign(obj.getPaths().getAt(i - 1)) > 0 | |
| 1696 | + || sign(obj.getPaths().getAt(i)) < 0 | |
| 1697 | + && sign(obj.getPaths().getAt(i - 1)) < 0 | |
| 1698 | + && !multiFlag) { | |
| 1699 | + // ...They must both be inner rings (or both be outer rings, in a multipolygon) | |
| 1700 | + verts = [ | |
| 1701 | + verts | |
| 1702 | + ]; // Wrap multipolygons once more (collection) | |
| 1703 | + } | |
| 1704 | + | |
| 1705 | + } | |
| 1706 | + | |
| 1707 | + if (i % 2 !== 0) { // In inner rings, coordinates are reversed... | |
| 1708 | + verts.reverse(); | |
| 1709 | + } | |
| 1710 | + rings.push(verts); | |
| 1711 | + } | |
| 1712 | + | |
| 1713 | + response = { | |
| 1714 | + type : (multiFlag) ? 'multipolygon' : 'polygon', | |
| 1715 | + components : rings | |
| 1716 | + }; | |
| 1717 | + return response; | |
| 1718 | + | |
| 1719 | + } | |
| 1720 | + | |
| 1721 | + // google.maps.Circle ////////////////////////////////////////////////////// | |
| 1722 | + if (obj.constructor === google.maps.Circle) { | |
| 1723 | + var point = obj.getCenter(); | |
| 1724 | + var radius = obj.getRadius(); | |
| 1725 | + verts = []; | |
| 1726 | + var d2r = Math.PI / 180; // degrees to radians | |
| 1727 | + var r2d = 180 / Math.PI; // radians to degrees | |
| 1728 | + radius = radius / 1609; // meters to miles | |
| 1729 | + var earthsradius = 3963; // 3963 is the radius of the earth in miles | |
| 1730 | + var num_seg = 32; // number of segments used to approximate a circle | |
| 1731 | + var rlat = (radius / earthsradius) * r2d; | |
| 1732 | + var rlng = rlat / Math.cos(point.lat() * d2r); | |
| 1733 | + | |
| 1734 | + for (var n = 0; n <= num_seg; n++) { | |
| 1735 | + var theta = Math.PI * (n / (num_seg / 2)); | |
| 1736 | + lng = point.lng() + (rlng * Math.cos(theta)); // center a + radius x * cos(theta) | |
| 1737 | + lat = point.lat() + (rlat * Math.sin(theta)); // center b + radius y * sin(theta) | |
| 1738 | + verts.push({ | |
| 1739 | + x : lng, | |
| 1740 | + y : lat | |
| 1741 | + }); | |
| 1742 | + } | |
| 1743 | + | |
| 1744 | + response = { | |
| 1745 | + type : 'polygon', | |
| 1746 | + components : [ | |
| 1747 | + verts | |
| 1748 | + ] | |
| 1749 | + }; | |
| 1750 | + | |
| 1751 | + return response; | |
| 1752 | + | |
| 1753 | + } | |
| 1754 | + | |
| 1755 | + // google.maps.LatLngBounds /////////////////////////////////////////////////// | |
| 1756 | + if (obj.constructor === google.maps.LatLngBounds) { | |
| 1757 | + | |
| 1758 | + tmp = obj; | |
| 1759 | + verts = []; | |
| 1760 | + verts.push({ // NW corner | |
| 1761 | + x : tmp.getSouthWest().lng(), | |
| 1762 | + y : tmp.getNorthEast().lat() | |
| 1763 | + }); | |
| 1764 | + | |
| 1765 | + verts.push({ // NE corner | |
| 1766 | + x : tmp.getNorthEast().lng(), | |
| 1767 | + y : tmp.getNorthEast().lat() | |
| 1768 | + }); | |
| 1769 | + | |
| 1770 | + verts.push({ // SE corner | |
| 1771 | + x : tmp.getNorthEast().lng(), | |
| 1772 | + y : tmp.getSouthWest().lat() | |
| 1773 | + }); | |
| 1774 | + | |
| 1775 | + verts.push({ // SW corner | |
| 1776 | + x : tmp.getSouthWest().lng(), | |
| 1777 | + y : tmp.getSouthWest().lat() | |
| 1778 | + }); | |
| 1779 | + | |
| 1780 | + verts.push({ // NW corner (again, for closure) | |
| 1781 | + x : tmp.getSouthWest().lng(), | |
| 1782 | + y : tmp.getNorthEast().lat() | |
| 1783 | + }); | |
| 1784 | + | |
| 1785 | + response = { | |
| 1786 | + type : 'polygon', | |
| 1787 | + isRectangle : true, | |
| 1788 | + components : [ | |
| 1789 | + verts | |
| 1790 | + ] | |
| 1791 | + }; | |
| 1792 | + | |
| 1793 | + return response; | |
| 1794 | + | |
| 1795 | + } | |
| 1796 | + | |
| 1797 | + // google.maps.Rectangle /////////////////////////////////////////////////// | |
| 1798 | + if (obj.constructor === google.maps.Rectangle) { | |
| 1799 | + | |
| 1800 | + tmp = obj.getBounds(); | |
| 1801 | + verts = []; | |
| 1802 | + verts.push({ // NW corner | |
| 1803 | + x : tmp.getSouthWest().lng(), | |
| 1804 | + y : tmp.getNorthEast().lat() | |
| 1805 | + }); | |
| 1806 | + | |
| 1807 | + verts.push({ // NE corner | |
| 1808 | + x : tmp.getNorthEast().lng(), | |
| 1809 | + y : tmp.getNorthEast().lat() | |
| 1810 | + }); | |
| 1811 | + | |
| 1812 | + verts.push({ // SE corner | |
| 1813 | + x : tmp.getNorthEast().lng(), | |
| 1814 | + y : tmp.getSouthWest().lat() | |
| 1815 | + }); | |
| 1816 | + | |
| 1817 | + verts.push({ // SW corner | |
| 1818 | + x : tmp.getSouthWest().lng(), | |
| 1819 | + y : tmp.getSouthWest().lat() | |
| 1820 | + }); | |
| 1821 | + | |
| 1822 | + verts.push({ // NW corner (again, for closure) | |
| 1823 | + x : tmp.getSouthWest().lng(), | |
| 1824 | + y : tmp.getNorthEast().lat() | |
| 1825 | + }); | |
| 1826 | + | |
| 1827 | + response = { | |
| 1828 | + type : 'polygon', | |
| 1829 | + isRectangle : true, | |
| 1830 | + components : [ | |
| 1831 | + verts | |
| 1832 | + ] | |
| 1833 | + }; | |
| 1834 | + | |
| 1835 | + return response; | |
| 1836 | + | |
| 1837 | + } | |
| 1838 | + | |
| 1839 | + // google.maps.Data Geometry Types ///////////////////////////////////////////////////// | |
| 1840 | + | |
| 1841 | + // google.maps.Data.Feature ///////////////////////////////////////////////////// | |
| 1842 | + if (obj.constructor === google.maps.Data.Feature) { | |
| 1843 | + return this.deconstruct.call(this, obj.getGeometry()); | |
| 1844 | + } | |
| 1845 | + | |
| 1846 | + // google.maps.Data.Point ///////////////////////////////////////////////////// | |
| 1847 | + if (obj.constructor === google.maps.Data.Point) { | |
| 1848 | + // console.log('It is a google.maps.Data.Point'); | |
| 1849 | + response = { | |
| 1850 | + type : 'point', | |
| 1851 | + components : [ | |
| 1852 | + { | |
| 1853 | + x : obj.get().lng(), | |
| 1854 | + y : obj.get().lat() | |
| 1855 | + } | |
| 1856 | + ] | |
| 1857 | + }; | |
| 1858 | + return response; | |
| 1859 | + } | |
| 1860 | + | |
| 1861 | + // google.maps.Data.LineString ///////////////////////////////////////////////////// | |
| 1862 | + if (obj.constructor === google.maps.Data.LineString) { | |
| 1863 | + verts = []; | |
| 1864 | + // console.log('It is a google.maps.Data.LineString'); | |
| 1865 | + for (i = 0; i < obj.getLength(); i += 1) { | |
| 1866 | + vertex = obj.getAt(i); | |
| 1867 | + verts.push({ | |
| 1868 | + x : vertex.lng(), | |
| 1869 | + y : vertex.lat() | |
| 1870 | + }); | |
| 1871 | + } | |
| 1872 | + response = { | |
| 1873 | + type : 'linestring', | |
| 1874 | + components : verts | |
| 1875 | + }; | |
| 1876 | + return response; | |
| 1877 | + } | |
| 1878 | + | |
| 1879 | + // google.maps.Data.Polygon ///////////////////////////////////////////////////// | |
| 1880 | + if (obj.constructor === google.maps.Data.Polygon) { | |
| 1881 | + var rings = []; | |
| 1882 | + // console.log('It is a google.maps.Data.Polygon'); | |
| 1883 | + for (i = 0; i < obj.getLength(); i += 1) { // For each ring... | |
| 1884 | + ring = obj.getAt(i); | |
| 1885 | + var verts = []; | |
| 1886 | + for (j = 0; j < ring.getLength(); j += 1) { // For each vertex... | |
| 1887 | + vertex = ring.getAt(j); | |
| 1888 | + verts.push({ | |
| 1889 | + x : vertex.lng(), | |
| 1890 | + y : vertex.lat() | |
| 1891 | + }); | |
| 1892 | + } | |
| 1893 | + verts.push({ | |
| 1894 | + x : ring.getAt(0).lng(), | |
| 1895 | + y : ring.getAt(0).lat() | |
| 1896 | + }); | |
| 1897 | + | |
| 1898 | + rings.push(verts); | |
| 1899 | + } | |
| 1900 | + response = { | |
| 1901 | + type : 'polygon', | |
| 1902 | + components : rings | |
| 1903 | + }; | |
| 1904 | + | |
| 1905 | + return response; | |
| 1906 | + } | |
| 1907 | + | |
| 1908 | + // google.maps.Data.MultiPoint ///////////////////////////////////////////////////// | |
| 1909 | + if (obj.constructor === google.maps.Data.MultiPoint) { | |
| 1910 | + verts = []; | |
| 1911 | + for (i = 0; i < obj.getLength(); i += 1) { | |
| 1912 | + vertex = obj.getAt(i); | |
| 1913 | + verts.push([ | |
| 1914 | + { | |
| 1915 | + x : vertex.lng(), | |
| 1916 | + y : vertex.lat() | |
| 1917 | + } | |
| 1918 | + ]); | |
| 1919 | + } | |
| 1920 | + response = { | |
| 1921 | + type : 'multipoint', | |
| 1922 | + components : verts | |
| 1923 | + }; | |
| 1924 | + return response; | |
| 1925 | + } | |
| 1926 | + | |
| 1927 | + // google.maps.Data.MultiLineString ///////////////////////////////////////////////////// | |
| 1928 | + if (obj.constructor === google.maps.Data.MultiLineString) { | |
| 1929 | + linestrings = []; | |
| 1930 | + for (i = 0; i < obj.getLength(); i += 1) { | |
| 1931 | + verts = []; | |
| 1932 | + var linestring = obj.getAt(i); | |
| 1933 | + for (j = 0; j < linestring.getLength(); j += 1) { | |
| 1934 | + vertex = linestring.getAt(j); | |
| 1935 | + verts.push({ | |
| 1936 | + x : vertex.lng(), | |
| 1937 | + y : vertex.lat() | |
| 1938 | + }); | |
| 1939 | + } | |
| 1940 | + linestrings.push(verts); | |
| 1941 | + } | |
| 1942 | + response = { | |
| 1943 | + type : 'multilinestring', | |
| 1944 | + components : linestrings | |
| 1945 | + }; | |
| 1946 | + return response; | |
| 1947 | + } | |
| 1948 | + | |
| 1949 | + // google.maps.Data.MultiPolygon ///////////////////////////////////////////////////// | |
| 1950 | + if (obj.constructor === google.maps.Data.MultiPolygon) { | |
| 1951 | + | |
| 1952 | + var k = 0, polygons = []; | |
| 1953 | + | |
| 1954 | + // console.log('It is a google.maps.Data.MultiPolygon'); | |
| 1955 | + for (k = 0; k < obj.getLength(); k += 1) { // For each multipolygon | |
| 1956 | + var polygon = obj.getAt(k); | |
| 1957 | + var rings = []; | |
| 1958 | + for (i = 0; i < polygon.getLength(); i += 1) { // For each ring... | |
| 1959 | + ring = polygon.getAt(i); | |
| 1960 | + var verts = []; | |
| 1961 | + for (j = 0; j < ring.getLength(); j += 1) { // For each vertex... | |
| 1962 | + vertex = ring.getAt(j); | |
| 1963 | + verts.push({ | |
| 1964 | + x : vertex.lng(), | |
| 1965 | + y : vertex.lat() | |
| 1966 | + }); | |
| 1967 | + } | |
| 1968 | + verts.push({ | |
| 1969 | + x : ring.getAt(0).lng(), | |
| 1970 | + y : ring.getAt(0).lat() | |
| 1971 | + }); | |
| 1972 | + | |
| 1973 | + rings.push(verts); | |
| 1974 | + } | |
| 1975 | + polygons.push(rings); | |
| 1976 | + } | |
| 1977 | + | |
| 1978 | + response = { | |
| 1979 | + type : 'multipolygon', | |
| 1980 | + components : polygons | |
| 1981 | + }; | |
| 1982 | + return response; | |
| 1983 | + } | |
| 1984 | + | |
| 1985 | + // google.maps.Data.GeometryCollection ///////////////////////////////////////////////////// | |
| 1986 | + if (obj.constructor === google.maps.Data.GeometryCollection) { | |
| 1987 | + | |
| 1988 | + var objects = []; | |
| 1989 | + for (k = 0; k < obj.getLength(); k += 1) { // For each multipolygon | |
| 1990 | + var object = obj.getAt(k); | |
| 1991 | + objects.push(this.deconstruct.call(this, object)); | |
| 1992 | + } | |
| 1993 | + // console.log('It is a google.maps.Data.GeometryCollection', objects); | |
| 1994 | + response = { | |
| 1995 | + type : 'geometrycollection', | |
| 1996 | + components : objects | |
| 1997 | + }; | |
| 1998 | + return response; | |
| 1999 | + } | |
| 2000 | + | |
| 2001 | + // Array /////////////////////////////////////////////////////////////////// | |
| 2002 | + if (Wkt.isArray(obj)) { | |
| 2003 | + features = []; | |
| 2004 | + | |
| 2005 | + for (i = 0; i < obj.length; i += 1) { | |
| 2006 | + features.push(this.deconstruct.call(this, obj[i], true)); | |
| 2007 | + } | |
| 2008 | + | |
| 2009 | + response = { | |
| 2010 | + | |
| 2011 | + type : (function() { | |
| 2012 | + var k, type = obj[0].constructor; | |
| 2013 | + | |
| 2014 | + for (k = 0; k < obj.length; k += 1) { | |
| 2015 | + // Check that all items have the same constructor as the first item | |
| 2016 | + if (obj[k].constructor !== type) { | |
| 2017 | + // If they don't, type is heterogeneous geometry collection | |
| 2018 | + return 'geometrycollection'; | |
| 2019 | + } | |
| 2020 | + } | |
| 2021 | + | |
| 2022 | + switch (type) { | |
| 2023 | + case google.maps.Marker: | |
| 2024 | + return 'multipoint'; | |
| 2025 | + case google.maps.Polyline: | |
| 2026 | + return 'multilinestring'; | |
| 2027 | + case google.maps.Polygon: | |
| 2028 | + return 'multipolygon'; | |
| 2029 | + default: | |
| 2030 | + return 'geometrycollection'; | |
| 2031 | + } | |
| 2032 | + | |
| 2033 | + }()), | |
| 2034 | + components : (function() { | |
| 2035 | + // Pluck the components from each Wkt | |
| 2036 | + var i, comps; | |
| 2037 | + | |
| 2038 | + comps = []; | |
| 2039 | + for (i = 0; i < features.length; i += 1) { | |
| 2040 | + if (features[i].components) { | |
| 2041 | + comps.push(features[i].components); | |
| 2042 | + } | |
| 2043 | + } | |
| 2044 | + | |
| 2045 | + return { | |
| 2046 | + "comps" : comps | |
| 2047 | + }; | |
| 2048 | + }()) | |
| 2049 | + | |
| 2050 | + }; | |
| 2051 | + response.components = response.components.comps; | |
| 2052 | + return response; | |
| 2053 | + | |
| 2054 | + } | |
| 2055 | + }; | |
| 2056 | +}(Wkt || require('./wicket'))); | ... | ... |
| ... | ... | @@ -0,0 +1 @@ |
| 1 | +if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.editorGM={iconePonto:function(sel){if(sel){return i3GEO.configura.locaplic+"/imagens/google/symbol_middot_y.png"}else{return i3GEO.configura.locaplic+"/imagens/google/symbol_middot.png"}},aguarde:"",iddiv:"",drawingManager:"",selectedShape:null,regioestemas:{},temasregioes:{},descregioes:[],inicia:function(iddiv){var i,n,ics;i3GEO.editorGM.iddiv=iddiv;$i(iddiv).innerHTML=i3GEO.editorGM.html();ics=$i(iddiv).getElementsByTagName("button");n=ics.length;i3GEO.barraDeBotoes.ativaBotoes();i3GEO.editorGM.comboRegiaoEditavel();for(i=0;i<n;i++){ics[i].style.backgroundColor="white";ics[i].className="iconeGuiaMovel";ics[i].onmouseout=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOut"};ics[i].onmouseover=function(){this.className="iconeGuiaMovel iconeGuiaMovelMouseOver"};ics[i].style.backgroundImage="none";ics[i].style.height="32px";ics[i].style.width="32px";ics[i].style.border="1px solid gray";ics[i].style.margin="0px"}i3GEO.editorGM.drawingManager=new google.maps.drawing.DrawingManager({drawingMode:google.maps.drawing.OverlayType.POLYGON,drawingControl:false,drawingControlOptions:{position:google.maps.ControlPosition.TOP_CENTER,drawingModes:[google.maps.drawing.OverlayType.POLYGON,google.maps.drawing.OverlayType.MARKER,google.maps.drawing.OverlayType.POLYLINE]},markerOptions:{icon:i3GEO.editorGM.iconePonto(),clickable:true,zIndex:1,draggable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:"",editable:false},polygonOptions:{fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:"",colunaid:"",valorid:"",colunanome:"",valornome:""}});i3GEO.editorGM.drawingManager.setMap(i3GeoMap);i3GEO.editorGM.drawingManager.setDrawingMode(null);google.maps.event.addListener(i3GEO.editorGM.drawingManager,'overlaycomplete',function(e){i3GEO.editorGM.drawingManager.setDrawingMode(null);i3GEO.editorGM.mudaicone();var newShape=e.overlay;newShape.type=e.type;newShape.tema=$i("i3geoCartoRegioesEditaveis").value;newShape.colunaid="";newShape.valorid="";newShape.colunanome="";newShape.valornome="";google.maps.event.addListener(newShape,'click',function(){i3GEO.editorGM.setSelection(newShape)});i3GEO.editorGM.setSelection(newShape);i3GEO.desenho.googlemaps.shapes.push(newShape)});google.maps.event.addListener(i3GEO.editorGM.drawingManager,'drawingmode_changed',i3GEO.editorGM.clearSelection);google.maps.event.addListener(i3GeoMap,'click',i3GEO.editorGM.clearSelection)},atualizaCamadasMetaestat:function(){var p=i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=LISTACAMADASMETAESTAT&g_sid="+i3GEO.configura.sid,temp=function(retorno){var n=retorno.data.length,i;for(i=0;i<n;i++){i3GEO.Interface.atualizaTema("",retorno.data[i])}};cpJSON.call(p,"foo",temp)},html:function(){var ins='<div style=margin-left:5px >'+' <button title="'+$trad("dpol")+'" onclick="i3GEO.editorGM.digitalizaPol(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/polygon-create.png" /></button>'+' <button title="'+$trad("dponto")+'" onclick="i3GEO.editorGM.digitalizaPt(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/point-create.png" /></button>'+' <button title="'+$trad("capturar")+'" onclick="i3GEO.editorGM.capturaPoligonoTema.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/layer-import.png" /></button>'+' <button title="'+$trad("d24t")+'" onclick="i3GEO.editorGM.seleciona(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/select.png" /></button>'+' <button title="'+$trad("studo")+'" onclick="i3GEO.editorGM.selectAll(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/selectall.png" /></button>'+' <button title="'+$trad("excsel")+'" onclick="i3GEO.editorGM.deleteSelectedShape()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/selected-delete.png" /></button>'+' <button title="'+$trad("salvexc")+'" onclick="i3GEO.editorGM.salvaLimite.inicia()"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/vector-save.png" /></button>'+' <button title="'+$trad("edatrib")+'" onclick="i3GEO.editorGM.editarAtributos.ativa(this)"><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/annotation-form.png" /></button>'+' <button title="'+$trad("s1")+'" onmousedown="i3GEO.editorGM.mudaicone()" onclick="i3GEO.editorGM.ajuda()" ><img src="'+i3GEO.configura.locaplic+'/imagens/gisicons/help-contents.png" /></button>'+' <br><div id="i3geoCartoRegioesEditaveisDiv" ><img style="display:block;z-index:2" src="'+i3GEO.configura.locaplic+'/imagens/aguarde.gif" /></div></div>';return ins},ativaFoco:function(){i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.barraDeBotoes.ativaIcone("pan");i3GEO.editorGM.mudaicone();i3GEO.Interface.googlemaps.recalcPar()},setSelection:function(shape){if(shape.setEditable){shape.setEditable(!shape.editable)}else{shape.editable=true;shape.setIcon({url:i3GEO.editorGM.iconePonto(true)})}},clearSelection:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(false)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=false;if(i3GEO.desenho.googlemaps.shapes[i].setIcon){i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(false)})}}}},selectAll:function(){var i,n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].setEditable){i3GEO.desenho.googlemaps.shapes[i].setEditable(true)}else if(i3GEO.desenho.googlemaps.shapes[i]!=""){i3GEO.desenho.googlemaps.shapes[i].editable=true;i3GEO.desenho.googlemaps.shapes[i].setIcon({url:i3GEO.editorGM.iconePonto(true)})}}},deleteSelectedShape:function(naoconfirma){i3GEO.janela.tempoMsg($trad("meneditor1"));if(!naoconfirma){naoconfirma=false}var i,n=i3GEO.desenho.googlemaps.shapes.length;if(n>0){if(naoconfirma===false){var x=window.confirm($trad("excsel")+"?")}else{x=true}if(x){for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable&&i3GEO.desenho.googlemaps.shapes[i].editable===true){i3GEO.desenho.googlemaps.shapes[i].setMap(null);i3GEO.desenho.googlemaps.shapes[i]=""}}}}else{i3GEO.janela.tempoMsg($trad("selum"))}},selectedShapes:function(){var i,s=[],n=i3GEO.desenho.googlemaps.shapes.length;for(i=0;i<n;i++){if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){s.push(i3GEO.desenho.googlemaps.shapes[i])}}return s},getCoordenadas:function(){var coordenadas=[],lista=[],n=i3GEO.desenho.googlemaps.shapes.length,tipo="",ps,nps,j,p,i,r;for(i=0;i<n;i++){coordenadas=[];if(i3GEO.desenho.googlemaps.shapes[i]!=""&&i3GEO.desenho.googlemaps.shapes[i].editable===true){if(tipo==""){tipo=i3GEO.desenho.googlemaps.shapes[i].type}ps=i3GEO.desenho.googlemaps.shapes[i].getPath();nps=ps.getLength();for(j=0;j<nps;j++){p=ps.getAt(j);coordenadas.push([p.lng()+" "+p.lat()])}lista.push(coordenadas)}}r={"tipo":tipo,"coordenadas":lista};return r},toWKT:function(obj){var wkt=new Wkt.Wkt();wkt.fromObject(obj);return wkt.write()},merge:function(geoms){var n=geoms.length,w=new Wkt.Wkt(),g,m,i;w.read(geoms[0].toString());if(n>1){for(i=1;i<n;i++){g=geoms[i].toString();m=new Wkt.Wkt();m.read(g);w.merge(m)}}return w.write()},capturaPoligonoTema:{ativa:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.eventos.cliquePerm.desativa();i3GEO.eventos.adicionaEventos("MOUSECLIQUE",["i3GEO.editorGM.capturaPoligonoTema.captura()"]);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic)},desativa:function(){},captura:function(){var temp,tema="",regiao="",p,par,aguarde=$i("i3GEOjanelaEditor_imagemCabecalho");if(!$i("i3geoCartoRegioesEditaveis")){i3GEO.eventos.removeEventos("MOUSECLIQUE",["i3GEO.editorGM.capturaPoligonoTema.captura()"])}else{temp=function(retorno){var temp,n,i,WicketWkt,wkt="",colunaid="",valorid="",colunanome="",valornome="",aguarde=$i("i3GEOjanelaEditor_imagemCabecalho");if(i3GEO.editorGM.descregioes["a_"+regiao]["identificador"]){colunaid=i3GEO.editorGM.descregioes["a_"+regiao]["identificador"]}if(i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"]){colunanome=i3GEO.editorGM.descregioes["a_"+regiao]["colunanomeregiao"]}if(aguarde){aguarde.style.visibility="hidden"}temp=retorno.data[0].resultado[0];if(temp===" "){i3GEO.janela.tempoMsg($trad("meneditor2"));return}i3GEO.editorGM.mudaicone();n=temp.length;for(i=0;i<n;i++){if(temp[i].alias=="wkt"){wkt=temp[i].valor}if(temp[i].alias==colunaid||temp[i].item==colunaid){valorid=temp[i].valor}if(temp[i].alias==colunanome||temp[i].item==colunanome){valornome=temp[i].valor}}WicketWkt=new Wkt.Wkt();try{WicketWkt.read(wkt)}catch(e1){try{wkt.read(wkt.replace('\n','').replace('\r','').replace('\t',''))}catch(e2){if(e2.name==='WKTError'){alert('Wicket could not understand the WKT string you entered. Check that you have parentheses balanced, and try removing tabs and newline characters.');return}}}obj=WicketWkt.toObject(i3GeoMap.defaults);i3GEO.editorGM.adicionaPoligonos(obj,tema,colunaid,valorid,colunanome,valornome);i3GEO.eventos.MOUSECLIQUE=[]};regiao=$i("i3geoCartoRegioesEditaveis").value;if(regiao!=""){tema=i3GEO.editorGM.regioestemas["a"+regiao];if(aguarde&&aguarde.style.visibility=="hidden"){aguarde.style.visibility="visible";p=i3GEO.configura.locaplic+"/classesphp/mapa_controle.php";par="funcao=identifica3&opcao=tema&xy="+objposicaocursor.ddx+","+objposicaocursor.ddy+"&resolucao=5&g_sid="+i3GEO.configura.sid+"&ext="+i3GEO.parametros.mapexten+"&listaDeTemas=&wkt=sim&tema="+tema;cpJSON.call(p,"identifica",temp,par)}}}}},comboRegiaoEditavel:function(codigo_tipo_regiao){if(!codigo_tipo_regiao){codigo_tipo_regiao=""}var onde=$i("i3geoCartoRegioesEditaveisDiv"),temp=function(dados){var n=dados.length,ins='<br><p class="paragrafo" >'+$trad("camedit")+':</p>',i;ins+="<select onchange='i3GEO.editorGM.comboRegiaoEditavelOnchange(this)' id='i3geoCartoRegioesEditaveis' style='width:175px' ><option value=''>---</option>";for(i=0;i<n;i++){ins+="<option value='"+dados[i].codigo_tipo_regiao+"'>"+dados[i].nome_tipo_regiao+"</option>";i3GEO.editorGM.descregioes["a_"+dados[i].codigo_tipo_regiao]=dados[i]}dados=i3GEO.arvoreDeCamadas.filtraCamadas("editavel","SIM","igual");n=dados.length;for(i=0;i<n;i++){if(!dados[i].codigo_tipo_regiao||dados[i].codigo_tipo_regiao===""){ins+="<option value='"+dados[i].name+"'>"+dados[i].tema+"</option>";dados[i]["identificador"]=dados[i].colunaidunico;dados[i]["colunanomeregiao"]="";i3GEO.editorGM.descregioes["a_"+dados[i].name]=dados[i]}}ins+="</select>";if(onde){onde.innerHTML=ins}return ins};i3GEO.php.listaTipoRegiao(temp,codigo_tipo_regiao)},comboRegiaoEditavelOnchange:function(combo){if(combo.value===""){return}i3GEO.editorGM.editarAtributos.desativa();if(i3GEO.arvoreDeCamadas.pegaTema(combo.value)!=""){i3GEO.editorGM.regioestemas["a"+combo.value]=combo.value;i3GEO.editorGM.temasregioes[combo.value]=combo.value}else{var temp=function(retorno){if(i3GEO.arvoreDeCamadas.pegaTema(retorno.layer)==""){i3GEO.php.adtema(i3GEO.atualiza,retorno.mapfile);i3GEO.editorGM.regioestemas["a"+combo.value]=retorno.layer;i3GEO.editorGM.temasregioes[retorno.layer]=combo.value}};i3GEO.php.mapfileTipoRegiao(temp,combo.value)}},mudaicone:function(botao){var c=$i(i3GEO.editorGM.iddiv),ci=c.getElementsByTagName("img"),n=ci.length,i;for(i=0;i<n;i++){ci[i].parentNode.style.backgroundColor="#F5F5F5"}i3GEO.eventos.MOUSECLIQUE=[];i3GEO.editorGM.capturaPoligonoTema.desativa();i3GEO.editorGM.editarAtributos.desativa();if(botao&&botao.style){botao.style.backgroundColor="#cedff2"}},digitalizaPol:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.POLYGON})},digitalizaPt:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:google.maps.drawing.OverlayType.MARKER})},seleciona:function(botao){i3GEO.editorGM.mudaicone(botao);i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic);i3GEO.editorGM.drawingManager.setOptions({drawingMode:null})},adicionaPoligonos:function(obj,tema,colunaid,valorid,colunanome,valornome){if(!tema){tema=$i("i3geoCartoRegioesEditaveis").value}if(!colunaid){colunaid=""}if(!valorid){valorid=""}if(!colunanome){colunanome=""}if(!valornome){valornome=""}var pol;if(Wkt.isArray(obj)){for(i in obj){if(obj.hasOwnProperty(i)&&!Wkt.isArray(obj[i])){pol=new google.maps.Polygon({path:obj[i].getPath(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol)}}return}if(obj.type==='polygon'||obj.type==='linestring'){pol=new google.maps.Polygon({paths:obj.getPaths(),map:i3GeoMap,fillColor:'#ffff00',fillOpacity:.5,strokeWeight:2,clickable:true,zIndex:1,editable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}if(obj.type==='marker'){i3GEO.editorGM.selectAll();if(i3GEO.desenho.googlemaps.shapes.length>0){i3GEO.editorGM.deleteSelectedShape(true)}pol=new google.maps.Marker({position:new google.maps.LatLng(obj.getPosition().ob,obj.getPosition().pb),map:i3GeoMap,icon:{url:i3GEO.editorGM.iconePonto(false)},clickable:true,zIndex:1,draggable:true,tema:tema,colunaid:colunaid,valorid:valorid,colunanome:colunanome,valornome:valornome,editable:false});google.maps.event.addListener(pol,'click',function(){i3GEO.editorGM.setSelection(pol)});i3GEO.desenho.googlemaps.shapes.push(pol);return}},salvaLimite:{inicia:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg($trad("meneditor3"));if(i3GEO.editorGM.selectedShapes().length>0){var temp=i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0]);i3GEO.mapa.dialogo.wkt2layer(temp)}return}var wkt,temp,s=i3GEO.editorGM.selectedShapes(),n=s.length,janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}if(n==1){s=s[0];temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);i3GEO.Interface.redesenha()};if(i3GEO.editorGM.descregioes["a_"+$i("i3geoCartoRegioesEditaveis").value].tema!=undefined){wkt=i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0]);if(wkt&&wkt!=""){if(s.valorid==""){p=i3GEO.configura.locaplic+"/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid="+i3GEO.configura.sid;cpJSON.call(p,"foo",temp,"&tema="+$i("i3geoCartoRegioesEditaveis").value+"&wkt="+wkt)}else{p=i3GEO.configura.locaplic+"/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid="+i3GEO.configura.sid;cpJSON.call(p,"foo",temp,"&idunico="+s.valorid+"&tema="+$i("i3geoCartoRegioesEditaveis").value+"&wkt="+wkt)}}}else{i3GEO.editorGM.salvaLimite.criaJanelaFlutuante(i3GEO.editorGM.salvaLimite.html(s.colunaid,s.valorid,s.colunanome,s.valornome));new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao1",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(true)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao2",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.gravaDados(false)}}});new YAHOO.widget.Button("i3GEOFmetaestati3GEO.editorGMBotao3",{onclick:{fn:function(){i3GEO.editorGM.salvaLimite.excluiPoligono()}}})}}else{i3GEO.janela.tempoMsg("Selecione uma figura")}},html:function(colunaIdElemento,valorIdElemento,colunaNomeElemento,valorNomeElemento){var ins=''+'<p class=paragrafo >Se o valor do código for vazio, será criado um novo elemento. Caso contrário, os valores atualmente registrados serão atualizados.</p>'+'<p class=paragrafo >Edite os atributos:</p>'+'<input type=hidden id="inputColunaIdElemento" value="'+colunaIdElemento+'" />'+'<input type=hidden id="inputColunaNomeElemento" value="'+colunaNomeElemento+'" />'+'<input type=hidden id="inputIdentificadorElemento" value="'+valorIdElemento+'" />'+'<input type=hidden id="inputNomeElemento" value="'+valorNomeElemento+'" />'+'<p class=paragrafo >Código:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputIdentificadorNovoElemento" value="'+valorIdElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Nome:</p>'+'<p class=paragrafo ><input class=digitar type=text id="inputNomeNovoElemento" value="'+valorNomeElemento+'" style="width:180;cursor:text" /></p>'+'<p class=paragrafo >Escolha a operação desejada:</p>'+'<input id=i3GEOFmetaestati3GEO.editorGMBotao1 type="button" value="Salvar tudo" />'+' <input id=i3GEOFmetaestati3GEO.editorGMBotao2 type="button" value="Salvar apenas os atributos" />'+'<br><br><input id=i3GEOFmetaestati3GEO.editorGMBotao3 type="button" value="Excluir" />';return ins},criaJanelaFlutuante:function(html){var titulo,cabecalho,minimiza,janela;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("salvaLimite")};titulo="<div class='i3GeoTituloJanela'>"+$trad("sdados")+"</div>";janela=i3GEO.janela.cria("300px","265px","","","",titulo,"salvaLimite",true,"hd",cabecalho,minimiza);$i("salvaLimite_corpo").style.backgroundColor="white";$i("salvaLimite_corpo").innerHTML=html;YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},gravaDados:function(comwkt){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg($trad("meneditor3"));return}if(!window.confirm($trad("sdados")+"?")){return}var p,codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificadornovo=$i("inputIdentificadorNovoElemento").value,identificador=$i("inputIdentificadorElemento").value,nome=$i("inputNomeNovoElemento").value,wkt="",temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()};if(comwkt===true){wkt=i3GEO.editorGM.toWKT(i3GEO.editorGM.selectedShapes()[0])}else{if(identificadornovo===identificador&&$i("inputNomeElemento").value===nome){i3GEO.janela.tempoMsg($trad("meneditor4"));return}}p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=";cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificadornovo="+identificadornovo+"&identificador="+identificador+"&nome="+nome+"&wkt="+wkt)},excluiPoligono:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg($trad("meneditor3"));return}if(!window.confirm($trad("excsel")+"?")){return}var codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,identificador=$i("inputIdentificadorElemento").value,temp=function(retorno){i3GEO.editorGM.deleteSelectedShape(true);var janela=YAHOO.i3GEO.janela.manager.find("salvaLimite");if(janela){janela.destroy()}i3GEO.Interface.redesenha()},p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=mantemDadosRegiao&tipo=excluir";if(identificador===""){i3GEO.janela.tempoMsg($trad("meneditor5"))}else{cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador="+identificador)}}},editarAtributos:{aliascolunas:"",x:"",y:"",ativa:function(botao){if($i("i3geoCartoRegioesEditaveis").value==""){i3GEO.janela.tempoMsg("Escolha uma regiao");return}i3GEO.editorGM.mudaicone(botao);i3GEO.eventos.adicionaEventos("MOUSECLIQUE",["i3GEO.editorGM.editarAtributos.captura()"]);var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){$i("editarAtributosForm").innerHTML=""}else{i3GEO.editorGM.editarAtributos.criaJanelaFlutuante(i3GEO.editorGM.editarAtributos.html());i3GEO.editorGM.editarAtributos.comboVariaveis()}},desativa:function(){var janela=YAHOO.i3GEO.janela.manager.find("editaAtributos");if(janela){janela.destroy()}},criaJanelaFlutuante:function(html){var janela,titulo,cabecalho,minimiza;cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributos")};titulo="<div class='i3GeoTituloJanela'>"+$trad("atrib")+"</div>";janela=i3GEO.janela.cria("250px","265px","","","",titulo,"editaAtributos",false,"hd",cabecalho,minimiza);$i("editaAtributos_corpo").style.backgroundColor="white";$i("editaAtributos_corpo").innerHTML=html;i3GEO.janela.tempoMsg($trad("meneditor6"));YAHOO.util.Event.addListener(janela[0].close,"click",i3GEO.editorGM.mudaicone)},html:function(){var ins=''+'<p class="paragrafo" ><div id="editarAtributosVariaveis" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosMedidasVariavel" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosRegiao" ></div></p>'+'<p class="paragrafo" ><div id="editarAtributosForm" ></div></p>'+'';return ins},comboVariaveis:function(){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma variável para editar</p>';ins+="<select style='box-shadow:0 1px 5px gray;width:200px' onchange='i3GEO.editorGM.editarAtributos.comboMedidasVariavel(this)'><option value=''>---</option>";for(i=0;i<n;i++){ins+="<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"}ins+="</select>";$i("editarAtributosVariaveis").innerHTML=ins};i3GEO.php.listaVariavel(temp,"i3geo_metaestat")},comboMedidasVariavel:function(comboMedidas){var temp=function(dados){var i,n=dados.length,ins='';ins+='<p class="paragrafo" >Escolha uma medida da variável para editar</p>';ins+="<select id='editarAtributosComboMedidas' style='box-shadow:0 1px 5px gray;width:200px' onchange=''><option value=''>---</option>";for(i=0;i<n;i++){if(dados[i].esquemadb=="i3geo_metaestat"&&dados[i].codigo_tipo_regiao==$i("i3geoCartoRegioesEditaveis").value){ins+="<option value='"+dados[i].id_medida_variavel+"'>"+dados[i].nomemedida+"</option>"}}ins+="</select>";$i("editarAtributosMedidasVariavel").innerHTML=ins};if(comboMedidas.value!==""){i3GEO.php.listaMedidaVariavel(comboMedidas.value,temp)}},captura:function(){if(!YAHOO.i3GEO.janela.manager.find("editaAtributos")){i3GEO.editorGM.mudaicone(botao);return}i3GEO.editorGM.editarAtributos.x=objposicaocursor.ddx;i3GEO.editorGM.editarAtributos.y=objposicaocursor.ddy;i3GEO.editorGM.editarAtributos.pegaDados()},pegaDados:function(){var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaAtributosMedidaVariavelXY",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,temp=function(retorno){var atr=retorno.atributos,i=0,n=atr.dados.length,j=0,idunico="",nj=atr.aliascolunas.length,ins=""+'<p class=paragrafo >Limite geográfico escolhido:</p>'+'<p class=paragrafo ><b>Nome: </b>'+retorno.regiao.nomeregiao+'</p>'+'<p class=paragrafo ><b>Código: </b>'+retorno.regiao.identificador_regiao+'</p>'+'<input type=hidden id="editarAtributosidentificador_regiao" value="'+retorno.regiao.identificador_regiao+'" />'+'<p class=paragrafo >Atributos:</p>'+'<input id=editarAtributosAdicionar value="Adicionar um novo" />'+' <input id=editarAtributosSalvar value="Salvar" />';$i("editarAtributosRegiao").innerHTML=ins;ins="";for(i=0;i<n;i++){for(j=0;j<nj;j++){if(atr.aliascolunas[j]=="idunico"){idunico=atr.dados[i][atr.colunas[j]]}}ins+="<hr><div><p class=paragrafo style='color:blue;cursor:pointer' onclick='i3GEO.editorGM.editarAtributos.excluir("+idunico+")' >excluir</p>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+':<br>'+'<input class=digitar id="idunico_'+idunico+'" value="'+atr.dados[i][atr.colunas[j]]+'" name="'+atr.colunas[j]+'" /></p>'}}}$i("editarAtributosForm").innerHTML=ins;new YAHOO.widget.Button("editarAtributosAdicionar",{onclick:{fn:function(){var novoel=document.createElement("div"),ins="<hr><br>";for(j=0;j<nj;j++){if(atr.aliascolunas[j]!=="idunico"){ins+='<p class=paragrafo >'+atr.aliascolunas[j]+' - '+atr.descricao[j]+':<br>'+'<input class=digitar id="" value="" name="'+atr.colunas[j]+'" /></p>'}}ins+="<br></div>";novoel.innerHTML=ins;$i("editarAtributosForm").appendChild(novoel)}}});new YAHOO.widget.Button("editarAtributosSalvar",{onclick:{fn:function(){i3GEO.editorGM.editarAtributos.salva()}}})};cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&id_medida_variavel="+id_medida_variavel+"&x="+i3GEO.editorGM.editarAtributos.x+"&y="+i3GEO.editorGM.editarAtributos.y)},excluir:function(id){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=excluiAtributosMedidaVariavel",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&id="+id)},salva:function(){if(i3GEO.login.verificaCookieLogin()===false){i3GEO.janela.tempoMsg("Você precisa fazer login para usar essa opção");return}var container=$i("editarAtributosForm"),divsT=container.getElementsByTagName("div"),n=divsT.length,i=0,dv="",inputs="",codigo_tipo_regiao=$i("i3geoCartoRegioesEditaveis").value,id_medida_variavel=$i("editarAtributosComboMedidas").value,identificador_regiao=$i("editarAtributosidentificador_regiao").value,nj,j,colunas=[],colunasT=[],valores=[],valoresT=[],idsunicosT=[],p=i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=salvaAtributosMedidaVariavel",re=new RegExp("idunico_","g"),temp=function(retorno){i3GEO.editorGM.editarAtributos.pegaDados();i3GEO.editorGM.atualizaCamadasMetaestat();i3GEO.janela.fechaAguarde("aguardeSalvaAtributos")};if(codigo_tipo_regiao==""){i3GEO.janela.tempoMsg("Problemas com o codigo da regiao");return}if(id_medida_variavel==""){i3GEO.janela.tempoMsg("Escolha uma medida");return}if(identificador_regiao==""){i3GEO.janela.tempoMsg("Problemas com o identificador da regiao");return}for(i=0;i<n;i++){dv=divsT[i];inputs=dv.getElementsByTagName("input");nj=inputs.length;colunas=[];valores=[];for(j=0;j<nj;j++){colunas.push(inputs[j].name);valores.push(inputs[j].value)}idsunicosT.push(inputs[0].id.replace(re,''));colunasT.push(colunas.join("|"));valoresT.push(valores.join("|"))}i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaAtributos","Salvando...");i3GEO.janela.AGUARDEMODAL=false;cpJSON.call(p,"foo",temp,"&codigo_tipo_regiao="+codigo_tipo_regiao+"&identificador_regiao="+identificador_regiao+"&id_medida_variavel="+id_medida_variavel+"&colunas="+colunasT[0]+"&valores="+valoresT.join("#")+"&idsunicos="+idsunicosT.join("|"))}},ajuda:function(){var titulo,cabecalho,minimiza,html="";cabecalho=function(){};minimiza=function(){i3GEO.janela.minimiza("editaAtributosAjuda")};titulo="<div class='i3GeoTituloJanela'>Ajuda </div>";i3GEO.janela.cria("400px","350px","","","",titulo,"editaAtributosAjuda",false,"hd",cabecalho,minimiza);$i("editaAtributosAjuda_corpo").style.backgroundColor="white";html+="<table class=lista8 >"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/polygon-create.png' /></td>"+"<td>Clique no mapa para traçar um polígono novo. Cada clique corresponde a um vértice do polígono. Para encerrar o traçado utilize um duplo clique. Após traçar um novo polígono pode-se selecioná-lo novamente e editar os vértices, se for necessário, ou mesmo apagar o polígono por completo. O novo polígono só será salvo por meio da opção específica para isso.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/layer-import.png' /></td>"+"<td>Utilize essa opção para capturar os vértices de um polígono existente. O resultado da captura é uma figura que pode ser editada, ou seja, os vértices podem ser modificados de posição ou mesmo removidos. Após editar, salve o novo polígono.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/select.png' /></td>"+"<td>Após ativar essa opção clique no mapa sobre uma figura existente (que tenha sido capturada ou digtalizada). A figura passará então para o estado de 'selecionada' podendo ser utilizada por outras ferramentas de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/selected-delete.png' /></td>"+"<td>Remove da tela a figura que estiver selecionada. Essa operação não apaga o polígono do banco de dados, apenas remove do modo de edição.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/vector-save.png' /></td>"+"<td>Salva no banco de dados a figura que estiver selecionada. Essa opção altera apenas os atributos do limite geográfico, não afetando os valores armazenados em cada medida de variável.</td></tr>"+"<tr><td><img src='"+i3GEO.configura.locaplic+"/imagens/gisicons/annotation-form.png' /></td>"+"<td>Abre um formulário que permite alterar os valores de uma medida de variável relacionada a uma determinada região. Após abrir o formulário, clique no mapa sobre a região desejada, mas escolha a medida da variável primeiro. Os valores já existentes poderão então ser alterados ou podem ser adicionados novos.</td></tr>"+"</table>";$i("editaAtributosAjuda_corpo").innerHTML=html}};google.maps.Marker.prototype.type='marker';google.maps.Polyline.prototype.type='polyline';google.maps.Polygon.prototype.type='polygon';google.maps.Rectangle.prototype.type='rectangle';google.maps.Circle.prototype.type='circle';(function(Wkt){Wkt.Wkt.prototype.isRectangle=false;Wkt.Wkt.prototype.construct={point:function(config,component){var c=component||this.components;config=config||{};config.position=new google.maps.LatLng(c[0].y,c[0].x);return new google.maps.Marker(config)},multipoint:function(config){var i,c,arr;c=this.components;config=config||{};arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.point(config,c[i]))}return arr},linestring:function(config,component){var i,c;c=component||this.components;config=config||{editable:false};config.path=[];for(i=0;i<c.length;i+=1){config.path.push(new google.maps.LatLng(c[i].y,c[i].x))}return new google.maps.Polyline(config)},multilinestring:function(config){var i,c,arr;c=this.components;config=config||{editable:false};config.path=[];arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.linestring(config,c[i]))}return arr},box:function(config,component){var c=component||this.components;config=config||{};config.bounds=new google.maps.LatLngBounds(new google.maps.LatLng(c[0].y,c[0].x),new google.maps.LatLng(c[1].y,c[1].x));return new google.maps.Rectangle(config)},polygon:function(config,component){var j,k,c,rings,verts;c=component||this.components;config=config||{editable:false};config.paths=[];rings=[];for(j=0;j<c.length;j+=1){verts=[];for(k=0;k<c[j].length-1;k+=1){verts.push(new google.maps.LatLng(c[j][k].y,c[j][k].x))}if(j!==0){if(config.reverseInnerPolygons==null||config.reverseInnerPolygons){verts.reverse()}}rings.push(verts)}config.paths=config.paths.concat(rings);if(this.isRectangle){return(function(){var bounds,v=0;bounds=new google.maps.LatLngBounds();for(v in rings[0]){if(rings[0].hasOwnProperty(v)){bounds.extend(rings[0][v])}}return new google.maps.Rectangle({bounds:bounds})}())}else{return new google.maps.Polygon(config)}},multipolygon:function(config){var i,c,arr;c=this.components;config=config||{editable:false};config.path=[];arr=[];for(i=0;i<c.length;i+=1){arr.push(this.construct.polygon(config,c[i]))}return arr}};Wkt.Wkt.prototype.deconstruct=function(obj,multiFlag){var features,i,j,verts,rings,sign,tmp,response,lat,lng;if(google.maps.geometry){sign=google.maps.geometry.spherical.computeSignedArea};if(obj.constructor===google.maps.LatLng){response={type:'point',components:[{x:obj.lng(),y:obj.lat()}]};return response}if(obj.constructor===google.maps.Point){response={type:'point',components:[{x:obj.x,y:obj.y}]};return response}if(obj.constructor===google.maps.Marker){response={type:'point',components:[{x:obj.getPosition().lng(),y:obj.getPosition().lat()}]};return response}if(obj.constructor===google.maps.Polyline){verts=[];for(i=0;i<obj.getPath().length;i+=1){tmp=obj.getPath().getAt(i);verts.push({x:tmp.lng(),y:tmp.lat()})}response={type:'linestring',components:verts};return response}if(obj.constructor===google.maps.Polygon){rings=[];if(multiFlag===undefined){multiFlag=(function(){var areas,l;l=obj.getPaths().length;if(l<=1){return false}if(l===2){if(sign(obj.getPaths().getAt(0))*sign(obj.getPaths().getAt(1))<0){return false}return true}areas=obj.getPaths().getArray().map(function(k){return sign(k)/Math.abs(sign(k)); });if(areas.indexOf(areas[0])!==areas.lastIndexOf(areas[0])){multiFlag=true;return true}return false}())}for(i=0;i<obj.getPaths().length;i+=1){tmp=obj.getPaths().getAt(i);verts=[];for(j=0;j<obj.getPaths().getAt(i).length;j+=1){verts.push({x:tmp.getAt(j).lng(),y:tmp.getAt(j).lat()})}if(!tmp.getAt(tmp.length-1).equals(tmp.getAt(0))){if(i%2!==0){verts.unshift({x:tmp.getAt(tmp.length-1).lng(),y:tmp.getAt(tmp.length-1).lat()})}else{verts.push({x:tmp.getAt(0).lng(),y:tmp.getAt(0).lat()})}}if(obj.getPaths().length>1&&i>0){if(sign(obj.getPaths().getAt(i))>0&&sign(obj.getPaths().getAt(i-1))>0||sign(obj.getPaths().getAt(i))<0&&sign(obj.getPaths().getAt(i-1))<0&&!multiFlag){verts=[verts]}}if(i%2!==0){verts.reverse()}rings.push(verts)}response={type:(multiFlag)?'multipolygon':'polygon',components:rings};return response}if(obj.constructor===google.maps.Circle){var point=obj.getCenter();var radius=obj.getRadius();verts=[];var d2r=Math.PI/180; var r2d=180/Math.PI; radius=radius/1609; var earthsradius=3963;var num_seg=32;var rlat=(radius/earthsradius)*r2d;var rlng=rlat/Math.cos(point.lat()*d2r);for(var n=0;n<=num_seg;n++){var theta=Math.PI*(n/(num_seg/2));lng=point.lng()+(rlng*Math.cos(theta));lat=point.lat()+(rlat*Math.sin(theta));verts.push({x:lng,y:lat})}response={type:'polygon',components:[verts]};return response}if(obj.constructor===google.maps.LatLngBounds){tmp=obj;verts=[];verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});response={type:'polygon',isRectangle:true,components:[verts]};return response}if(obj.constructor===google.maps.Rectangle){tmp=obj.getBounds();verts=[];verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getNorthEast().lat()});verts.push({x:tmp.getNorthEast().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getSouthWest().lat()});verts.push({x:tmp.getSouthWest().lng(),y:tmp.getNorthEast().lat()});response={type:'polygon',isRectangle:true,components:[verts]};return response}if(obj.constructor===google.maps.Data.Feature){return this.deconstruct.call(this,obj.getGeometry())}if(obj.constructor===google.maps.Data.Point){response={type:'point',components:[{x:obj.get().lng(),y:obj.get().lat()}]};return response}if(obj.constructor===google.maps.Data.LineString){verts=[];for(i=0;i<obj.getLength();i+=1){vertex=obj.getAt(i);verts.push({x:vertex.lng(),y:vertex.lat()})}response={type:'linestring',components:verts};return response}if(obj.constructor===google.maps.Data.Polygon){var rings=[];for(i=0;i<obj.getLength();i+=1){ring=obj.getAt(i);var verts=[];for(j=0;j<ring.getLength();j+=1){vertex=ring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}verts.push({x:ring.getAt(0).lng(),y:ring.getAt(0).lat()});rings.push(verts)}response={type:'polygon',components:rings};return response}if(obj.constructor===google.maps.Data.MultiPoint){verts=[];for(i=0;i<obj.getLength();i+=1){vertex=obj.getAt(i);verts.push([{x:vertex.lng(),y:vertex.lat()}])}response={type:'multipoint',components:verts};return response}if(obj.constructor===google.maps.Data.MultiLineString){linestrings=[];for(i=0;i<obj.getLength();i+=1){verts=[];var linestring=obj.getAt(i);for(j=0;j<linestring.getLength();j+=1){vertex=linestring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}linestrings.push(verts)}response={type:'multilinestring',components:linestrings};return response}if(obj.constructor===google.maps.Data.MultiPolygon){var k=0,polygons=[];for(k=0;k<obj.getLength();k+=1){var polygon=obj.getAt(k);var rings=[];for(i=0;i<polygon.getLength();i+=1){ring=polygon.getAt(i);var verts=[];for(j=0;j<ring.getLength();j+=1){vertex=ring.getAt(j);verts.push({x:vertex.lng(),y:vertex.lat()})}verts.push({x:ring.getAt(0).lng(),y:ring.getAt(0).lat()});rings.push(verts)}polygons.push(rings)}response={type:'multipolygon',components:polygons};return response}if(obj.constructor===google.maps.Data.GeometryCollection){var objects=[];for(k=0;k<obj.getLength();k+=1){var object=obj.getAt(k);objects.push(this.deconstruct.call(this,object))}response={type:'geometrycollection',components:objects};return response}if(Wkt.isArray(obj)){features=[];for(i=0;i<obj.length;i+=1){features.push(this.deconstruct.call(this,obj[i],true))}response={type:(function(){var k,type=obj[0].constructor;for(k=0;k<obj.length;k+=1){if(obj[k].constructor!==type){return'geometrycollection'}}switch(type){case google.maps.Marker:return'multipoint';case google.maps.Polyline:return'multilinestring';case google.maps.Polygon:return'multipolygon';default:return'geometrycollection'}}()),components:(function(){var i,comps;comps=[];for(i=0;i<features.length;i+=1){if(features[i].components){comps.push(features[i].components)}}return{"comps":comps}}())};response.components=response.components.comps;return response}}}(Wkt||require('./wicket'))); | |
| 0 | 2 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,2383 @@ |
| 1 | +//TODO incluir balao de informacoes como um elemento grafico de desenho | |
| 2 | +//TODO incluir caixas de texto | |
| 3 | +//TODO incluir undo na edicao | |
| 4 | + | |
| 5 | +/* | |
| 6 | + Title: Editor vetorial para OpenLayers | |
| 7 | + | |
| 8 | + i3GEO.editorOL | |
| 9 | + | |
| 10 | + Funções utilizadas pelo OpenLayers nas opções de edição de dados vetoriais. | |
| 11 | + É utilizado também pelo mashup com navegação via OpenLayers e com OSM. | |
| 12 | + | |
| 13 | + Para adicionar novos botoes, modifique também i3GEO.editorOL.botoes existente em i3GEO.barraDeBotoes.openlayers.ativaPainel | |
| 14 | + | |
| 15 | + Mesmo em interfaces de debug, esse javascript só é carregado depois de cmpactado | |
| 16 | + | |
| 17 | + Arquivo: i3geo/classesjs/classe_editorol.js | |
| 18 | + | |
| 19 | + Licença: | |
| 20 | + | |
| 21 | + GPL2 | |
| 22 | + | |
| 23 | + i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 24 | + | |
| 25 | + Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 26 | + Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
| 27 | + | |
| 28 | + Este programa é software livre; você pode redistribuí-lo | |
| 29 | + e/ou modificá-lo sob os termos da Licença Pública Geral | |
| 30 | + GNU conforme publicada pela Free Software Foundation; | |
| 31 | + | |
| 32 | + Este programa é distribuído na expectativa de que seja útil, | |
| 33 | + porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
| 34 | + de COMERCIABILIDADE OU ADEQUACAtilde;O A UMA FINALIDADE ESPECÍFICA. | |
| 35 | + Consulte a Licença Pública Geral do GNU para mais detalhes. | |
| 36 | + Você deve ter recebido uma cópia da Licença Pública Geral do | |
| 37 | + GNU junto com este programa; se não, escreva para a | |
| 38 | + Free Software Foundation, Inc., no endereço | |
| 39 | + 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 40 | + */ | |
| 41 | + | |
| 42 | +if (!i3GEO || typeof (i3GEO) === 'undefined') { | |
| 43 | + var i3GEO = {}; | |
| 44 | + i3GEO.Interface = {}; | |
| 45 | + navn = false; | |
| 46 | + navm = false; | |
| 47 | + $i = function(id) { | |
| 48 | + return document.getElementById(id); | |
| 49 | + }; | |
| 50 | + app = navigator.appName.substring(0, 1); | |
| 51 | + if (app === 'N') { | |
| 52 | + navn = true; | |
| 53 | + } else { | |
| 54 | + navm = true; | |
| 55 | + } | |
| 56 | +} | |
| 57 | +i3GEO.editorOL = | |
| 58 | + { | |
| 59 | + simbologia : { | |
| 60 | + opacidade : 0.8, | |
| 61 | + texto : "", | |
| 62 | + fillColor : "250,180,15", | |
| 63 | + strokeWidth : 5, | |
| 64 | + strokeColor : "250,150,0", | |
| 65 | + pointRadius : 4, | |
| 66 | + graphicName : "square", | |
| 67 | + fontSize : "12px", | |
| 68 | + fontColor : "0,0,0", | |
| 69 | + externalGraphic : "", | |
| 70 | + graphicHeight : 25, | |
| 71 | + graphicWidth : 25 | |
| 72 | + }, | |
| 73 | + backup : new ol.layer.Vector({ | |
| 74 | + source : new ol.source.Vector({ | |
| 75 | + features : new ol.Collection(), | |
| 76 | + useSpatialIndex : false, | |
| 77 | + name : "Backup" | |
| 78 | + }), | |
| 79 | + visible : false, | |
| 80 | + map : i3geoOL | |
| 81 | + }), | |
| 82 | + nomeFuncaoSalvar : "i3GEO.editorOL.salvaGeo()", | |
| 83 | + //substituir por i3GEO.Interface.openlayers.fundoDefault() | |
| 84 | + /* | |
| 85 | + e_oce : new ol.layer.Tile( | |
| 86 | + { | |
| 87 | + title : "ESRI Ocean Basemap", | |
| 88 | + visible : false, | |
| 89 | + isBaseLayer : true, | |
| 90 | + name : "oce", | |
| 91 | + source : new ol.source.TileArcGISRest( | |
| 92 | + { | |
| 93 | + url : "http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer", | |
| 94 | + attributions : [ | |
| 95 | + new ol.Attribution( | |
| 96 | + { | |
| 97 | + html : 'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer">ArcGIS</a>' | |
| 98 | + }) | |
| 99 | + ] | |
| 100 | + }) | |
| 101 | + }), | |
| 102 | + e_ims : new ol.layer.Tile( | |
| 103 | + { | |
| 104 | + title : "ESRI Imagery World 2D", | |
| 105 | + visible : false, | |
| 106 | + isBaseLayer : true, | |
| 107 | + name : "ims", | |
| 108 | + source : new ol.source.TileArcGISRest( | |
| 109 | + { | |
| 110 | + url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer", | |
| 111 | + attributions : [ | |
| 112 | + new ol.Attribution( | |
| 113 | + { | |
| 114 | + html : 'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer">ArcGIS</a>' | |
| 115 | + }) | |
| 116 | + ] | |
| 117 | + }) | |
| 118 | + }), | |
| 119 | + e_wsm : new ol.layer.Tile( | |
| 120 | + { | |
| 121 | + title : "ESRI World Street Map", | |
| 122 | + visible : false, | |
| 123 | + isBaseLayer : true, | |
| 124 | + name : "wsm", | |
| 125 | + source : new ol.source.TileArcGISRest( | |
| 126 | + { | |
| 127 | + url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer", | |
| 128 | + attributions : [ | |
| 129 | + new ol.Attribution( | |
| 130 | + { | |
| 131 | + html : 'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer">ArcGIS</a>' | |
| 132 | + }) | |
| 133 | + ] | |
| 134 | + }) | |
| 135 | + }), | |
| 136 | + ol_mma : new ol.layer.Tile({ | |
| 137 | + title : "Base carto MMA", | |
| 138 | + visible : false, | |
| 139 | + isBaseLayer : true, | |
| 140 | + name : "bra", | |
| 141 | + source : new ol.source.TileWMS({ | |
| 142 | + url : "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&", | |
| 143 | + params : { | |
| 144 | + 'layers' : "baseraster", | |
| 145 | + 'srs' : "EPSG:4326", | |
| 146 | + 'format' : "image/png" | |
| 147 | + } | |
| 148 | + }) | |
| 149 | + }), | |
| 150 | + ol_wms : new ol.layer.Tile( | |
| 151 | + { | |
| 152 | + title : "ESRI World Street Map", | |
| 153 | + visible : false, | |
| 154 | + isBaseLayer : true, | |
| 155 | + name : "wsm", | |
| 156 | + source : new ol.source.TileArcGISRest( | |
| 157 | + { | |
| 158 | + url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer", | |
| 159 | + attributions : [ | |
| 160 | + new ol.Attribution( | |
| 161 | + { | |
| 162 | + html : 'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer">ArcGIS</a>' | |
| 163 | + }) | |
| 164 | + ] | |
| 165 | + }) | |
| 166 | + }), | |
| 167 | + fundo : "e_ims,e_wsm,ol_mma,ol_wms,top_wms", | |
| 168 | + */ | |
| 169 | + kml : [], | |
| 170 | + layersIniciais : [], | |
| 171 | + //essa configuracao dos botoes afeta apenas o mashup | |
| 172 | + //para a configuração do editor dentro de um mapa normal, veja i3GEO.barraDebotoes.editor.ativaPainel() | |
| 173 | + botoes : { | |
| 174 | + 'pan' : true, | |
| 175 | + 'zoombox' : true, | |
| 176 | + 'zoomtot' : true, | |
| 177 | + 'zoomin' : true, | |
| 178 | + 'zoomout' : true, | |
| 179 | + 'distancia' : true, | |
| 180 | + 'area' : true, | |
| 181 | + 'identifica' : true, | |
| 182 | + 'linha' : true, | |
| 183 | + 'ponto' : true, | |
| 184 | + 'poligono' : true, | |
| 185 | + 'texto' : true, | |
| 186 | + 'edita' : true, | |
| 187 | + 'listag' : true, | |
| 188 | + 'corta' : true, | |
| 189 | + 'apaga' : true, | |
| 190 | + 'procura' : true, | |
| 191 | + 'selecao' : true, | |
| 192 | + 'selecaotudo' : true, | |
| 193 | + 'salva' : true, | |
| 194 | + 'ajuda' : true, | |
| 195 | + 'propriedades' : true, | |
| 196 | + 'fecha' : false, | |
| 197 | + 'tools' : true, | |
| 198 | + 'undo' : false, | |
| 199 | + 'frente' : false, | |
| 200 | + 'legenda' : true, | |
| 201 | + 'rodadomouse' : true | |
| 202 | + }, | |
| 203 | + pontos : [], | |
| 204 | + marca : "../pacotes/openlayers/img/marker-gold.png", | |
| 205 | + controles : [], | |
| 206 | + tiles : true, | |
| 207 | + incluilayergrafico : true, | |
| 208 | + ativalayerswitcher : false, | |
| 209 | + ativarodadomouse : true, | |
| 210 | + legendahtml : false, | |
| 211 | + numzoom : 12, | |
| 212 | + minresolution : 0.703125, | |
| 213 | + maxext : "", | |
| 214 | + mapext : [-76.5125927, -39.3925675209, -29.5851853, 9.49014852081], | |
| 215 | + mapa : "", | |
| 216 | + //ids das features graficas selecionadas | |
| 217 | + idsSelecionados : [], | |
| 218 | + //backup das features | |
| 219 | + featuresBackup : [], | |
| 220 | + //utilizado pelo mashup | |
| 221 | + inicia : function() { | |
| 222 | + // ativabotoes e boolean | |
| 223 | + if(i3GEO.editorOL.controles.length === 0){ | |
| 224 | + i3GEO.editorOL.controles = [ | |
| 225 | + new ol.interaction.DoubleClickZoom(), | |
| 226 | + new ol.interaction.KeyboardPan(), | |
| 227 | + new ol.interaction.KeyboardZoom(), | |
| 228 | + new ol.interaction.MouseWheelZoom(), | |
| 229 | + new ol.interaction.PinchRotate(), | |
| 230 | + new ol.interaction.PinchZoom(), | |
| 231 | + new ol.interaction.DragZoom(), | |
| 232 | + new ol.interaction.DragPan(), | |
| 233 | + new ol.control.Zoom(), | |
| 234 | + new ol.control.ZoomSlider(), | |
| 235 | + new ol.control.ScaleLine() | |
| 236 | + ]; | |
| 237 | + } | |
| 238 | + var alayers = [], fundo = (i3GEO.editorOL.fundo).split(","), nfundo = fundo.length, ncontroles = | |
| 239 | + i3GEO.editorOL.controles.length, i, n, temp; | |
| 240 | + | |
| 241 | + // TODO layerswitcher no OL3 | |
| 242 | + /* | |
| 243 | + * if (i3GEO.editorOL.ativalayerswitcher === "false") { i3GEO.editorOL.ativalayerswitcher = false; } if | |
| 244 | + * (i3GEO.editorOL.ativalayerswitcher === "true") { i3GEO.editorOL.ativalayerswitcher = true; } | |
| 245 | + */ | |
| 246 | + if (i3GEO.editorOL.ativarodadomouse === "false") { | |
| 247 | + i3GEO.editorOL.ativarodadomouse = false; | |
| 248 | + } | |
| 249 | + if (i3GEO.editorOL.ativarodadomouse === "true") { | |
| 250 | + i3GEO.editorOL.ativarodadomouse = true; | |
| 251 | + } | |
| 252 | + if (i3GEO.editorOL.legendahtml === "false") { | |
| 253 | + i3GEO.editorOL.legendahtml = false; | |
| 254 | + } | |
| 255 | + if (i3GEO.editorOL.legendahtml === "true") { | |
| 256 | + i3GEO.editorOL.legendahtml = true; | |
| 257 | + } | |
| 258 | + | |
| 259 | + if (i3GEO.editorOL.incluilayergrafico === "false") { | |
| 260 | + i3GEO.editorOL.incluilayergrafico = false; | |
| 261 | + } | |
| 262 | + if (i3GEO.editorOL.incluilayergrafico === "true") { | |
| 263 | + i3GEO.editorOL.incluilayergrafico = true; | |
| 264 | + } | |
| 265 | + if (i3GEO.editorOL.incluilayergrafico === true) { | |
| 266 | + if (!i3GEO.desenho.layergrafico) { | |
| 267 | + i3GEO.editorOL.criaLayerGrafico(); | |
| 268 | + } | |
| 269 | + } else { | |
| 270 | + i3GEO.desenho.layergrafico = ""; | |
| 271 | + i3GEO.editorOL.botoes.linha = false; | |
| 272 | + i3GEO.editorOL.botoes.ponto = false; | |
| 273 | + i3GEO.editorOL.botoes.poligono = false; | |
| 274 | + i3GEO.editorOL.botoes.texto = false; | |
| 275 | + i3GEO.editorOL.botoes.edita = false; | |
| 276 | + i3GEO.editorOL.botoes.listag = false; | |
| 277 | + i3GEO.editorOL.botoes.corta = false; | |
| 278 | + i3GEO.editorOL.botoes.apaga = false; | |
| 279 | + i3GEO.editorOL.botoes.selecao = false; | |
| 280 | + i3GEO.editorOL.botoes.selecaotudo = false; | |
| 281 | + i3GEO.editorOL.botoes.salva = false; | |
| 282 | + i3GEO.editorOL.botoes.propriedades = false; | |
| 283 | + i3GEO.editorOL.botoes.fecha = false; | |
| 284 | + i3GEO.editorOL.botoes.tools = false; | |
| 285 | + i3GEO.editorOL.botoes.undo = false; | |
| 286 | + i3GEO.editorOL.botoes.frente = false; | |
| 287 | + } | |
| 288 | + if (i3GEO.editorOL.mapa === "") { | |
| 289 | + alert("O objeto i3GEO.editorOL.mapa nao existe. Precisa ser criado com new OpenLayers.Map()"); | |
| 290 | + return; | |
| 291 | + } | |
| 292 | + for (i = 0; i < ncontroles; i++) { | |
| 293 | + i3GEO.editorOL.mapa.addControl(i3GEO.editorOL.controles[i]); | |
| 294 | + } | |
| 295 | + if (i3GEO.editorOL.fundo != "") { | |
| 296 | + for (i = nfundo - 1; i >= 0; i--) { | |
| 297 | + if (fundo[i] != "") { | |
| 298 | + try { | |
| 299 | + i3GEO.editorOL[fundo[i]].transitionEffect = 'resize'; | |
| 300 | + i3GEO.editorOL[fundo[i]].setVisibility(false); | |
| 301 | + i3GEO.editorOL[fundo[i]].singleTile = false; | |
| 302 | + alayers.push(i3GEO.editorOL[fundo[i]]); | |
| 303 | + } catch (e) { | |
| 304 | + if (alayers[0]) { | |
| 305 | + alayers[0].setVisibility(true); | |
| 306 | + } | |
| 307 | + } | |
| 308 | + } | |
| 309 | + } | |
| 310 | + } | |
| 311 | + i3GEO.editorOL.mapa.addLayers(alayers); | |
| 312 | + if (i3GEO.editorOL.layersIniciais !== "") { | |
| 313 | + n = i3GEO.editorOL.layersIniciais.length; | |
| 314 | + for (i = 0; i < n; i++) { | |
| 315 | + // singleTile deve ser definido em cada layer | |
| 316 | + // i3GEO.editorOL.layersIniciais[i].singleTile = single; | |
| 317 | + i3GEO.editorOL.mapa.addLayer(i3GEO.editorOL.layersIniciais[i]); | |
| 318 | + } | |
| 319 | + } | |
| 320 | + if (!i3GEO.desenho.layergrafico && i3GEO.editorOL.incluilayergrafico === true) { | |
| 321 | + i3GEO.editorOL.mapa.addLayers([ | |
| 322 | + i3GEO.desenho.layergrafico | |
| 323 | + ]); | |
| 324 | + } | |
| 325 | + i3GEO.editorOL.adicionaKml(); | |
| 326 | + i3GEO.editorOL.adicionaMarcas(); | |
| 327 | + | |
| 328 | + i3GEO.editorOL.coordenadas(); | |
| 329 | + i3GEO.editorOL.criaJanelaBusca(); | |
| 330 | + i3GEO.editorOL.criaBotoes(i3GEO.editorOL.botoes); | |
| 331 | + if (i3GEO.editorOL.ativalayerswitcher === true) { | |
| 332 | + i3GEO.editorOL.ativaLayerSwitcher(); | |
| 333 | + } | |
| 334 | + if (i3GEO.editorOL.ativarodadomouse === false) { | |
| 335 | + i3GEO.editorOL.desativaRodaDoMouse(); | |
| 336 | + } | |
| 337 | + | |
| 338 | + if (i3GEO.editorOL.numzoom !== "") { | |
| 339 | + i3GEO.editorOL.mapa.setOptions({ | |
| 340 | + numZoomLevels : i3GEO.editorOL.numzoom | |
| 341 | + }); | |
| 342 | + } | |
| 343 | + if (i3GEO.editorOL.maxext !== "") { | |
| 344 | + i3GEO.editorOL.mapa.setOptions({ | |
| 345 | + maxExtent : i3GEO.editorOL.maxext | |
| 346 | + }); | |
| 347 | + } | |
| 348 | + if (i3GEO.editorOL.mapext != "") { | |
| 349 | + var m = i3GEO.util.extGeo2OSM(i3GEO.editorOL.mapext); | |
| 350 | + i3GEO.editorOL.mapa.zoomToExtent(m); | |
| 351 | + } else { | |
| 352 | + i3GEO.editorOL.mapa.zoomToMaxExtent(); | |
| 353 | + } | |
| 354 | + i3GEO.editorOL.sobeLayersGraficos(); | |
| 355 | + // evita que botoes de opcoes propaguem | |
| 356 | + // o mashup utiliza esse tipo de botal junto ao nome do layer | |
| 357 | + temp = i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher"); | |
| 358 | + if (temp) { | |
| 359 | + temp = temp.dataLayersDiv.getElementsByTagName("label"); | |
| 360 | + n = temp.length; | |
| 361 | + for (i = 0; i < n; i++) { | |
| 362 | + // YAHOO.util.Event.addListener(temp[i], "click", YAHOO.util.Event.stopEvent); | |
| 363 | + temp[i].onclick = ""; | |
| 364 | + } | |
| 365 | + } | |
| 366 | + }, | |
| 367 | + criaLayerGrafico : function() { | |
| 368 | + i3GEO.desenho.openlayers.criaLayerGrafico(); | |
| 369 | + }, | |
| 370 | + layersLigados : function() { | |
| 371 | + var l, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = [], i; | |
| 372 | + for (i = 0; i < nlayers; i++) { | |
| 373 | + l = layers.item(i); | |
| 374 | + if (l.getVisible() === true) { | |
| 375 | + ins.push(l); | |
| 376 | + } | |
| 377 | + } | |
| 378 | + return ins; | |
| 379 | + }, | |
| 380 | + layerPorParametro : function(parametro, valor) { | |
| 381 | + var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, ins = [], i; | |
| 382 | + for (i = 0; i < nlayers; i++) { | |
| 383 | + if (layers[i][parametro] || layers[i][parametro.toLowerCase()]) { | |
| 384 | + if (layers[i][parametro] === valor || layers[i][parametro.toLowerCase()] === valor) { | |
| 385 | + ins.push(layers[i]); | |
| 386 | + } | |
| 387 | + } else { | |
| 388 | + if (layers[i].params && layers[i].params[parametro] && layers[i].params[parametro] === valor) { | |
| 389 | + ins.push(layers[i]); | |
| 390 | + } | |
| 391 | + } | |
| 392 | + } | |
| 393 | + return ins; | |
| 394 | + }, | |
| 395 | + // layers clonados sao copias WMS de layers TMS necessarios para realizar o getfeature | |
| 396 | + // sao criados quando o layer e adicionado | |
| 397 | + layersClonados : function(paramsLayers) { | |
| 398 | + var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, i; | |
| 399 | + for (i = 0; i < nlayers; i++) { | |
| 400 | + if (layers[i].params && layers[i].params.CLONETMS === paramsLayers) { | |
| 401 | + return (layers[i]); | |
| 402 | + } | |
| 403 | + } | |
| 404 | + return false; | |
| 405 | + }, | |
| 406 | + layertms2wms : function(tms) { | |
| 407 | + var layer, url; | |
| 408 | + url = tms.url.replace("&cache=sim", "&DESLIGACACHE=sim"); | |
| 409 | + url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); | |
| 410 | + url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); | |
| 411 | + layer = new OpenLayers.Layer.WMS(tms.layername + "_clone", url, { | |
| 412 | + layers : tms.name, | |
| 413 | + transparent : true | |
| 414 | + }, { | |
| 415 | + gutter : 0, | |
| 416 | + isBaseLayer : false, | |
| 417 | + displayInLayerSwitcher : false, | |
| 418 | + opacity : 1, | |
| 419 | + visibility : true, | |
| 420 | + singleTile : true | |
| 421 | + }); | |
| 422 | + // i3GEO.editorOL.mapa.addLayer(layer); | |
| 423 | + return layer; | |
| 424 | + }, | |
| 425 | + // remove o layer clonado com layertms2wms | |
| 426 | + removeClone : function() { | |
| 427 | + var nome = i3GEO.editorOL.layerAtivo().layername + "_clone", busca = i3GEO.editorOL.mapa.getLayersByName(nome); | |
| 428 | + if (busca.length > 0) { | |
| 429 | + i3GEO.editorOL.mapa.removeLayer(i3GEO.editorOL.mapa.getLayersByName(camada.name)[0], false); | |
| 430 | + } | |
| 431 | + }, | |
| 432 | + coordenadas : function() { | |
| 433 | + // | |
| 434 | + // substitui o controle que mostra as coordenadas | |
| 435 | + // | |
| 436 | + var idcoord = i3GEO.editorOL.mapa.getControlsBy("separator", " "); | |
| 437 | + if (idcoord[0]) { | |
| 438 | + i3GEO.editorOL.mapa.events.register("mousemove", i3GEO.editorOL.mapa, function(e) { | |
| 439 | + var p, lonlat, d; | |
| 440 | + if (navm) { | |
| 441 | + p = new OpenLayers.Pixel(e.x, e.y); | |
| 442 | + } else { | |
| 443 | + p = e.xy; | |
| 444 | + } | |
| 445 | + // altera o indicador de localizacao | |
| 446 | + lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); | |
| 447 | + lonlat = i3GEO.util.projOSM2Geo(lonlat); | |
| 448 | + d = i3GEO.calculo.dd2dms(lonlat.lon, lonlat.lat); | |
| 449 | + try { | |
| 450 | + $i(idcoord[0].id).innerHTML = "Long: " + d[0] + "<br>Lat: " + d[1]; | |
| 451 | + } catch (e) { | |
| 452 | + if (typeof (console) !== 'undefined') { | |
| 453 | + console.error(e); | |
| 454 | + } | |
| 455 | + } | |
| 456 | + }); | |
| 457 | + } | |
| 458 | + }, | |
| 459 | + criaJanelaBusca : function() { | |
| 460 | + var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, ins, combo = | |
| 461 | + "<select id=i3GEOOLlistaTemasBusca ><option value=''>----</option>"; | |
| 462 | + for (i = 0; i < nlayers; i++) { | |
| 463 | + combo += "<option value='" + i + "' >" + layers[i].name + "</option>"; | |
| 464 | + } | |
| 465 | + combo += "</select>"; | |
| 466 | + ins = "<div class=paragrafo >" + $trad("a7") + ":<br>" + combo; | |
| 467 | + ins += "<br>" + $trad("x64") + ":<br><span id=i3GEOOLcomboitens ></span>"; | |
| 468 | + ins += "<br>" + $trad("t23") + ":<br><input type=text size=20 id=i3GEOOLpalavraBusca >"; | |
| 469 | + ins += "<br><br><input type=button value='" + $trad("t23") + "' id='i3GEOOLbotaoBusca' ></div>"; | |
| 470 | + ins += "<br>'" + $trad("result") + "':<br><span id=i3GEOOLcomboresultado ></span>"; | |
| 471 | + try { | |
| 472 | + YAHOO.namespace("procura.container"); | |
| 473 | + YAHOO.procura.container.panel = new YAHOO.widget.Panel("panelprocura", { | |
| 474 | + zIndex : 2000, | |
| 475 | + iframe : false, | |
| 476 | + width : "250px", | |
| 477 | + visible : false, | |
| 478 | + draggable : true, | |
| 479 | + close : true | |
| 480 | + }); | |
| 481 | + YAHOO.procura.container.panel.setHeader("Encontre no mapa"); | |
| 482 | + YAHOO.procura.container.panel.setBody(ins); | |
| 483 | + YAHOO.procura.container.panel.setFooter(""); | |
| 484 | + YAHOO.procura.container.panel.render(document.body); | |
| 485 | + YAHOO.procura.container.panel.center(); | |
| 486 | + | |
| 487 | + document.getElementById("i3GEOOLbotaoBusca").onclick = | |
| 488 | + function() { | |
| 489 | + var layer = i3GEO.editorOL.layerAtivo(), item = document.getElementById("i3GEOOLbuscaItem").value, palavra = | |
| 490 | + document.getElementById("i3GEOOLpalavraBusca").value; | |
| 491 | + if (item === "" || palavra === "") { | |
| 492 | + alert("Escolha o item e o texto de busca"); | |
| 493 | + return; | |
| 494 | + } | |
| 495 | + i3GEO.editorOL.busca(layer, item, palavra, "i3GEOOLcomboresultado"); | |
| 496 | + }; | |
| 497 | + document.getElementById("i3GEOOLlistaTemasBusca").onchange = function() { | |
| 498 | + i3GEO.editorOL.ativaTema(this.value); | |
| 499 | + document.getElementById("i3GEOOLcomboitens").innerHTML = "..."; | |
| 500 | + i3GEO.editorOL.listaItens(i3GEO.editorOL.layerAtivo(), "i3GEOOLcomboitens", "i3GEOOLbuscaItem"); | |
| 501 | + }; | |
| 502 | + } catch (e) { | |
| 503 | + } | |
| 504 | + }, | |
| 505 | + criaComboTemas : function() { | |
| 506 | + var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, nometema = "", combo = | |
| 507 | + "<select id=i3GEOOLlistaTemasAtivos style=width:235px; >"; | |
| 508 | + // i3GEO.desenho.layergrafico.setLayerIndex(i3GEO.editorOL.getNumLayers() + 1); | |
| 509 | + for (i = 0; i < nlayers; i++) { | |
| 510 | + // pega o nome do tema | |
| 511 | + nometema = layers[i].getProperties().title; | |
| 512 | + combo += "<option value='" + layers[i].getProperties().name + "' >" + nometema + "</option>"; | |
| 513 | + } | |
| 514 | + combo += "</select>"; | |
| 515 | + return combo; | |
| 516 | + }, | |
| 517 | + atualizaJanelaAtivaTema : function() { | |
| 518 | + var combo = i3GEO.editorOL.criaComboTemas(); | |
| 519 | + YAHOO.temaativo.container.panel.setBody(combo); | |
| 520 | + }, | |
| 521 | + criaJanelaAtivaTema : function() { | |
| 522 | + var temp; | |
| 523 | + if (!document.getElementById("paneltemaativo")) { | |
| 524 | + YAHOO.namespace("temaativo.container"); | |
| 525 | + YAHOO.temaativo.container.panel = new YAHOO.widget.Panel("paneltemaativo", { | |
| 526 | + zIndex : 20000, | |
| 527 | + iframe : true, | |
| 528 | + width : "250px", | |
| 529 | + visible : false, | |
| 530 | + draggable : true, | |
| 531 | + close : true | |
| 532 | + }); | |
| 533 | + YAHOO.temaativo.container.panel.setBody(""); | |
| 534 | + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { | |
| 535 | + YAHOO.temaativo.container.panel | |
| 536 | + .setHeader("Tema ativo<div id='paneltemaativo_minimizaCabecalho' class='container-minimiza'></div>"); | |
| 537 | + } else { | |
| 538 | + YAHOO.temaativo.container.panel.setHeader($trad("tativo")); | |
| 539 | + } | |
| 540 | + YAHOO.temaativo.container.panel.setFooter(""); | |
| 541 | + YAHOO.temaativo.container.panel.render(document.body); | |
| 542 | + YAHOO.temaativo.container.panel.show(); | |
| 543 | + YAHOO.temaativo.container.panel.center(); | |
| 544 | + i3GEO.editorOL.atualizaJanelaAtivaTema(); | |
| 545 | + YAHOO.util.Event.addListener(YAHOO.temaativo.container.panel.close, "click", function() { | |
| 546 | + i3GEO.editorOL.marcaBotao(); | |
| 547 | + if (i3GEO.eventos) { | |
| 548 | + i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ | |
| 549 | + "i3GEO.editorOL.atualizaJanelaAtivaTema()" | |
| 550 | + ]); | |
| 551 | + } | |
| 552 | + }); | |
| 553 | + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { | |
| 554 | + if (i3GEO.eventos) { | |
| 555 | + i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ | |
| 556 | + "i3GEO.editorOL.atualizaJanelaAtivaTema()" | |
| 557 | + ]); | |
| 558 | + } | |
| 559 | + } | |
| 560 | + temp = $i("paneltemaativo_minimizaCabecalho"); | |
| 561 | + if (temp) { | |
| 562 | + temp.onclick = function() { | |
| 563 | + i3GEO.janela.minimiza("paneltemaativo"); | |
| 564 | + }; | |
| 565 | + } | |
| 566 | + } else { | |
| 567 | + YAHOO.temaativo.container.panel.show(); | |
| 568 | + i3GEO.editorOL.atualizaJanelaAtivaTema(); | |
| 569 | + } | |
| 570 | + }, | |
| 571 | + ativaTema : function(id) { | |
| 572 | + document.getElementById("i3GEOOLlistaTemasAtivos").value = id; | |
| 573 | + }, | |
| 574 | + layerAtivo : function() { | |
| 575 | + var id = document.getElementById("i3GEOOLlistaTemasAtivos"); | |
| 576 | + if (id) { | |
| 577 | + id = id.value; | |
| 578 | + } else { | |
| 579 | + id = i3GEO.temaAtivo; | |
| 580 | + } | |
| 581 | + if (id == "") { | |
| 582 | + return []; | |
| 583 | + } else { | |
| 584 | + return i3GEO.editorOL.layersLigados()[id]; | |
| 585 | + } | |
| 586 | + }, | |
| 587 | + listaItens : function(layer, idonde, idobj) { | |
| 588 | + if (!layer) { | |
| 589 | + return; | |
| 590 | + } | |
| 591 | + if (!layer.params) { | |
| 592 | + return; | |
| 593 | + } | |
| 594 | + var u = layer.url + "&request=describefeaturetype&service=wfs&version=1.0.0"; | |
| 595 | + u += "&typename=" + layer.params.LAYERS; | |
| 596 | + document.body.style.cursor = "wait"; | |
| 597 | + document.getElementById("i3geoMapa").style.cursor = "wait"; | |
| 598 | + OpenLayers.Request.issue({ | |
| 599 | + method : "GET", | |
| 600 | + url : u, | |
| 601 | + callback : function(retorno) { | |
| 602 | + document.body.style.cursor = "default"; | |
| 603 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 604 | + var fromgml = new OpenLayers.Format.WFSDescribeFeatureType({ | |
| 605 | + geometryName : "msGeometry" | |
| 606 | + }), gml = fromgml.read(retorno.responseText), prop = gml.featureTypes[0].properties, nprop = prop.length, i, combo = | |
| 607 | + "<select id=" + idobj + " ><option value=''>----</option>"; | |
| 608 | + for (i = 0; i < nprop; i++) { | |
| 609 | + combo += "<option value=" + prop[i].name + " >" + prop[i].name + "</option>"; | |
| 610 | + } | |
| 611 | + combo += "</select>"; | |
| 612 | + document.getElementById(idonde).innerHTML = combo; | |
| 613 | + }, | |
| 614 | + failure : function() { | |
| 615 | + document.body.style.cursor = "default"; | |
| 616 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 617 | + alert("Erro"); | |
| 618 | + } | |
| 619 | + }); | |
| 620 | + }, | |
| 621 | + busca : function(layer, item, palavra, onde) { | |
| 622 | + document.body.style.cursor = "wait"; | |
| 623 | + document.getElementById("i3geoMapa").style.cursor = "wait"; | |
| 624 | + var u = layer.url + "&request=getfeature&service=wfs&version=1.0.0"; | |
| 625 | + u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); | |
| 626 | + u += "&OUTPUTFORMAT=gml2&typename=" + layer.params.LAYERS; | |
| 627 | + u += | |
| 628 | + "&filter=<Filter><PropertyIsLike wildcard=* singleChar=. escape=! ><PropertyName>" + item | |
| 629 | + + "</PropertyName><Literal>*" | |
| 630 | + + palavra | |
| 631 | + + "*</Literal></PropertyIsLike></Filter>"; | |
| 632 | + document.body.style.cursor = "wait"; | |
| 633 | + document.getElementById("i3geoMapa").style.cursor = "wait"; | |
| 634 | + document.getElementById(onde).innerHTML = "..."; | |
| 635 | + OpenLayers.Request.issue({ | |
| 636 | + method : "GET", | |
| 637 | + url : u, | |
| 638 | + callback : function(retorno) { | |
| 639 | + document.body.style.cursor = "default"; | |
| 640 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 641 | + var fromgml = new OpenLayers.Format.GML({ | |
| 642 | + geometryName : "msGeometry" | |
| 643 | + }), gml = fromgml.read(retorno.responseText), ngml = gml.length, i, ins = | |
| 644 | + "<select onchange='i3GEO.editorOL.zoomPara(this.value)'>"; | |
| 645 | + ins += "<option value=''>---</option>"; | |
| 646 | + for (i = 0; i < ngml; i++) { | |
| 647 | + eval("var valor = gml[i].data." + item); | |
| 648 | + var bounds = gml[i].geometry.getBounds(); | |
| 649 | + bounds = bounds.toBBOX(); | |
| 650 | + ins += "<option value='" + bounds + "'>" + valor + "</option>"; | |
| 651 | + } | |
| 652 | + ins += "</select>"; | |
| 653 | + document.getElementById(onde).innerHTML = ins; | |
| 654 | + }, | |
| 655 | + failure : function() { | |
| 656 | + document.body.style.cursor = "default"; | |
| 657 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 658 | + alert("Erro"); | |
| 659 | + } | |
| 660 | + }); | |
| 661 | + }, | |
| 662 | + zoomPara : function(bbox) { | |
| 663 | + var b = new OpenLayers.Bounds.fromString(bbox); | |
| 664 | + i3GEO.editorOL.mapa.zoomToExtent(b); | |
| 665 | + }, | |
| 666 | + mostraLegenda : function() { | |
| 667 | + //TODO testar no mashup | |
| 668 | + var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, ins = "", i, icone = "", url, fers, f = "", fer = ""; | |
| 669 | + for (i = 0; i < nlayers; i++) { | |
| 670 | + try { | |
| 671 | + if (layers[i].get("isBaseLayer") === false) { | |
| 672 | + url = layers[i].getFullRequestString({ | |
| 673 | + "request" : "getlegendgraphic" | |
| 674 | + }); | |
| 675 | + //i3GEO.editorOL.mapa.getLayers().item(0).getSource().getUrls()[0] | |
| 676 | + icone = ""; | |
| 677 | + if (i3GEO.editorOL.legendahtml === true) { | |
| 678 | + // os parametros FORMAT e SERVICE sao inseridos de forma redundante para grantir | |
| 679 | + // caso seja um TMS | |
| 680 | + url = url.replace("image%2Fpng", "text/html") + "&FORMAT=text/html&SERVICE=WMS"; | |
| 681 | + // verifica se a camada veio de um plugin de classe_plugini3geo | |
| 682 | + // e insere o icone se for necessario | |
| 683 | + if (layers[i].options.plugini3geo) { | |
| 684 | + if (layers[i].params.LAYERS) { | |
| 685 | + // wms | |
| 686 | + icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].params.LAYERS); | |
| 687 | + } else { | |
| 688 | + // tms | |
| 689 | + icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].layers); | |
| 690 | + } | |
| 691 | + } | |
| 692 | + // | |
| 693 | + // verifica se a camada tem ferramentas parametrizadas | |
| 694 | + // insere o icone | |
| 695 | + // | |
| 696 | + fers = layers[i].options.ferramentas; | |
| 697 | + for (fer in fers) { | |
| 698 | + if (i3GEO.configura.ferramentasLayers[fer]) { | |
| 699 | + icone = i3GEO.configura.ferramentasLayers[fer].icone(layers[i]); | |
| 700 | + } | |
| 701 | + } | |
| 702 | + ins += icone + layers[i].name + "<br><div id=legendaL_" + i + " ></div><br>"; | |
| 703 | + // necessario pq nao e sincrono | |
| 704 | + eval("var f = function(retorno){document.getElementById('legendaL_" + i | |
| 705 | + + "').innerHTML = retorno.responseText;};"); | |
| 706 | + var config = { | |
| 707 | + method : "GET", | |
| 708 | + url : url, | |
| 709 | + callback : f | |
| 710 | + }; | |
| 711 | + OpenLayers.Request.issue(config); | |
| 712 | + } else { | |
| 713 | + url = url.replace("LAYERS", "LAYER"); | |
| 714 | + url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); | |
| 715 | + url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); | |
| 716 | + ins += layers[i].name + "<br><img src='" + url + "&SERVICE=wms' /><br>"; | |
| 717 | + } | |
| 718 | + } | |
| 719 | + } catch (e) { | |
| 720 | + } | |
| 721 | + } | |
| 722 | + // var w = window.open(); | |
| 723 | + // w.document.write(ins); | |
| 724 | + // w.document.close(); | |
| 725 | + if (!document.getElementById("panellegendaeditorOL")) { | |
| 726 | + YAHOO.namespace("legendaeditorOL.container"); | |
| 727 | + YAHOO.legendaeditorOL.container.panel = new YAHOO.widget.Panel("panellegendaeditorOL", { | |
| 728 | + zIndex : 20000, | |
| 729 | + iframe : true, | |
| 730 | + width : "auto", | |
| 731 | + visible : false, | |
| 732 | + draggable : true, | |
| 733 | + close : true | |
| 734 | + }); | |
| 735 | + YAHOO.legendaeditorOL.container.panel.setBody(ins); | |
| 736 | + YAHOO.legendaeditorOL.container.panel.setHeader($trad("p3")); | |
| 737 | + YAHOO.legendaeditorOL.container.panel.setFooter(""); | |
| 738 | + YAHOO.legendaeditorOL.container.panel.render(document.body); | |
| 739 | + YAHOO.legendaeditorOL.container.panel.show(); | |
| 740 | + YAHOO.legendaeditorOL.container.panel.center(); | |
| 741 | + | |
| 742 | + YAHOO.util.Event.addListener(YAHOO.legendaeditorOL.container.panel.close, "click", function() { | |
| 743 | + YAHOO.legendaeditorOL.container.panel.destroy(); | |
| 744 | + }); | |
| 745 | + } else { | |
| 746 | + YAHOO.legendaeditorOL.container.panel.setBody(ins); | |
| 747 | + YAHOO.legendaeditorOL.container.panel.show(); | |
| 748 | + } | |
| 749 | + }, | |
| 750 | + captura : function(lonlat) { | |
| 751 | + // if(i3GEO.desenho.layergrafico !== ""){return;} | |
| 752 | + | |
| 753 | + var d = 0.1, layers = [ | |
| 754 | + i3GEO.editorOL.layerAtivo() | |
| 755 | + ], xy = lonlat.split(","), u = layers[0].url + "&REQUEST=getfeature&service=wfs&version=1.0.0"; | |
| 756 | + u += "&OUTPUTFORMAT=gml2&typename=" + layers[0].params.LAYERS; | |
| 757 | + // remove parametros nao desejados | |
| 758 | + if (i3GEO.Interface.openlayers.googleLike === true) { | |
| 759 | + u += "&SRS=EPSG:3857"; | |
| 760 | + } | |
| 761 | + u = u.replace("&cache=sim", "&DESLIGACACHE=sim"); | |
| 762 | + u = u.replace("&Z=${z}&X=${x}&Y=${y}", ""); | |
| 763 | + u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); | |
| 764 | + // u += | |
| 765 | + // "&filter=<Filter><Intersects><PropertyName>Geometry</PropertyName><gml:Point><gml:coordinates>"+lonlat+"</gml:coordinates></gml:Point></Intersects></Filter>"; | |
| 766 | + | |
| 767 | + xy[0] = xy[0] * 1; | |
| 768 | + xy[1] = xy[1] * 1; | |
| 769 | + var poligono = | |
| 770 | + (xy[0] - d) + "," | |
| 771 | + + (xy[1] + d) | |
| 772 | + + " " | |
| 773 | + + (xy[0] + d) | |
| 774 | + + "," | |
| 775 | + + (xy[1] + d) | |
| 776 | + + " " | |
| 777 | + + (xy[0] + d) | |
| 778 | + + "," | |
| 779 | + + (xy[1] - d) | |
| 780 | + + " " | |
| 781 | + + (xy[0] - d) | |
| 782 | + + "," | |
| 783 | + + (xy[1] - d) | |
| 784 | + + " " | |
| 785 | + + (xy[0] - d) | |
| 786 | + + "," | |
| 787 | + + (xy[1] + d); | |
| 788 | + u += | |
| 789 | + "&filter=<Filter><Intersects><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:posList>" + poligono | |
| 790 | + + "</gml:posList></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersects></Filter>"; | |
| 791 | + | |
| 792 | + document.body.style.cursor = "wait"; | |
| 793 | + if (document.getElementById("i3geoMapa")) { | |
| 794 | + document.getElementById("i3geoMapa").style.cursor = "wait"; | |
| 795 | + } | |
| 796 | + OpenLayers.Request.issue({ | |
| 797 | + method : "GET", | |
| 798 | + url : u, | |
| 799 | + callback : function(retorno) { | |
| 800 | + document.body.style.cursor = "default"; | |
| 801 | + if (document.getElementById("i3geoMapa")) { | |
| 802 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 803 | + } | |
| 804 | + var i, n, f, fromgml = new OpenLayers.Format.GML({ | |
| 805 | + geometryName : "msGeometry" | |
| 806 | + }), gml = fromgml.read(retorno.responseText); | |
| 807 | + n = gml.length; | |
| 808 | + for (i = 0; i < n; i++) { | |
| 809 | + f = gml[i]; | |
| 810 | + f["attributes"] = { | |
| 811 | + opacidade : i3GEO.editorOL.simbologia.opacidade, | |
| 812 | + texto : i3GEO.editorOL.simbologia.texto, | |
| 813 | + fillColor : i3GEO.editorOL.simbologia.fillColor, | |
| 814 | + strokeWidth : i3GEO.editorOL.simbologia.strokeWidth, | |
| 815 | + strokeColor : i3GEO.editorOL.simbologia.strokeColor, | |
| 816 | + pointRadius : i3GEO.editorOL.simbologia.pointRadius, | |
| 817 | + graphicName : i3GEO.editorOL.simbologia.graphicName, | |
| 818 | + registros : f["attributes"] | |
| 819 | + }; | |
| 820 | + } | |
| 821 | + i3GEO.desenho.layergrafico.addFeatures(gml); | |
| 822 | + }, | |
| 823 | + failure : function() { | |
| 824 | + document.body.style.cursor = "default"; | |
| 825 | + if (document.getElementById("i3geoMapa")) { | |
| 826 | + document.getElementById("i3geoMapa").style.cursor = "default"; | |
| 827 | + } | |
| 828 | + alert("Erro"); | |
| 829 | + } | |
| 830 | + }); | |
| 831 | + }, | |
| 832 | + salvaGeometrias : function() { | |
| 833 | + var geos = i3GEO.desenho.layergrafico.selectedFeatures, n = geos.length, ins = ""; | |
| 834 | + if (n > 0) { | |
| 835 | + if ($i("panelsalvageometrias")) { | |
| 836 | + if (YAHOO.i3GEO) { | |
| 837 | + YAHOO.salvaGeometrias.container.panel = YAHOO.i3GEO.janela.manager.find("panelsalvageometrias"); | |
| 838 | + } | |
| 839 | + YAHOO.salvaGeometrias.container.panel.show(); | |
| 840 | + YAHOO.salvaGeometrias.container.panel.bringToTop(); | |
| 841 | + } else { | |
| 842 | + try { | |
| 843 | + YAHOO.namespace("salvaGeometrias.container"); | |
| 844 | + YAHOO.salvaGeometrias.container.panel = new YAHOO.widget.Panel("panelsalvageometrias", { | |
| 845 | + zIndex : 2000, | |
| 846 | + iframe : false, | |
| 847 | + width : "250px", | |
| 848 | + visible : false, | |
| 849 | + draggable : true, | |
| 850 | + close : true | |
| 851 | + }); | |
| 852 | + YAHOO.salvaGeometrias.container.panel.setHeader($trad("u6")); | |
| 853 | + YAHOO.salvaGeometrias.container.panel.setBody(""); | |
| 854 | + YAHOO.salvaGeometrias.container.panel.setFooter(""); | |
| 855 | + YAHOO.salvaGeometrias.container.panel.render(document.body); | |
| 856 | + YAHOO.salvaGeometrias.container.panel.center(); | |
| 857 | + if (YAHOO.i3GEO && YAHOO.i3GEO.janela) { | |
| 858 | + YAHOO.i3GEO.janela.manager.register(YAHOO.salvaGeometrias.container.panel); | |
| 859 | + } | |
| 860 | + YAHOO.salvaGeometrias.container.panel.show(); | |
| 861 | + } catch (e) { | |
| 862 | + } | |
| 863 | + } | |
| 864 | + ins += "<p class=paragrafo >" + n + " " + $trad("geosel") + "</p>"; | |
| 865 | + ins += | |
| 866 | + "<p class=paragrafo ><a href='#' onclick='i3GEO.editorOL.listaGeometriasSel()' >" + $trad("listar") | |
| 867 | + + "</a> "; | |
| 868 | + if (i3GEO.editorOL.nomeFuncaoSalvar && i3GEO.editorOL.nomeFuncaoSalvar != "") { | |
| 869 | + ins += "<a href='#' onclick='" + i3GEO.editorOL.nomeFuncaoSalvar + "' >" + $trad("sdados") + "</a> "; | |
| 870 | + } | |
| 871 | + if (typeof i3geoOL !== "undefined") { | |
| 872 | + ins += "<a href='#' onclick='i3GEO.editorOL.incorporar()' >" + $trad("incorpo") + "</a></p>"; | |
| 873 | + ins += "<p class=paragrafo>" + $trad("ajudaEditorOlSalva") + "</p>"; | |
| 874 | + } | |
| 875 | + YAHOO.salvaGeometrias.container.panel.setBody(ins); | |
| 876 | + } else { | |
| 877 | + i3GEO.janela.tempoMsg($trad("selum")); | |
| 878 | + } | |
| 879 | + }, | |
| 880 | + exportarSHP : function() { | |
| 881 | + i3GEO.editorOL.processageo("converteSHP"); | |
| 882 | + }, | |
| 883 | + incorporar : function() { | |
| 884 | + i3GEO.editorOL.processageo("incorporar"); | |
| 885 | + }, | |
| 886 | + listaGeometriasSel : function() { | |
| 887 | + var geos = i3GEO.desenho.layergrafico.selectedFeatures, n = geos.length, ins = "", i, a, w, g; | |
| 888 | + for (i = 0; i < n; i++) { | |
| 889 | + g = geos[i]; | |
| 890 | + ins += "<b>" + $trad("u6") + ": " + i + "</b><br>" + i3GEO.editorOL.google2wgs(g.geometry) + "<br><br>"; | |
| 891 | + ins += "<b>" + $trad("atrib") + ": " + i + "</b><br>"; | |
| 892 | + a = g.attributes; | |
| 893 | + for (key in a) { | |
| 894 | + if (a[key]) { | |
| 895 | + ins += key + " = " + a[key] + "<br>"; | |
| 896 | + } | |
| 897 | + } | |
| 898 | + // lista os registros se for fruto de uma captura | |
| 899 | + if (g.attributes.registros) { | |
| 900 | + ins += "<b>" + $trad("reg") + ": " + i + "</b><br>"; | |
| 901 | + a = g.attributes.registros; | |
| 902 | + for (key in a) { | |
| 903 | + if (a[key]) { | |
| 904 | + ins += key + " = " + a[key] + "<br>"; | |
| 905 | + } | |
| 906 | + } | |
| 907 | + } | |
| 908 | + ins += "<br>"; | |
| 909 | + } | |
| 910 | + w = window.open(); | |
| 911 | + w.document.write(ins); | |
| 912 | + w.document.close(); | |
| 913 | + }, | |
| 914 | + testeSalvar : function() { | |
| 915 | + alert("Funcao nao disponivel. Defina o nome da funcao em i3GEO.editorOL.nomeFuncaoSalvar "); | |
| 916 | + }, | |
| 917 | + salvaGeo : function() { | |
| 918 | + // i3GEO.editorOL.testeSalvar(); | |
| 919 | + // return; | |
| 920 | + var geos = i3GEO.desenho.layergrafico.selectedFeatures, n = geos.length, funcaoOK = | |
| 921 | + function() { | |
| 922 | + // verifica se a geometria contem o atributo que indica a coluna ou codigo unico | |
| 923 | + if (geos[0].geometry) { | |
| 924 | + var registros = "", valorunico = "", nometema = $i("editorOLcomboTemaEditavel").value, key = "", tema, redesenha, p, g = | |
| 925 | + i3GEO.editorOL.google2wgs(geos[0].geometry); | |
| 926 | + if (nometema == "") { | |
| 927 | + return; | |
| 928 | + } | |
| 929 | + tema = i3GEO.arvoreDeCamadas.pegaTema(nometema, "", "name"); | |
| 930 | + // o tema contem o indicador de qual e a coluna que contem o identificador unico | |
| 931 | + if (geos[0].attributes.registros) { | |
| 932 | + registros = geos[0].attributes.registros; | |
| 933 | + for (key in registros) { | |
| 934 | + if (registros[key] && key == tema.colunaidunico) { | |
| 935 | + valorunico = registros[key]; | |
| 936 | + } | |
| 937 | + } | |
| 938 | + } | |
| 939 | + redesenha = function(retorno) { | |
| 940 | + i3GEO.janela.fechaAguarde("aguardeSalvaPonto"); | |
| 941 | + i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.selectedFeatures); | |
| 942 | + i3GEO.Interface.atualizaTema("", nometema); | |
| 943 | + }; | |
| 944 | + i3GEO.janela.AGUARDEMODAL = true; | |
| 945 | + i3GEO.janela.abreAguarde("aguardeSalvaPonto", $trad("adic") + "..."); | |
| 946 | + i3GEO.janela.AGUARDEMODAL = false; | |
| 947 | + | |
| 948 | + // cria um novo registro | |
| 949 | + if (valorunico == "") { | |
| 950 | + p = | |
| 951 | + i3GEO.configura.locaplic + "/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid=" | |
| 952 | + + i3GEO.configura.sid; | |
| 953 | + cpJSON.call(p, "foo", redesenha, "&tema=" + nometema + "&wkt=" + g); | |
| 954 | + } else { | |
| 955 | + // atualiza a geometria | |
| 956 | + p = | |
| 957 | + i3GEO.configura.locaplic + "/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid=" | |
| 958 | + + i3GEO.configura.sid; | |
| 959 | + cpJSON.call(p, "foo", redesenha, "&idunico=" + valorunico + "&tema=" + nometema + "&wkt=" + g); | |
| 960 | + } | |
| 961 | + } | |
| 962 | + }, funcaoCombo = function(obj) { | |
| 963 | + $i("editorOLondeComboTemaEditavel").innerHTML = obj.dados; | |
| 964 | + }, texto = $trad("stema") + ":<br><div id=editorOLondeComboTemaEditavel ></div><br><br>"; | |
| 965 | + if (n != 1) { | |
| 966 | + i3GEO.janela.tempoMsg($trad("seluma")); | |
| 967 | + } else { | |
| 968 | + i3GEO.janela.confirma(texto, 300, $trad("salva"), $trad("canc"), funcaoOK); | |
| 969 | + i3GEO.util.comboTemas("editorOLcomboTemaEditavel", funcaoCombo, "editorOLondeComboTemaEditavel", "", false, "editavel"); | |
| 970 | + } | |
| 971 | + }, | |
| 972 | + //muda a classe do botao para marca-lo como ativo | |
| 973 | + marcaBotao : function(classeBotao){ | |
| 974 | + //desmarca todos os botoes | |
| 975 | + var i, n, botoes = $i("i3GEObarraEdicao").getElementsByTagName("div"); | |
| 976 | + n = botoes.length; | |
| 977 | + for(i = 0; i < n; i++){ | |
| 978 | + botoes[i].className = botoes[i].className.replace("ItemActive","ItemInactive"); | |
| 979 | + if(classeBotao){ | |
| 980 | + botoes[i].className = botoes[i].className.replace(classeBotao+"ItemInactive",classeBotao+"ItemActive"); | |
| 981 | + } | |
| 982 | + } | |
| 983 | + i3GEO.editorOL.removeInteracoes(); | |
| 984 | + }, | |
| 985 | + //interacoes criadas ao ativar algum botao | |
| 986 | + //usado para remover as interacoes | |
| 987 | + interacoes : [], | |
| 988 | + removeInteracoes: function(){ | |
| 989 | + var i, n; | |
| 990 | + n = i3GEO.editorOL.interacoes.length; | |
| 991 | + for(i = 0; i < n; i++){ | |
| 992 | + i3geoOL.removeInteraction(i3GEO.editorOL.interacoes[i]); | |
| 993 | + } | |
| 994 | + i3GEO.editorOL.interacoes = []; | |
| 995 | + }, | |
| 996 | + criaBotoes : function(botoes) { | |
| 997 | + if($i("i3GEObarraEdicao")){ | |
| 998 | + $i("i3GEObarraEdicao").style.display = "block"; | |
| 999 | + return; | |
| 1000 | + } | |
| 1001 | + var temp; | |
| 1002 | + //cria o painel onde entrarão os icones | |
| 1003 | + i3GEOpanelEditor = document.createElement("div"); | |
| 1004 | + i3GEOpanelEditor.id = "i3GEObarraEdicao"; | |
| 1005 | + i3GEOpanelEditor.className = "olControlEditingToolbar1 noprint"; | |
| 1006 | + //cria os icones | |
| 1007 | + if (botoes.procura === true) { | |
| 1008 | + temp = document.createElement("div"); | |
| 1009 | + temp.className = "editorOLprocuraItemInactive olButton"; | |
| 1010 | + temp.title = $trad("t23"); | |
| 1011 | + temp.onclick = function(){ | |
| 1012 | + YAHOO.procura.container.panel.show(); | |
| 1013 | + }; | |
| 1014 | + i3GEOpanelEditor.appendChild(temp); | |
| 1015 | + } | |
| 1016 | + if (botoes.pan === true) { | |
| 1017 | + temp = document.createElement("div"); | |
| 1018 | + temp.className = "editorOLpanItemInactive olButton"; | |
| 1019 | + temp.title = "pan"; | |
| 1020 | + temp.onclick = function(){ | |
| 1021 | + i3GEO.editorOL.marcaBotao("editorOLpan"); | |
| 1022 | + }; | |
| 1023 | + i3GEOpanelEditor.appendChild(temp); | |
| 1024 | + } | |
| 1025 | + if (botoes.zoombox === true) { | |
| 1026 | + temp = document.createElement("div"); | |
| 1027 | + temp.className = "editorOLzoomboxItemInactive olButton"; | |
| 1028 | + temp.title = "zoombox"; | |
| 1029 | + temp.onclick = function(){ | |
| 1030 | + i3GEO.barraDeBotoes.defBotao("zoomli").funcaoonclick; | |
| 1031 | + }; | |
| 1032 | + i3GEOpanelEditor.appendChild(temp); | |
| 1033 | + } | |
| 1034 | + if (botoes.zoomtot === true) { | |
| 1035 | + temp = document.createElement("div"); | |
| 1036 | + temp.className = "editorOLzoomtotItemInactive olButton"; | |
| 1037 | + temp.title = $trad("d2t"); | |
| 1038 | + temp.onclick = function(){ | |
| 1039 | + if (i3GEO.editorOL.mapext && i3GEO.editorOL.mapext != "") { | |
| 1040 | + i3GEO.Interface.openlayers.zoom2ext(i3GEO.editorOL.mapext.join(" ")); | |
| 1041 | + } else { | |
| 1042 | + i3GEO.Interface.openlayers.zoom2ext(i3GEO.parametros.extentTotal); | |
| 1043 | + } | |
| 1044 | + }; | |
| 1045 | + i3GEOpanelEditor.appendChild(temp); | |
| 1046 | + } | |
| 1047 | + if (botoes.zoomin === true) { | |
| 1048 | + temp = document.createElement("div"); | |
| 1049 | + temp.className = "editorOLzoominItemInactive olButton"; | |
| 1050 | + temp.title = $trad("d5t"); | |
| 1051 | + temp.onclick = function(){ | |
| 1052 | + var v = i3GEO.editorOL.mapa.getView(); | |
| 1053 | + v.setZoom(v.getZoom() + 1); | |
| 1054 | + }; | |
| 1055 | + i3GEOpanelEditor.appendChild(temp); | |
| 1056 | + } | |
| 1057 | + if (botoes.zoomout === true) { | |
| 1058 | + temp = document.createElement("div"); | |
| 1059 | + temp.className = "editorOLzoomoutItemInactive olButton"; | |
| 1060 | + temp.title = $trad("d5t"); | |
| 1061 | + temp.onclick = function(){ | |
| 1062 | + var v = i3GEO.editorOL.mapa.getView(); | |
| 1063 | + v.setZoom(v.getZoom() - 1); | |
| 1064 | + }; | |
| 1065 | + i3GEOpanelEditor.appendChild(temp); | |
| 1066 | + } | |
| 1067 | + if (botoes.legenda === true) { | |
| 1068 | + temp = document.createElement("div"); | |
| 1069 | + temp.className = "editorOLlegendaItemInactive olButton"; | |
| 1070 | + temp.title = $trad("p3"); | |
| 1071 | + temp.onclick = function(){ | |
| 1072 | + i3GEO.editorOL.mostraLegenda(); | |
| 1073 | + }; | |
| 1074 | + i3GEOpanelEditor.appendChild(temp); | |
| 1075 | + } | |
| 1076 | + if (botoes.distancia === true) { | |
| 1077 | + temp = document.createElement("div"); | |
| 1078 | + temp.className = "editorOLdistanciaItemInactive olButton"; | |
| 1079 | + temp.title = $trad("d21t"); | |
| 1080 | + temp.onclick = function(){ | |
| 1081 | + i3GEO.editorOL.marcaBotao("editorOLdistancia"); | |
| 1082 | + i3GEO.barraDeBotoes.defBotao("mede").funcaoonclick; | |
| 1083 | + }; | |
| 1084 | + i3GEOpanelEditor.appendChild(temp); | |
| 1085 | + } | |
| 1086 | + if (botoes.area === true) { | |
| 1087 | + temp = document.createElement("div"); | |
| 1088 | + temp.className = "editorOLareaItemInactive olButton"; | |
| 1089 | + temp.title = $trad("d21at"); | |
| 1090 | + temp.onclick = function(){ | |
| 1091 | + i3GEO.editorOL.marcaBotao("editorOLarea"); | |
| 1092 | + i3GEO.barraDeBotoes.defBotao("area").funcaoonclick; | |
| 1093 | + }; | |
| 1094 | + i3GEOpanelEditor.appendChild(temp); | |
| 1095 | + } | |
| 1096 | + if (botoes.linha === true) { | |
| 1097 | + temp = document.createElement("div"); | |
| 1098 | + temp.className = "editorOLlinhaItemInactive olButton"; | |
| 1099 | + temp.title = $trad("dlinha"); | |
| 1100 | + temp.onclick = function(){ | |
| 1101 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1102 | + i3GEO.editorOL.marcaBotao("editorOLlinha"); | |
| 1103 | + var draw = new ol.interaction.Draw({ | |
| 1104 | + type : "LineString" | |
| 1105 | + }); | |
| 1106 | + //adiciona a interacao para poder ser removida | |
| 1107 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1108 | + //desativa ol.interaction.DoubleClickZoom | |
| 1109 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1110 | + draw.on("drawend", function(evt) { | |
| 1111 | + evt.feature.setStyle( | |
| 1112 | + new ol.style.Style({ | |
| 1113 | + stroke: new ol.style.Stroke({ | |
| 1114 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 1115 | + width: i3GEO.editorOL.simbologia.strokeWidth | |
| 1116 | + }), | |
| 1117 | + fill: new ol.style.Fill({ | |
| 1118 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | |
| 1119 | + }) | |
| 1120 | + }) | |
| 1121 | + ); | |
| 1122 | + evt.feature.setId(i3GEO.util.uid()); | |
| 1123 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | |
| 1124 | + draw.setActive(false); | |
| 1125 | + draw.setActive(true); | |
| 1126 | + if (document.getElementById("panellistagEditor")) { | |
| 1127 | + i3GEO.editorOL.listaGeometrias(); | |
| 1128 | + } | |
| 1129 | + }); | |
| 1130 | + i3geoOL.addInteraction(draw); | |
| 1131 | + }; | |
| 1132 | + i3GEOpanelEditor.appendChild(temp); | |
| 1133 | + } | |
| 1134 | + //TODO falta definir imagem | |
| 1135 | + if (botoes.ponto === true) { | |
| 1136 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1137 | + temp = document.createElement("div"); | |
| 1138 | + temp.className = "editorOLpontoItemInactive olButton"; | |
| 1139 | + temp.title = $trad("dponto"); | |
| 1140 | + temp.onclick = function(){ | |
| 1141 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1142 | + i3GEO.editorOL.marcaBotao("editorOLponto"); | |
| 1143 | + var draw = new ol.interaction.Draw({ | |
| 1144 | + type : "Point" | |
| 1145 | + }); | |
| 1146 | + //adiciona a interacao para poder ser removida | |
| 1147 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1148 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1149 | + draw.on("drawend", function(evt) { | |
| 1150 | + evt.feature.setStyle( | |
| 1151 | + new ol.style.Style({ | |
| 1152 | + image: new ol.style.Circle({ | |
| 1153 | + radius: i3GEO.editorOL.simbologia.pointRadius, | |
| 1154 | + fill: new ol.style.Fill({ | |
| 1155 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | |
| 1156 | + }), | |
| 1157 | + stroke: new ol.style.Stroke({ | |
| 1158 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 1159 | + width: i3GEO.editorOL.simbologia.pointRadius / 3 | |
| 1160 | + }) | |
| 1161 | + }) | |
| 1162 | + }) | |
| 1163 | + ); | |
| 1164 | + evt.feature.setId(i3GEO.util.uid()); | |
| 1165 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | |
| 1166 | + draw.setActive(false); | |
| 1167 | + draw.setActive(true); | |
| 1168 | + if (document.getElementById("panellistagEditor")) { | |
| 1169 | + i3GEO.editorOL.listaGeometrias(); | |
| 1170 | + } | |
| 1171 | + }); | |
| 1172 | + i3geoOL.addInteraction(draw); | |
| 1173 | + }; | |
| 1174 | + i3GEOpanelEditor.appendChild(temp); | |
| 1175 | + } | |
| 1176 | + if (botoes.poligono === true) { | |
| 1177 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1178 | + temp = document.createElement("div"); | |
| 1179 | + temp.className = "editorOLpoligonoItemInactive olButton"; | |
| 1180 | + temp.title = $trad("dpol"); | |
| 1181 | + temp.onclick = function(){ | |
| 1182 | + i3GEO.editorOL.marcaBotao("editorOLpoligono"); | |
| 1183 | + var draw = new ol.interaction.Draw({ | |
| 1184 | + type : "Polygon" | |
| 1185 | + }); | |
| 1186 | + /* | |
| 1187 | + snap = new ol.interaction.Snap({ | |
| 1188 | + source: i3GEO.desenho.layergrafico.getSource() | |
| 1189 | + }); | |
| 1190 | + i3GEO.editorOL.interacoes.push(snap); | |
| 1191 | + */ | |
| 1192 | + //adiciona a interacao para poder ser removida | |
| 1193 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1194 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1195 | + draw.on("drawend", function(evt) { | |
| 1196 | + evt.feature.setStyle( | |
| 1197 | + new ol.style.Style({ | |
| 1198 | + stroke: new ol.style.Stroke({ | |
| 1199 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 1200 | + width: i3GEO.editorOL.simbologia.strokeWidth | |
| 1201 | + }), | |
| 1202 | + fill: new ol.style.Fill({ | |
| 1203 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | |
| 1204 | + }) | |
| 1205 | + }) | |
| 1206 | + ); | |
| 1207 | + evt.feature.setId(i3GEO.util.uid()); | |
| 1208 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | |
| 1209 | + draw.setActive(false); | |
| 1210 | + draw.setActive(true); | |
| 1211 | + if (document.getElementById("panellistagEditor")) { | |
| 1212 | + i3GEO.editorOL.listaGeometrias(); | |
| 1213 | + } | |
| 1214 | + }); | |
| 1215 | + i3geoOL.addInteraction(draw); | |
| 1216 | + }; | |
| 1217 | + i3GEOpanelEditor.appendChild(temp); | |
| 1218 | + } | |
| 1219 | + | |
| 1220 | + if (botoes.texto === true) { | |
| 1221 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1222 | + temp = document.createElement("div"); | |
| 1223 | + temp.className = "editorOLtextoItemInactive olButton"; | |
| 1224 | + temp.title = $trad("dtexto"); | |
| 1225 | + temp.onclick = function(){ | |
| 1226 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1227 | + i3GEO.editorOL.marcaBotao("editorOLtexto"); | |
| 1228 | + var draw = new ol.interaction.Draw({ | |
| 1229 | + type : "Point" | |
| 1230 | + }); | |
| 1231 | + //adiciona a interacao para poder ser removida | |
| 1232 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1233 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1234 | + draw.on("drawend", function(evt) { | |
| 1235 | + var texto = window.prompt("Texto", ""); | |
| 1236 | + evt.feature.setStyle( | |
| 1237 | + new ol.style.Style({ | |
| 1238 | + text: new ol.style.Text({ | |
| 1239 | + text: texto, | |
| 1240 | + font: 'Bold ' + parseInt(i3GEO.editorOL.simbologia.fontSize,10) + 'px Arial', | |
| 1241 | + textAlign: 'left', | |
| 1242 | + stroke: new ol.style.Stroke({ | |
| 1243 | + color: 'white', | |
| 1244 | + width: i3GEO.editorOL.simbologia.strokeWidth | |
| 1245 | + }), | |
| 1246 | + fill: new ol.style.Fill({ | |
| 1247 | + color: i3GEO.editorOL.simbologia.fontColor | |
| 1248 | + }), | |
| 1249 | + zIndex: 2000 | |
| 1250 | + }) | |
| 1251 | + }) | |
| 1252 | + ); | |
| 1253 | + evt.feature.setId(i3GEO.util.uid()); | |
| 1254 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | |
| 1255 | + draw.setActive(false); | |
| 1256 | + draw.setActive(true); | |
| 1257 | + i3GEO.editorOL.marcaBotao(); | |
| 1258 | + }); | |
| 1259 | + i3geoOL.addInteraction(draw); | |
| 1260 | + }; | |
| 1261 | + i3GEOpanelEditor.appendChild(temp); | |
| 1262 | + } | |
| 1263 | + | |
| 1264 | + if (botoes.selecao === true) { | |
| 1265 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1266 | + temp = document.createElement("div"); | |
| 1267 | + temp.className = "editorOLselecaoItemInactive olButton"; | |
| 1268 | + temp.title = $trad("d24t"); | |
| 1269 | + temp.onclick = function(){ | |
| 1270 | + i3GEO.editorOL.marcaBotao("editorOLselecao"); | |
| 1271 | + var sel = new ol.interaction.Select(); | |
| 1272 | + //adiciona a interacao para poder ser removida | |
| 1273 | + i3GEO.editorOL.interacoes.push(sel); | |
| 1274 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1275 | + sel.on("select", function(evt) { | |
| 1276 | + var i, n, id, f; | |
| 1277 | + n = evt.selected.length; | |
| 1278 | + for(i=0; i<n; i++){ | |
| 1279 | + f = evt.selected[i]; | |
| 1280 | + id = f.getId(); | |
| 1281 | + if(id && i3GEO.util.in_array(id,i3GEO.editorOL.idsSelecionados)){ | |
| 1282 | + i3GEO.editorOL.unselFeature(id); | |
| 1283 | + } | |
| 1284 | + else{ | |
| 1285 | + id = i3GEO.util.uid(); | |
| 1286 | + i3GEO.editorOL.idsSelecionados.push(id); | |
| 1287 | + f.setId(id); | |
| 1288 | + f.setProperties({ | |
| 1289 | + fillColor: f.getStyle().getFill().getColor(), | |
| 1290 | + strokeColor: f.getStyle().getStroke().getColor() | |
| 1291 | + }); | |
| 1292 | + f.getStyle().getFill().setColor('rgba(255, 255, 255, 0.5)'); | |
| 1293 | + f.getStyle().getStroke().setColor('blue'); | |
| 1294 | + } | |
| 1295 | + } | |
| 1296 | + if (n === 0){ | |
| 1297 | + i3GEO.editorOL.unselTodos(); | |
| 1298 | + } | |
| 1299 | + }); | |
| 1300 | + i3geoOL.addInteraction(sel); | |
| 1301 | + }; | |
| 1302 | + i3GEOpanelEditor.appendChild(temp); | |
| 1303 | + } | |
| 1304 | + | |
| 1305 | + if (botoes.selecaotudo === true) { | |
| 1306 | + temp = document.createElement("div"); | |
| 1307 | + temp.className = "editorOLselecaoTudoItemInactive olButton"; | |
| 1308 | + temp.title = $trad("studo"); | |
| 1309 | + temp.onclick = function(){ | |
| 1310 | + i3GEO.editorOL.marcaBotao(); | |
| 1311 | + i3GEO.editorOL.selTodos(); | |
| 1312 | + }; | |
| 1313 | + i3GEOpanelEditor.appendChild(temp); | |
| 1314 | + } | |
| 1315 | + | |
| 1316 | + if (botoes.apaga === true) { | |
| 1317 | + temp = document.createElement("div"); | |
| 1318 | + temp.className = "editorOLapagaItemInactive olButton"; | |
| 1319 | + temp.title = $trad("excsel"); | |
| 1320 | + temp.onclick = function(){ | |
| 1321 | + var x, nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1322 | + i3GEO.editorOL.featuresBackup = []; | |
| 1323 | + i3GEO.editorOL.marcaBotao(); | |
| 1324 | + if(nsel > 0){ | |
| 1325 | + x = window.confirm($trad("excsel") + "?"); | |
| 1326 | + if(x){ | |
| 1327 | + i3GEO.editorOL.removeFeaturesSel(); | |
| 1328 | + i3GEO.desenho.layergrafico.getSource().changed(); | |
| 1329 | + } | |
| 1330 | + } | |
| 1331 | + else{ | |
| 1332 | + i3GEO.janela.tempoMsg($trad("selum")); | |
| 1333 | + } | |
| 1334 | + }; | |
| 1335 | + i3GEOpanelEditor.appendChild(temp); | |
| 1336 | + } | |
| 1337 | + | |
| 1338 | + if (botoes.frente === true) { | |
| 1339 | + temp = document.createElement("div"); | |
| 1340 | + temp.className = "editorOLfrenteItemInactive olButton"; | |
| 1341 | + temp.title = $trad("frente"); | |
| 1342 | + temp.onclick = function(){ | |
| 1343 | + var nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1344 | + if(nsel > 0){ | |
| 1345 | + i3GEO.editorOL.marcaBotao(); | |
| 1346 | + i3GEO.editorOL.trazParaFrente(); | |
| 1347 | + } | |
| 1348 | + else{ | |
| 1349 | + i3GEO.janela.tempoMsg($trad("selum")); | |
| 1350 | + } | |
| 1351 | + }; | |
| 1352 | + i3GEOpanelEditor.appendChild(temp); | |
| 1353 | + } | |
| 1354 | + //TODO Translate nao funciona nessa versao do openlayers 3x precisa atualizar | |
| 1355 | + if (botoes.edita === true) { | |
| 1356 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1357 | + temp = document.createElement("div"); | |
| 1358 | + temp.className = "editorOLeditaItemInactive olButton"; | |
| 1359 | + temp.title = $trad("dpol"); | |
| 1360 | + temp.onclick = function(){ | |
| 1361 | + i3GEO.editorOL.featuresBackup = []; | |
| 1362 | + var draw, nsel, f, c; | |
| 1363 | + nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1364 | + if(nsel > 0){ | |
| 1365 | + i3GEO.editorOL.marcaBotao("editorOLedita"); | |
| 1366 | + f = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); | |
| 1367 | + i3GEO.editorOL.featuresBackup.push(f.clone()); | |
| 1368 | + c = new ol.Collection(); | |
| 1369 | + c.push(f); | |
| 1370 | + draw = new ol.interaction.Modify({ | |
| 1371 | + features: c | |
| 1372 | + }); | |
| 1373 | + //adiciona a interacao para poder ser removida | |
| 1374 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1375 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1376 | + i3geoOL.addInteraction(draw); | |
| 1377 | + } | |
| 1378 | + else{ | |
| 1379 | + i3GEO.janela.tempoMsg($trad("selum")); | |
| 1380 | + } | |
| 1381 | + }; | |
| 1382 | + i3GEOpanelEditor.appendChild(temp); | |
| 1383 | + } | |
| 1384 | + if (botoes.edita === true && botoes.corta === true && i3GEO.php) { | |
| 1385 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1386 | + temp = document.createElement("div"); | |
| 1387 | + temp.className = "editorOLcortaItemInactive olButton"; | |
| 1388 | + temp.title = $trad("cortaf"); | |
| 1389 | + temp.onclick = function(){ | |
| 1390 | + var nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1391 | + if (nsel != 1) { | |
| 1392 | + alert("Selecione primeiro um elemento para ser cortado"); | |
| 1393 | + } else { | |
| 1394 | + i3GEO.janela.tempoMsg("Desenhe um polígono"); | |
| 1395 | + i3GEO.editorOL.marcaBotao("editorOLcorta"); | |
| 1396 | + var draw = new ol.interaction.Draw({ | |
| 1397 | + type : "Polygon" | |
| 1398 | + }); | |
| 1399 | + //adiciona a interacao para poder ser removida | |
| 1400 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1401 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1402 | + draw.on("drawend", function(evt) { | |
| 1403 | + var temp, f, c, format, fwkt, cwkt; | |
| 1404 | + f = evt.feature; | |
| 1405 | + c = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); | |
| 1406 | + i3GEO.editorOL.featuresBackup.push(c.clone()); | |
| 1407 | + i3GEO.editorOL.marcaBotao(); | |
| 1408 | + //corta | |
| 1409 | + format = new ol.format.WKT(); | |
| 1410 | + if(f && c){ | |
| 1411 | + fwkt = format.writeFeatures([f]); | |
| 1412 | + cwkt = format.writeFeatures([c]); | |
| 1413 | + if(fwkt && cwkt){ | |
| 1414 | + temp = function(retorno) { | |
| 1415 | + i3GEO.janela.fechaAguarde("i3GEO.cortador"); | |
| 1416 | + if (retorno != "" && retorno.data && retorno.data != "") { | |
| 1417 | + i3GEO.janela.fechaAguarde("i3GEO.cortador"); | |
| 1418 | + c.setGeometry(format.readGeometry(retorno.data)); | |
| 1419 | + //i3GEO.editorOL.substituiFeaturesSel(retorno.data); | |
| 1420 | + if (document.getElementById("panellistagEditor")) { | |
| 1421 | + i3GEO.editorOL.listaGeometrias(); | |
| 1422 | + } | |
| 1423 | + } | |
| 1424 | + }; | |
| 1425 | + i3GEO.janela.abreAguarde("i3GEO.cortador", "Cortando"); | |
| 1426 | + i3GEO.php.funcoesGeometriasWkt(temp, cwkt + "|" + fwkt, "difference"); | |
| 1427 | + } | |
| 1428 | + } | |
| 1429 | + }); | |
| 1430 | + i3geoOL.addInteraction(draw); | |
| 1431 | + } | |
| 1432 | + }; | |
| 1433 | + i3GEOpanelEditor.appendChild(temp); | |
| 1434 | + } | |
| 1435 | + if (botoes.edita === true && botoes.listag === true) { | |
| 1436 | + temp = document.createElement("div"); | |
| 1437 | + temp.className = "editorOLlistagItemInactive olButton"; | |
| 1438 | + temp.title = $trad("listag"); | |
| 1439 | + temp.onclick = function(){ | |
| 1440 | + i3GEO.editorOL.listaGeometrias(); | |
| 1441 | + }; | |
| 1442 | + i3GEOpanelEditor.appendChild(temp); | |
| 1443 | + } | |
| 1444 | + //TODO abrir em uma janela flutuante interna | |
| 1445 | + if (botoes.ajuda === true) { | |
| 1446 | + temp = document.createElement("div"); | |
| 1447 | + temp.className = "editorOLajudaItemInactive olButton"; | |
| 1448 | + temp.title = $trad("s1"); | |
| 1449 | + temp.onclick = function(){ | |
| 1450 | + if(i3GEO.configura && i3GEO.configura.locaplic){ | |
| 1451 | + window.open(i3GEO.configura.locaplic + "/mashups/openlayers_ajuda.php"); | |
| 1452 | + } | |
| 1453 | + else{ | |
| 1454 | + window.open("openlayers_ajuda.php"); | |
| 1455 | + } | |
| 1456 | + }; | |
| 1457 | + i3GEOpanelEditor.appendChild(temp); | |
| 1458 | + } | |
| 1459 | + if (botoes.fecha === true) { | |
| 1460 | + temp = document.createElement("div"); | |
| 1461 | + temp.className = "editorOLfechaItemInactive olButton"; | |
| 1462 | + temp.title = $trad("x74"); | |
| 1463 | + temp.onclick = function(){ | |
| 1464 | + i3GEO.editorOL.unselTodos(); | |
| 1465 | + i3GEO.editorOL.featuresBackup = []; | |
| 1466 | + i3GEO.editorOL.marcaBotao(); | |
| 1467 | + i3GEO.eventos.cliquePerm.ativa(); | |
| 1468 | + $i("i3GEObarraEdicao").style.display = "none"; | |
| 1469 | + }; | |
| 1470 | + i3GEOpanelEditor.appendChild(temp); | |
| 1471 | + } | |
| 1472 | + if (botoes.tools === true) { | |
| 1473 | + temp = document.createElement("div"); | |
| 1474 | + temp.className = "editorOLtoolsItemInactive olButton"; | |
| 1475 | + temp.title = $trad("u15a"); | |
| 1476 | + temp.onclick = function(){ | |
| 1477 | + // fora do i3geo, usa o jsts | |
| 1478 | + if (i3GEO.php) { | |
| 1479 | + i3GEO.editorOL.ferramentas(); | |
| 1480 | + } else { | |
| 1481 | + i3GEO.editorOL.carregajts("i3GEO.editorOL.ferramentas()"); | |
| 1482 | + } | |
| 1483 | + }; | |
| 1484 | + i3GEOpanelEditor.appendChild(temp); | |
| 1485 | + } | |
| 1486 | + if (botoes.propriedades === true) { | |
| 1487 | + temp = document.createElement("div"); | |
| 1488 | + temp.className = "editorOLpropriedadesItemInactive olButton"; | |
| 1489 | + temp.title = $trad("p13"); | |
| 1490 | + temp.onclick = function(){ | |
| 1491 | + i3GEO.editorOL.propriedades(); | |
| 1492 | + }; | |
| 1493 | + i3GEOpanelEditor.appendChild(temp); | |
| 1494 | + } | |
| 1495 | + if (botoes.identifica === true) { | |
| 1496 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1497 | + temp = document.createElement("div"); | |
| 1498 | + temp.className = "editorOLidentificaItemInactive olButton"; | |
| 1499 | + temp.title = $trad("d7t"); | |
| 1500 | + temp.onclick = function(){ | |
| 1501 | + i3GEO.editorOL.criaJanelaAtivaTema(); | |
| 1502 | + i3GEO.eventos.cliquePerm.desativa(); | |
| 1503 | + i3GEO.editorOL.marcaBotao("editorOLidentifica"); | |
| 1504 | + var draw = new ol.interaction.Draw({ | |
| 1505 | + type : "Point" | |
| 1506 | + }); | |
| 1507 | + //adiciona a interacao para poder ser removida | |
| 1508 | + i3GEO.editorOL.interacoes.push(draw); | |
| 1509 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | |
| 1510 | + draw.on("drawend", function(evt) { | |
| 1511 | + var xy, p, retorno, url, layer, tema = $i("i3GEOOLlistaTemasAtivos"); | |
| 1512 | + if(tema){ | |
| 1513 | + layer = i3geoOL.getLayersByName(tema.value)[0]; | |
| 1514 | + url = layer.getSource().getUrls()[0]; | |
| 1515 | + xy = evt.target.downPx_; | |
| 1516 | + retorno = function(r){ | |
| 1517 | + var xy = evt.feature.getGeometry().getFirstCoordinate(); | |
| 1518 | + i3GEO.eventos.cliquePerm.ativo = true; | |
| 1519 | + i3GEO.Interface.openlayers.balao(r,"", xy[0], xy[1]); | |
| 1520 | + i3GEO.eventos.cliquePerm.ativo = false; | |
| 1521 | + }; | |
| 1522 | + p = i3GEO.configura.locaplic + "/classesphp/proxy.php?" | |
| 1523 | + + url | |
| 1524 | + + "&tipoRetornoProxy=string&REQUEST=GetFeatureInfo&TIPOIMAGEM=nenhum&DESLIGACACHE=sim&STYLES=&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=1" | |
| 1525 | + + "&FORMAT=image/png&INFO_FORMAT=text/plain&SRS=EPSG:4326" | |
| 1526 | + + "&LAYERS= " + tema.value | |
| 1527 | + + "&layer= " + tema.value | |
| 1528 | + + "&QUERY_LAYERS= " + tema.value | |
| 1529 | + + "&HEIGHT=" + i3GEO.parametros.h | |
| 1530 | + + "&WIDTH=" + i3GEO.parametros.w | |
| 1531 | + + "&BBOX=" + i3geoOL.getExtent().toBBOX().split(",").join(" ") | |
| 1532 | + + "&X=" + xy[0] + "&Y=" + xy[1]; | |
| 1533 | + cpJSON.call(p, "foo", retorno, ""); | |
| 1534 | + } | |
| 1535 | + //i3GEO.editorOL.marcaBotao(); | |
| 1536 | + }); | |
| 1537 | + i3geoOL.addInteraction(draw); | |
| 1538 | + }; | |
| 1539 | + i3GEOpanelEditor.appendChild(temp); | |
| 1540 | + } | |
| 1541 | + i3GEOpanelEditor.style.width = i3GEOpanelEditor.getElementsByTagName("div").length * 33 + "px"; | |
| 1542 | + i3GEO.editorOL.mapa.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0].appendChild(i3GEOpanelEditor); | |
| 1543 | + | |
| 1544 | + /* | |
| 1545 | + if (botoes.salva === true) { | |
| 1546 | + | |
| 1547 | + button = new OpenLayers.Control.Button({ | |
| 1548 | + displayClass : "editorOLsalva", | |
| 1549 | + trigger : function() { | |
| 1550 | + i3GEO.editorOL.salvaGeometrias(); | |
| 1551 | + }, | |
| 1552 | + title : $trad("salva"), | |
| 1553 | + type : OpenLayers.Control.TYPE_BUTTON | |
| 1554 | + }); | |
| 1555 | + controles.push(button); | |
| 1556 | + adiciona = true; | |
| 1557 | + | |
| 1558 | + } | |
| 1559 | + if (botoes.identifica === true) { | |
| 1560 | + //TODO incluir codigo ol3 | |
| 1561 | + | |
| 1562 | + botaoIdentifica = | |
| 1563 | + new OpenLayers.Control.WMSGetFeatureInfo( | |
| 1564 | + { | |
| 1565 | + maxFeatures : 1, | |
| 1566 | + infoFormat : 'text/plain', // 'application/vnd.ogc.gml', | |
| 1567 | + layers : [ | |
| 1568 | + i3GEO.editorOL.layerAtivo() | |
| 1569 | + ], | |
| 1570 | + queryVisible : true, | |
| 1571 | + title : $trad("d7t"), | |
| 1572 | + type : OpenLayers.Control.TYPE_TOOL, | |
| 1573 | + displayClass : "editorOLidentifica", | |
| 1574 | + eventListeners : { | |
| 1575 | + getfeatureinfo : function(event) { | |
| 1576 | + var lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(event.xy), lonlattexto = "<hr>", formata; | |
| 1577 | + if (botoes.linha === true || botoes.ponto === true || botoes.poligono === true || botoes.edita === true) { | |
| 1578 | + lonlattexto += | |
| 1579 | + "<pre><span style=font-size:12px;color:blue;cursor:pointer onclick='i3GEO.editorOL.captura(\"" + lonlat.lon | |
| 1580 | + + "," | |
| 1581 | + + lonlat.lat | |
| 1582 | + + "\")'>edita geometria</span></pre><br>"; | |
| 1583 | + } | |
| 1584 | + formata = function(texto) { | |
| 1585 | + var temp, temp1, n, i, f = [], textoN = texto.split(":"); | |
| 1586 | + try { | |
| 1587 | + if (textoN.length > 1) { | |
| 1588 | + temp = textoN[2].replace(/\n\r/g, ""); | |
| 1589 | + temp = temp.replace(/'/g, ""); | |
| 1590 | + temp = temp.replace(/\n/g, "|"); | |
| 1591 | + temp = temp.replace(/_/g, " "); | |
| 1592 | + temp = temp.replace(/=/g, ":"); | |
| 1593 | + temp = temp.split("|"); | |
| 1594 | + n = temp.length; | |
| 1595 | + for (i = 0; i < n; i++) { | |
| 1596 | + temp1 = temp[i].replace(/^\s+/, ""); | |
| 1597 | + temp1 = temp1.replace(/\s+$/, ""); | |
| 1598 | + if (temp1 != "") | |
| 1599 | + f.push(temp1); | |
| 1600 | + } | |
| 1601 | + texto = f.join("<br><br>"); | |
| 1602 | + } | |
| 1603 | + } catch (e) { | |
| 1604 | + } | |
| 1605 | + return texto; | |
| 1606 | + }; | |
| 1607 | + i3GEO.editorOL.mapa.addPopup(new OpenLayers.Popup.FramedCloud("chicken", i3GEO.editorOL.mapa | |
| 1608 | + .getLonLatFromPixel(event.xy), null, "<div style=text-align:left >" + lonlattexto | |
| 1609 | + + "<pre>" | |
| 1610 | + + formata(event.text) | |
| 1611 | + + "</pre></div>", null, true)); | |
| 1612 | + i3GEO.editorOL.removeClone(); | |
| 1613 | + }, | |
| 1614 | + beforegetfeatureinfo : function(event) { | |
| 1615 | + var ativo = [ | |
| 1616 | + i3GEO.editorOL.layerAtivo() | |
| 1617 | + ]; | |
| 1618 | + // se for TMS tem de pegar o clone wms | |
| 1619 | + if (ativo[0].serviceVersion === "&tms=" || ativo[0].CLASS_NAME == "OpenLayers.Layer.TMS" | |
| 1620 | + || ativo[0].CLASS_NAME == "OpenLayers.Layer.OSM") { | |
| 1621 | + ativo = [ | |
| 1622 | + i3GEO.editorOL.layertms2wms(ativo[0]) | |
| 1623 | + ]; | |
| 1624 | + } | |
| 1625 | + ativo[0].projection = new OpenLayers.Projection("EPSG:4326"); | |
| 1626 | + event.object.layers = ativo; | |
| 1627 | + botaoIdentifica.layers = ativo; | |
| 1628 | + botaoIdentifica.url = ativo[0].url; | |
| 1629 | + }, | |
| 1630 | + activate : function() { | |
| 1631 | + i3GEO.editorOL.criaJanelaAtivaTema(); | |
| 1632 | + } | |
| 1633 | + } | |
| 1634 | + }); | |
| 1635 | + // button.events.register("getfeatureinfo", this, showInfo); | |
| 1636 | + controles.push(botaoIdentifica); | |
| 1637 | + adiciona = true; | |
| 1638 | + | |
| 1639 | + } | |
| 1640 | + | |
| 1641 | + */ | |
| 1642 | + }, | |
| 1643 | + removeFeaturesSel : function(){ | |
| 1644 | + var s, i, nsel, f; | |
| 1645 | + nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1646 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 1647 | + for(i=0; i<nsel; i++){ | |
| 1648 | + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); | |
| 1649 | + if(f){ | |
| 1650 | + i3GEO.editorOL.featuresBackup.push(f.clone()); | |
| 1651 | + s.removeFeature(f); | |
| 1652 | + } | |
| 1653 | + } | |
| 1654 | + i3GEO.editorOL.idsSelecionados = []; | |
| 1655 | + }, | |
| 1656 | + mudaSimbolo : function(estilo, id) { | |
| 1657 | + var s, i, nsel, f; | |
| 1658 | + i3GEO.editorOL.simbologia[estilo] = $i(id).value; | |
| 1659 | + nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 1660 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 1661 | + for(i=0; i<nsel; i++){ | |
| 1662 | + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); | |
| 1663 | + if(f){ | |
| 1664 | + f.setProperties({ | |
| 1665 | + fillColor: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 1666 | + strokeColor: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 1667 | + width: i3GEO.editorOL.simbologia.strokeWidth, | |
| 1668 | + fontSize: i3GEO.editorOL.simbologia.fontSize, | |
| 1669 | + fontColor: i3GEO.editorOL.simbologia.fontColor | |
| 1670 | + }); | |
| 1671 | + } | |
| 1672 | + } | |
| 1673 | + }, | |
| 1674 | + adicionaMarcas : function() { | |
| 1675 | + if (i3GEO.editorOL.pontos.length === 0) { | |
| 1676 | + return; | |
| 1677 | + } | |
| 1678 | + var f, SHADOW_Z_INDEX = 10, MARKER_Z_INDEX = 11, layer = new OpenLayers.Layer.Vector("pontos", { | |
| 1679 | + styleMap : new OpenLayers.StyleMap({ | |
| 1680 | + externalGraphic : i3GEO.editorOL.marca, | |
| 1681 | + backgroundGraphic : "../pacotes/openlayers/img/marker_shadow.png", | |
| 1682 | + backgroundXOffset : 0, | |
| 1683 | + backgroundYOffset : -7, | |
| 1684 | + graphicZIndex : MARKER_Z_INDEX, | |
| 1685 | + backgroundGraphicZIndex : SHADOW_Z_INDEX, | |
| 1686 | + pointRadius : 10 | |
| 1687 | + }), | |
| 1688 | + isBaseLayer : false, | |
| 1689 | + rendererOptions : { | |
| 1690 | + yOrdering : true | |
| 1691 | + }, | |
| 1692 | + displayInLayerSwitcher : true, | |
| 1693 | + visibility : true | |
| 1694 | + }), index, x = [], y = [], features = []; | |
| 1695 | + for (index = 0; index < i3GEO.editorOL.pontos.length; index = index + 2) { | |
| 1696 | + x.push(i3GEO.editorOL.pontos[index]); | |
| 1697 | + y.push(i3GEO.editorOL.pontos[index + 1]); | |
| 1698 | + } | |
| 1699 | + for (index = 0; index < x.length; index++) { | |
| 1700 | + f = new OpenLayers.Geometry.Point(x[index], y[index]); | |
| 1701 | + f = i3GEO.util.projGeo2OSM(f); | |
| 1702 | + f = new OpenLayers.Feature.Vector(f); | |
| 1703 | + features.push(f); | |
| 1704 | + } | |
| 1705 | + layer.addFeatures(features); | |
| 1706 | + i3GEO.editorOL.mapa.addLayer(layer); | |
| 1707 | + }, | |
| 1708 | + adicionaKml : function() { | |
| 1709 | + var temp, n, i, id, url; | |
| 1710 | + n = i3GEO.editorOL.kml.length; | |
| 1711 | + for (i = 0; i < n; i++) { | |
| 1712 | + id = "kml" + i; | |
| 1713 | + url = i3GEO.editorOL.kml[i]; | |
| 1714 | + eval(id + " = new OpenLayers.Layer.Vector('" | |
| 1715 | + + id | |
| 1716 | + + "', {displayOutsideMaxExtent:true,displayInLayerSwitcher:false,visibility:true, strategies: [new OpenLayers.Strategy.Fixed()],protocol: new OpenLayers.Protocol.HTTP({url: '" | |
| 1717 | + + url | |
| 1718 | + + "',format: new OpenLayers.Format.KML({extractStyles: true,extractAttributes: true,maxDepth: 5})})})"); | |
| 1719 | + eval("i3GEO.editorOL.mapa.addLayer(" + id + ");"); | |
| 1720 | + eval("temp = " + id + ".div;"); | |
| 1721 | + temp.onclick = | |
| 1722 | + function(e) { | |
| 1723 | + var targ = "", id, temp, features, n, i, g, html = ""; | |
| 1724 | + if (!e) { | |
| 1725 | + e = window.event; | |
| 1726 | + } | |
| 1727 | + if (e.target) { | |
| 1728 | + targ = e.target; | |
| 1729 | + } else { | |
| 1730 | + if (e.srcElement) { | |
| 1731 | + targ = e.srcElement; | |
| 1732 | + } | |
| 1733 | + } | |
| 1734 | + if (targ.id) { | |
| 1735 | + temp = targ.id.split("_"); | |
| 1736 | + if (temp[0] === "OpenLayers.Geometry.Point") { | |
| 1737 | + id = targ.id; | |
| 1738 | + temp = i3GEO.editorOL.mapa.getLayer(this.id); | |
| 1739 | + features = temp.features; | |
| 1740 | + n = features.length; | |
| 1741 | + for (i = 0; i < n; i++) { | |
| 1742 | + if (features[i].geometry.id === id) { | |
| 1743 | + for ( var j in features[i].attributes) { | |
| 1744 | + html += j + ": " + features[i].attributes[j]; | |
| 1745 | + } | |
| 1746 | + g = features[i].geometry; | |
| 1747 | + i3GEO.editorOL.mapa.addPopup(new OpenLayers.Popup.FramedCloud( | |
| 1748 | + "kml", | |
| 1749 | + new OpenLayers.LonLat(g.x, g.y), | |
| 1750 | + null, | |
| 1751 | + html, | |
| 1752 | + null, | |
| 1753 | + true)); | |
| 1754 | + } | |
| 1755 | + } | |
| 1756 | + } | |
| 1757 | + } | |
| 1758 | + }; | |
| 1759 | + } | |
| 1760 | + }, | |
| 1761 | + // obtido de openlayers.org | |
| 1762 | + propriedades : function() { | |
| 1763 | + if (!document.getElementById("panelpropriedadesEditor")) { | |
| 1764 | + YAHOO.namespace("editorOL.container"); | |
| 1765 | + YAHOO.editorOL.container.panel = new YAHOO.widget.Panel("panelpropriedadesEditor", { | |
| 1766 | + zIndex : 20000, | |
| 1767 | + iframe : true, | |
| 1768 | + width : "350px", | |
| 1769 | + height : "250px", | |
| 1770 | + visible : false, | |
| 1771 | + draggable : true, | |
| 1772 | + close : true | |
| 1773 | + }); | |
| 1774 | + //TODO ajustar o layout dos botoes para os novos padroes | |
| 1775 | + var ins = | |
| 1776 | + "" + '<p class=paragrafo ><b>Estilos (utilize a cor no formato r,g,b):</b></p>' | |
| 1777 | + + '<table class=lista7 >' | |
| 1778 | + + ' <tr>' | |
| 1779 | + + ' <td>Cor do contorno</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'strokeColor\',\'i3GEOEditorOLcorContorno\')" type="text" style="cursor:text" id="i3GEOEditorOLcorContorno" size="12" value="' | |
| 1780 | + + i3GEO.editorOL.simbologia.strokeColor | |
| 1781 | + + '" /></td><td>'; | |
| 1782 | + if (i3GEO.configura) { | |
| 1783 | + ins += | |
| 1784 | + '<img alt="aquarela.gif" style=cursor:pointer src="' + i3GEO.configura.locaplic | |
| 1785 | + + '/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorContorno\');" />'; | |
| 1786 | + } | |
| 1787 | + ins += | |
| 1788 | + "" + ' </td>' | |
| 1789 | + + ' </tr>' | |
| 1790 | + + ' <tr>' | |
| 1791 | + + ' <td>Cor do preenchimento</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fillColor\',\'i3GEOEditorOLcorPre\')" type="text" style="cursor:text" id="i3GEOEditorOLcorPre" size="12" value="' | |
| 1792 | + + i3GEO.editorOL.simbologia.fillColor | |
| 1793 | + + '" /></td><td>'; | |
| 1794 | + if (i3GEO.configura) { | |
| 1795 | + ins += | |
| 1796 | + '<img alt="aquarela.gif" style=cursor:pointer src="' + i3GEO.configura.locaplic | |
| 1797 | + + '/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorPre\');" />'; | |
| 1798 | + } | |
| 1799 | + ins += | |
| 1800 | + "" + ' </td>' | |
| 1801 | + + ' </tr>' | |
| 1802 | + + ' <tr>' | |
| 1803 | + + ' <td>Cor da fonte</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fontColor\',\'i3GEOEditorOLcorFonte\')" type="text" style="cursor:text" id="i3GEOEditorOLcorFonte" size="12" value="' | |
| 1804 | + + i3GEO.editorOL.simbologia.fontColor | |
| 1805 | + + '" /></td><td>'; | |
| 1806 | + if (i3GEO.configura) { | |
| 1807 | + ins += | |
| 1808 | + '<img alt="aquarela.gif" style=cursor:pointer src="' + i3GEO.configura.locaplic | |
| 1809 | + + '/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorFonte\');" />'; | |
| 1810 | + } | |
| 1811 | + ins += | |
| 1812 | + "" + ' </td>' | |
| 1813 | + + ' </tr>' | |
| 1814 | + + ' <tr>' | |
| 1815 | + + ' <td>Tamanho da fonte</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fontSize\',\'i3GEOEditorOLfontsize\')" type="text" style="cursor:text" id="i3GEOEditorOLfontsize" size="3" value="' + i3GEO.editorOL.simbologia.fontSize | |
| 1816 | + + '" /></td><td></td>' | |
| 1817 | + + ' </tr>' | |
| 1818 | + + ' <tr>' | |
| 1819 | + + ' <td>Opacidade (de 0 a 1)</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'opacidade\',\'i3GEOEditorOLopacidade\')" type="text" style="cursor:text" id="i3GEOEditorOLopacidade" size="3" value="' | |
| 1820 | + + i3GEO.editorOL.simbologia.opacidade | |
| 1821 | + + '" /></td><td></td>' | |
| 1822 | + + ' </tr>' | |
| 1823 | + + ' <tr>' | |
| 1824 | + + ' <td>Largura da linha/contorno</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'strokeWidth\',\'i3GEOEditorOLlarguraLinha\')" type="text" style="cursor:text" id="i3GEOEditorOLlarguraLinha" size="2" value="' | |
| 1825 | + + i3GEO.editorOL.simbologia.strokeWidth | |
| 1826 | + + '" /></td><td></td>' | |
| 1827 | + + ' </tr>' | |
| 1828 | + //TODO incluir propriedades de uma figura | |
| 1829 | + /* | |
| 1830 | + + ' <tr>' | |
| 1831 | + + ' <td>Url de uma figura</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'externalGraphic\',\'i3GEOEditorOLexternalGraphic\')" type="text" style="cursor:text" id="i3GEOEditorOLexternalGraphic" size="22" value="' | |
| 1832 | + + i3GEO.editorOL.simbologia.externalGraphic | |
| 1833 | + + '" /></td><td></td>' | |
| 1834 | + + ' </tr>' | |
| 1835 | + + ' <tr>' | |
| 1836 | + + ' <td>Largura e altura</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'graphicWidth\',\'i3GEOEditorOLgraphicWidth\')" type="text" style="cursor:text" id="i3GEOEditorOLgraphicWidth" size="4" value="' | |
| 1837 | + + i3GEO.editorOL.simbologia.graphicWidth | |
| 1838 | + + '" /> <input onchange="i3GEO.editorOL.mudaSimbolo(\'graphicHeight\',\'i3GEOEditorOLgraphicHeight\')" type="text" style="cursor:text" id="i3GEOEditorOLgraphicHeight" size="4" value="' | |
| 1839 | + + i3GEO.editorOL.simbologia.graphicHeight | |
| 1840 | + + '" /></td><td></td>' | |
| 1841 | + + ' </tr>' | |
| 1842 | + */ | |
| 1843 | + + '</table>'; | |
| 1844 | + //TODO implementar ao atualizar OL3 | |
| 1845 | + /* | |
| 1846 | + + '<br />' | |
| 1847 | + + '<p class=paragrafo ><b>Ajusta nó em edição para o(a):</b></p>' | |
| 1848 | + + '<table class=lista7 >' | |
| 1849 | + + ' <tr>' | |
| 1850 | + + ' <td></td><td>nó</td><td></td><td>vértice</td><td></td><td>borda</td>' | |
| 1851 | + + ' </tr>' | |
| 1852 | + + ' <tr>' | |
| 1853 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_node" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_nodeTolerance" type="text" size="3" value=15 /></td>' | |
| 1854 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_vertex" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_vertexTolerance" type="text" size="3" value=15 /></td>' | |
| 1855 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_edge" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_edgeTolerance" type="text" size="3" value=15 /></td>' | |
| 1856 | + + ' </tr>' | |
| 1857 | + + '</table>' | |
| 1858 | + | |
| 1859 | + + '<br />' | |
| 1860 | + + '<p class=paragrafo ><b>Divide intersecção ao digitalizar</b></p>' | |
| 1861 | + + '<table class=lista7 >' | |
| 1862 | + + ' <tr>' | |
| 1863 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.split()" type="checkbox" id="edge_split_toggle" /></td><td>borda</td>' | |
| 1864 | + + ' </tr>' | |
| 1865 | + + '</table>' | |
| 1866 | + + '<br />' | |
| 1867 | + + '<p class=paragrafo ><b>Operação ativada pelo botão de modificação da figura</b></p>' | |
| 1868 | + + '<table class=lista7 >' | |
| 1869 | + + ' <tr>' | |
| 1870 | + + ' <td><input checked style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.RESHAPE;" type="radio" name=i3geoOLtipoEdita /></td><td>altera figura</td>' | |
| 1871 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.RESIZE;" type="radio" name=i3geoOLtipoEdita /></td><td>altera tamanho</td>' | |
| 1872 | + + ' </tr>' | |
| 1873 | + + ' <tr>' | |
| 1874 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.ROTATE;" type="radio" name=i3geoOLtipoEdita /></td><td>rotaciona</td>' | |
| 1875 | + + ' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.DRAG;" type="radio" name=i3geoOLtipoEdita /></td><td>desloca</td>' | |
| 1876 | + + ' </tr>' | |
| 1877 | + + '</table>'; | |
| 1878 | + */ | |
| 1879 | + YAHOO.editorOL.container.panel.setBody(ins); | |
| 1880 | + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { | |
| 1881 | + YAHOO.editorOL.container.panel | |
| 1882 | + .setHeader("Propriedades<div id='panelpropriedadesEditor_minimizaCabecalho' class='container-minimiza'></div>"); | |
| 1883 | + } else { | |
| 1884 | + YAHOO.editorOL.container.panel.setHeader("Propriedades"); | |
| 1885 | + } | |
| 1886 | + | |
| 1887 | + YAHOO.editorOL.container.panel.setFooter(""); | |
| 1888 | + YAHOO.editorOL.container.panel.render(document.body); | |
| 1889 | + | |
| 1890 | + YAHOO.editorOL.container.panel.center(); | |
| 1891 | + YAHOO.util.Event.addListener(YAHOO.editorOL.container.panel.close, "click", function() { | |
| 1892 | + }); | |
| 1893 | + temp = $i("panelpropriedadesEditor_minimizaCabecalho"); | |
| 1894 | + if (temp) { | |
| 1895 | + temp.onclick = function() { | |
| 1896 | + i3GEO.janela.minimiza("panelpropriedadesEditor"); | |
| 1897 | + }; | |
| 1898 | + } | |
| 1899 | + } | |
| 1900 | + YAHOO.editorOL.container.panel.show(); | |
| 1901 | + temp = $i("panelpropriedadesEditor").getElementsByTagName("div"); | |
| 1902 | + if (temp && temp[2]) { | |
| 1903 | + temp[2].style.overflow = "auto"; | |
| 1904 | + } | |
| 1905 | + }, | |
| 1906 | + listaGeometrias : function() { | |
| 1907 | + if (!document.getElementById("panellistagEditor")) { | |
| 1908 | + YAHOO.namespace("editorOL.listaGeometrias"); | |
| 1909 | + YAHOO.editorOL.listaGeometrias.panel = new YAHOO.widget.Panel("panellistagEditor", { | |
| 1910 | + zIndex : 20000, | |
| 1911 | + iframe : true, | |
| 1912 | + width : "320px", | |
| 1913 | + visible : false, | |
| 1914 | + draggable : true, | |
| 1915 | + close : true | |
| 1916 | + }); | |
| 1917 | + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { | |
| 1918 | + YAHOO.editorOL.listaGeometrias.panel | |
| 1919 | + .setHeader($trad("u6") + " <div id='panellistagEditor_minimizaCabecalho' class='container-minimiza'></div>"); | |
| 1920 | + } else { | |
| 1921 | + YAHOO.editorOL.listaGeometrias.panel.setHeader($trad("u6")); | |
| 1922 | + } | |
| 1923 | + YAHOO.editorOL.listaGeometrias.panel.setFooter(""); | |
| 1924 | + YAHOO.editorOL.listaGeometrias.panel.render(document.body); | |
| 1925 | + YAHOO.editorOL.listaGeometrias.panel.center(); | |
| 1926 | + YAHOO.util.Event.addListener(YAHOO.editorOL.listaGeometrias.panel.close, "click", function() { | |
| 1927 | + YAHOO.editorOL.listaGeometrias.panel.destroy(); | |
| 1928 | + }); | |
| 1929 | + temp = $i("panellistagEditor_minimizaCabecalho"); | |
| 1930 | + if (temp) { | |
| 1931 | + temp.onclick = function() { | |
| 1932 | + i3GEO.janela.minimiza("panellistagEditor"); | |
| 1933 | + }; | |
| 1934 | + } | |
| 1935 | + } else { | |
| 1936 | + YAHOO.editorOL.listaGeometrias.panel.render(document.body); | |
| 1937 | + } | |
| 1938 | + var id, temp, geos = i3GEO.desenho.layergrafico.getSource().getFeatures(), n = geos.length, ins = "<table class=lista4 >"; | |
| 1939 | + ins += "<tr><td><i>" + $trad("u6") + "</i></td><td><i>" + $trad("opcoes") + "</i></td><td></td></tr>"; | |
| 1940 | + | |
| 1941 | + while (n > 0) { | |
| 1942 | + n -= 1; | |
| 1943 | + id = geos[n].getId(); | |
| 1944 | + if(id){ | |
| 1945 | + ins += | |
| 1946 | + "<tr><td>" + id | |
| 1947 | + + "</td><td style='cursor:pointer;color:blue' onclick='javascript:i3GEO.editorOL.marcaBotao();i3GEO.editorOL.selFeature(\"" | |
| 1948 | + + id | |
| 1949 | + + "\")'>seleciona</td><td style='cursor:pointer;color:blue' onclick='javascript:i3GEO.editorOL.unselFeature(\"" | |
| 1950 | + + id | |
| 1951 | + + "\")'>limpa</td></tr>"; | |
| 1952 | + } | |
| 1953 | + } | |
| 1954 | + ins += "</table>"; | |
| 1955 | + if (geos.length === 0) { | |
| 1956 | + ins = $trad("meneditor2"); | |
| 1957 | + } | |
| 1958 | + YAHOO.editorOL.listaGeometrias.panel.show(); | |
| 1959 | + if (i3GEO.configura) { | |
| 1960 | + temp = $i("panellistagEditor").getElementsByTagName("div")[2]; | |
| 1961 | + } else { | |
| 1962 | + temp = $i("panellistagEditor").getElementsByTagName("div")[1]; | |
| 1963 | + } | |
| 1964 | + temp.style.overflow = "auto"; | |
| 1965 | + temp.style.height = "100px"; | |
| 1966 | + temp.innerHTML = ins; | |
| 1967 | + }, | |
| 1968 | + //TODO incuir um botao para executar a operacao ao inves do evento onchange | |
| 1969 | + ferramentas : function() { | |
| 1970 | + if (!document.getElementById("panelferramentasEditor")) { | |
| 1971 | + YAHOO.namespace("editorOL.ferramentas"); | |
| 1972 | + YAHOO.editorOL.ferramentas.panel = new YAHOO.widget.Panel("panelferramentasEditor", { | |
| 1973 | + zIndex : 20000, | |
| 1974 | + iframe : true, | |
| 1975 | + width : "300px", | |
| 1976 | + visible : false, | |
| 1977 | + draggable : true, | |
| 1978 | + close : true | |
| 1979 | + }); | |
| 1980 | + var ins = | |
| 1981 | + "" + '<p class=paragrafo >' | |
| 1982 | + + $trad("opsel") | |
| 1983 | + + ':</p>' | |
| 1984 | + + '<div class=styled-select >' | |
| 1985 | + + '<select onchange="i3GEO.editorOL.processageo(this.value);this.value = \'\'" >' | |
| 1986 | + + ' <option value="">---</option>' | |
| 1987 | + + ' <option value=union >União</option>'; | |
| 1988 | + if (i3GEO.php) { | |
| 1989 | + ins += | |
| 1990 | + ' <option value=intersection >Intersecção</option>' + ' <option value=convexhull >Convex hull</option>' | |
| 1991 | + + ' <option value=boundary >Bordas</option>' | |
| 1992 | + + ' <option value=difference >Diferença</option>' | |
| 1993 | + + ' <option value=symdifference >Diferença simétrica</option>'; | |
| 1994 | + } | |
| 1995 | + ins += | |
| 1996 | + '</select></div>'; | |
| 1997 | + | |
| 1998 | + YAHOO.editorOL.ferramentas.panel.setBody(ins); | |
| 1999 | + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { | |
| 2000 | + YAHOO.editorOL.ferramentas.panel | |
| 2001 | + .setHeader("Ferramentas <div id='panelferramentasEditor_minimizaCabecalho' class='container-minimiza'></div>"); | |
| 2002 | + } else { | |
| 2003 | + YAHOO.editorOL.ferramentas.panel.setHeader("Ferramentas"); | |
| 2004 | + } | |
| 2005 | + | |
| 2006 | + YAHOO.editorOL.ferramentas.panel.setFooter(""); | |
| 2007 | + YAHOO.editorOL.ferramentas.panel.render(document.body); | |
| 2008 | + YAHOO.editorOL.ferramentas.panel.center(); | |
| 2009 | + YAHOO.util.Event.addListener(YAHOO.editorOL.ferramentas.panel.close, "click", function() { | |
| 2010 | + }); | |
| 2011 | + temp = $i("panelferramentasEditor_minimizaCabecalho"); | |
| 2012 | + if (temp) { | |
| 2013 | + temp.onclick = function() { | |
| 2014 | + i3GEO.janela.minimiza("panelferramentasEditor"); | |
| 2015 | + }; | |
| 2016 | + } | |
| 2017 | + } else { | |
| 2018 | + YAHOO.editorOL.ferramentas.panel.render(document.body); | |
| 2019 | + } | |
| 2020 | + YAHOO.editorOL.ferramentas.panel.show(); | |
| 2021 | + }, | |
| 2022 | + //TODO implementar ao atualizar OL3 | |
| 2023 | + snap : function() { | |
| 2024 | + var target = i3GEOOLsnap.targets[0], tipos = [ | |
| 2025 | + "node", "vertex", "edge" | |
| 2026 | + ], ntipos = tipos.length, i, temp, ativa = false; | |
| 2027 | + i3GEOOLsnap.deactivate(); | |
| 2028 | + for (i = 0; i < ntipos; i++) { | |
| 2029 | + temp = $i("target_" + tipos[i]); | |
| 2030 | + target[tipos[i]] = temp.checked; | |
| 2031 | + if (temp.checked === true) { | |
| 2032 | + ativa = true; | |
| 2033 | + } | |
| 2034 | + temp = $i("target_" + tipos[i] + "Tolerance"); | |
| 2035 | + target[tipos[i] + "Tolerance"] = temp.value; | |
| 2036 | + } | |
| 2037 | + if (ativa === true) { | |
| 2038 | + i3GEOOLsnap.activate(); | |
| 2039 | + } | |
| 2040 | + }, | |
| 2041 | + split : function() { | |
| 2042 | + i3GEOOLsplit.deactivate(); | |
| 2043 | + var temp = $i("edge_split_toggle"); | |
| 2044 | + if (temp.checked === true) { | |
| 2045 | + i3GEOOLsplit.activate(); | |
| 2046 | + } | |
| 2047 | + }, | |
| 2048 | + processageo : function(operacao) { | |
| 2049 | + if (operacao === "") { | |
| 2050 | + return; | |
| 2051 | + } | |
| 2052 | + var polis, linhas, pontos, temp, nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 2053 | + if (nsel > 0) { | |
| 2054 | + polis = i3GEO.editorOL.retornaGeometriasTipo("Polygon"); | |
| 2055 | + linhas = i3GEO.editorOL.retornaGeometriasTipo("LineString"); | |
| 2056 | + pontos = i3GEO.editorOL.retornaGeometriasTipo("Point"); | |
| 2057 | + temp = function(retorno) { | |
| 2058 | + if (i3GEO.janela) { | |
| 2059 | + i3GEO.janela.fechaAguarde("i3GEO.editorPoli"); | |
| 2060 | + i3GEO.janela.fechaAguarde("i3GEO.editorLinhas"); | |
| 2061 | + i3GEO.janela.fechaAguarde("i3GEO.editorPontos"); | |
| 2062 | + } | |
| 2063 | + if (retorno != "" && retorno.data && retorno.data != "" && operacao != "converteSHP") { | |
| 2064 | + i3GEO.editorOL.substituiFeaturesSel(retorno.data); | |
| 2065 | + } | |
| 2066 | + if (operacao === "converteSHP") { | |
| 2067 | + i3GEO.atualiza(); | |
| 2068 | + i3GEO.janela.minimiza("paneltemaativo"); | |
| 2069 | + } | |
| 2070 | + }; | |
| 2071 | + if (operacao === "incorporar") { | |
| 2072 | + if (polis.length > 0) { | |
| 2073 | + temp = i3GEO.editorOL.merge(polis); | |
| 2074 | + } | |
| 2075 | + if (linhas.length > 0) { | |
| 2076 | + temp = i3GEO.editorOL.merge(linhas); | |
| 2077 | + } | |
| 2078 | + if (pontos.length > 0) { | |
| 2079 | + temp = i3GEO.editorOL.merge(pontos); | |
| 2080 | + } | |
| 2081 | + if (i3GEO.mapa) { | |
| 2082 | + i3GEO.mapa.dialogo.wkt2layer(temp); | |
| 2083 | + } | |
| 2084 | + return; | |
| 2085 | + } | |
| 2086 | + if (operacao === "union" && !i3GEO.php) { | |
| 2087 | + if (polis.length > 0) { | |
| 2088 | + temp = i3GEO.editorOL.uniaojts(polis); | |
| 2089 | + i3GEO.editorOL.substituiFeaturesSel(temp); | |
| 2090 | + } | |
| 2091 | + if (linhas.length > 0) { | |
| 2092 | + temp = i3GEO.editorOL.uniaojts(linhas); | |
| 2093 | + i3GEO.editorOL.substituiFeaturesSel(temp); | |
| 2094 | + } | |
| 2095 | + if (pontos.length > 0) { | |
| 2096 | + temp = i3GEO.editorOL.uniaojts(pontos); | |
| 2097 | + i3GEO.editorOL.substituiFeaturesSel(temp); | |
| 2098 | + } | |
| 2099 | + } else { | |
| 2100 | + if (polis.length > 0) { | |
| 2101 | + i3GEO.janela.abreAguarde("i3GEO.editorPoli", "Poligonos"); | |
| 2102 | + i3GEO.php.funcoesGeometriasWkt(temp, polis.join("|"), operacao); | |
| 2103 | + } | |
| 2104 | + if (linhas.length > 0) { | |
| 2105 | + i3GEO.janela.abreAguarde("i3GEO.editorLinhas", "Linhas"); | |
| 2106 | + i3GEO.php.funcoesGeometriasWkt(temp, linhas.join("|"), operacao); | |
| 2107 | + } | |
| 2108 | + if (pontos.length > 0) { | |
| 2109 | + i3GEO.janela.abreAguarde("i3GEO.editorPontos", "Pontos"); | |
| 2110 | + i3GEO.php.funcoesGeometriasWkt(temp, pontos.join("|"), operacao); | |
| 2111 | + } | |
| 2112 | + } | |
| 2113 | + i3GEO.desenho.layergrafico.getSource().changed(); | |
| 2114 | + return; | |
| 2115 | + } else { | |
| 2116 | + i3GEO.janela.tempoMsg("Selecione pelo menos dois elementos"); | |
| 2117 | + } | |
| 2118 | + }, | |
| 2119 | + merge : function(geoms) { | |
| 2120 | + var n = geoms.length, w = new Wkt.Wkt(), g, m, i, format = new ol.format.WKT(); | |
| 2121 | + w.read(format.writeFeatures([geoms[0]])); | |
| 2122 | + if (n > 1) { | |
| 2123 | + for (i = 1; i < n; i++) { | |
| 2124 | + g = format.writeFeatures([geoms[i]]); | |
| 2125 | + m = new Wkt.Wkt(); | |
| 2126 | + m.read(g); | |
| 2127 | + w.merge(m); | |
| 2128 | + } | |
| 2129 | + } | |
| 2130 | + return w.write(); | |
| 2131 | + }, | |
| 2132 | + uniaojts : function(geoms) { | |
| 2133 | + var n = geoms.length, | |
| 2134 | + fwkt = new ol.format.WKT(), | |
| 2135 | + rwkt = new jsts.io.WKTReader(), | |
| 2136 | + wwkt = new jsts.io.WKTWriter(), | |
| 2137 | + g, i, uniao; | |
| 2138 | + if (n > 1) { | |
| 2139 | + uniao = fwkt.writeFeatures([geoms[0]]); | |
| 2140 | + uniao = rwkt.read(uniao); | |
| 2141 | + for (i = 1; i <= n; i++) { | |
| 2142 | + g = fwkt.writeFeatures([geoms[i]]); | |
| 2143 | + uniao = uniao.union(rwkt.read(g)); | |
| 2144 | + } | |
| 2145 | + uniao = wwkt.write(uniao); | |
| 2146 | + return [ | |
| 2147 | + fwkt.readFeatures(uniao) | |
| 2148 | + ]; | |
| 2149 | + } else { | |
| 2150 | + return false; | |
| 2151 | + } | |
| 2152 | + }, | |
| 2153 | + retornaGeometriasTipo : function(tipo) { | |
| 2154 | + var n = i3GEO.editorOL.idsSelecionados.length, lista = [], i, | |
| 2155 | + s = i3GEO.desenho.layergrafico.getSource(), | |
| 2156 | + fwkt = new ol.format.WKT(); | |
| 2157 | + for (i = 0; i < n; i++) { | |
| 2158 | + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); | |
| 2159 | + if (f.getGeometry().getType() == tipo) { | |
| 2160 | + lista.push(fwkt.writeFeatures([f])); | |
| 2161 | + } | |
| 2162 | + } | |
| 2163 | + return lista; | |
| 2164 | + }, | |
| 2165 | + guardaBackup : function() { | |
| 2166 | + return; | |
| 2167 | + // if(!i3GEO.editorOL.backup) | |
| 2168 | + // {i3GEO.editorOL.backup = new OpenLayers.Layer.Vector("Backup",{displayInLayerSwitcher:false,visibility:false});} | |
| 2169 | + // else | |
| 2170 | + // {i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features);} | |
| 2171 | + // i3GEO.editorOL.backup.addFeatures(i3GEO.desenho.layergrafico.features); | |
| 2172 | + }, | |
| 2173 | + selTodos : function() { | |
| 2174 | + i3GEO.editorOL.unselTodos(); | |
| 2175 | + var features, n, f, i, id; | |
| 2176 | + features = i3GEO.desenho.layergrafico.getSource().getFeatures(); | |
| 2177 | + n = features.length; | |
| 2178 | + for (i = 0; i < n; i++) { | |
| 2179 | + f = features[i]; | |
| 2180 | + id = f.getId(); | |
| 2181 | + if(!id){ | |
| 2182 | + id = i3GEO.util.uid(); | |
| 2183 | + f.setId(id); | |
| 2184 | + } | |
| 2185 | + i3GEO.editorOL.idsSelecionados.push(id); | |
| 2186 | + f.setProperties({ | |
| 2187 | + fillColor: f.getStyle().getFill().getColor(), | |
| 2188 | + strokeColor: f.getStyle().getStroke().getColor() | |
| 2189 | + }); | |
| 2190 | + f.getStyle().getFill().setColor('rgba(255, 255, 255, 0.5)'); | |
| 2191 | + f.getStyle().getStroke().setColor('blue'); | |
| 2192 | + } | |
| 2193 | + i3GEO.desenho.layergrafico.getSource().changed(); | |
| 2194 | + }, | |
| 2195 | + unselTodos : function() { | |
| 2196 | + var i, n, f, s; | |
| 2197 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 2198 | + n = i3GEO.editorOL.idsSelecionados.length; | |
| 2199 | + for(i=0; i<n; i++){ | |
| 2200 | + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); | |
| 2201 | + if(f){ | |
| 2202 | + f.getStyle().getFill().setColor(f.getProperties().fillColor); | |
| 2203 | + f.getStyle().getStroke().setColor(f.getProperties().strokeColor); | |
| 2204 | + } | |
| 2205 | + } | |
| 2206 | + i3GEO.editorOL.idsSelecionados = []; | |
| 2207 | + i3GEO.desenho.layergrafico.getSource().changed(); | |
| 2208 | + }, | |
| 2209 | + unselTodosBackup : function() { | |
| 2210 | + var n, i; | |
| 2211 | + n = i3GEO.editorOL.backup.features.length; | |
| 2212 | + for (i = 0; i < n; i++) { | |
| 2213 | + i3GEO.editorOL.backup.features[i].renderIntent = "default"; | |
| 2214 | + i3GEO.editorOL.selbutton.unselect(i3GEO.editorOL.backup.features[i]); | |
| 2215 | + } | |
| 2216 | + }, | |
| 2217 | + unselFeature : function(id) { | |
| 2218 | + var f, s; | |
| 2219 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 2220 | + f = s.getFeatureById(id); | |
| 2221 | + if(f){ | |
| 2222 | + f.getStyle().getFill().setColor(f.getProperties().fillColor); | |
| 2223 | + f.getStyle().getStroke().setColor(f.getProperties().strokeColor); | |
| 2224 | + } | |
| 2225 | + i3GEO.editorOL.idsSelecionados.remove(id); | |
| 2226 | + i3GEO.desenho.layergrafico.getSource().changed(); | |
| 2227 | + }, | |
| 2228 | + restauraBackup : function() { | |
| 2229 | + if (i3GEO.editorOL.backup.features.length > 0) { | |
| 2230 | + i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.features); | |
| 2231 | + i3GEO.desenho.layergrafico.addFeatures(i3GEO.editorOL.backup.features); | |
| 2232 | + } | |
| 2233 | + if (document.getElementById("panellistagEditor")) { | |
| 2234 | + i3GEO.editorOL.listaGeometrias(); | |
| 2235 | + } | |
| 2236 | + // i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features); | |
| 2237 | + }, | |
| 2238 | + substituiFeaturesSel : function(f) { | |
| 2239 | + i3GEO.editorOL.removeFeaturesSel(); | |
| 2240 | + var fwkt = new ol.format.WKT(); | |
| 2241 | + f = fwkt.readFeatures(f)[0]; | |
| 2242 | + f.setStyle( | |
| 2243 | + new ol.style.Style({ | |
| 2244 | + stroke: new ol.style.Stroke({ | |
| 2245 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | |
| 2246 | + width: i3GEO.editorOL.simbologia.strokeWidth | |
| 2247 | + }), | |
| 2248 | + fill: new ol.style.Fill({ | |
| 2249 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | |
| 2250 | + }) | |
| 2251 | + }) | |
| 2252 | + ); | |
| 2253 | + f.setId(i3GEO.util.uid()); | |
| 2254 | + i3GEO.desenho.layergrafico.getSource().addFeature(f); | |
| 2255 | + }, | |
| 2256 | + adicionaFeatureWkt : function(wkt, atributos) { | |
| 2257 | + var f, fwkt = new OpenLayers.Format.WKT(); | |
| 2258 | + | |
| 2259 | + if (atributos.externalGraphic && atributos.externalGraphic != "") { | |
| 2260 | + var style_mark = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); | |
| 2261 | + style_mark.externalGraphic = atributos.externalGraphic; | |
| 2262 | + style_mark.graphicWidth = atributos.graphicWidth; | |
| 2263 | + style_mark.graphicHeight = atributos.graphicHeight; | |
| 2264 | + style_mark.fillOpacity = atributos.opacidade; | |
| 2265 | + f = fwkt.read(wkt); | |
| 2266 | + f["attributes"] = atributos; | |
| 2267 | + f["style"] = style_mark; | |
| 2268 | + } else { | |
| 2269 | + f = fwkt.read(wkt); | |
| 2270 | + f["attributes"] = atributos; | |
| 2271 | + } | |
| 2272 | + i3GEO.desenho.layergrafico.addFeatures([ | |
| 2273 | + f | |
| 2274 | + ]); | |
| 2275 | + if (document.getElementById("panellistagEditor")) { | |
| 2276 | + i3GEO.editorOL.listaGeometrias(); | |
| 2277 | + } | |
| 2278 | + }, | |
| 2279 | + flashFeaturesI : function(index) { | |
| 2280 | + i3GEO.editorOL.flashFeatures([ | |
| 2281 | + i3GEO.desenho.layergrafico.features[index] | |
| 2282 | + ], 0); | |
| 2283 | + }, | |
| 2284 | + flashFeatures : function(features, index) { | |
| 2285 | + if (!index) { | |
| 2286 | + index = 0; | |
| 2287 | + } | |
| 2288 | + var current = features[index]; | |
| 2289 | + if (current && current.layer === i3GEO.desenho.layergrafico) { | |
| 2290 | + i3GEO.desenho.layergrafico.drawFeature(features[index], "select"); | |
| 2291 | + } | |
| 2292 | + var prev = features[index - 1]; | |
| 2293 | + if (prev && prev.layer === i3GEO.desenho.layergrafico) { | |
| 2294 | + i3GEO.desenho.layergrafico.drawFeature(prev, "default"); | |
| 2295 | + } | |
| 2296 | + ++index; | |
| 2297 | + if (index <= features.length) { | |
| 2298 | + window.setTimeout(function() { | |
| 2299 | + i3GEO.editorOL.flashFeatures(features, index); | |
| 2300 | + }, 75); | |
| 2301 | + } | |
| 2302 | + }, | |
| 2303 | + selFeature : function(id) { | |
| 2304 | + var s,f; | |
| 2305 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 2306 | + f = s.getFeatureById(id); | |
| 2307 | + if(!i3GEO.util.in_array(id,i3GEO.editorOL.idsSelecionados)){ | |
| 2308 | + i3GEO.editorOL.idsSelecionados.push(id); | |
| 2309 | + f.setProperties({ | |
| 2310 | + fillColor: f.getStyle().getFill().getColor(), | |
| 2311 | + strokeColor: f.getStyle().getStroke().getColor() | |
| 2312 | + }); | |
| 2313 | + f.getStyle().getFill().setColor('rgba(255, 255, 255, 0.5)'); | |
| 2314 | + f.getStyle().getStroke().setColor('blue'); | |
| 2315 | + s.changed(); | |
| 2316 | + } | |
| 2317 | + }, | |
| 2318 | + carregajts : function(funcao) { | |
| 2319 | + if (i3GEO.configura) { | |
| 2320 | + i3GEO.util.scriptTag(i3GEO.configura.locaplic + "/pacotes/jsts/lib/jsts.js", funcao, "i3GEOjts", true); | |
| 2321 | + } else { | |
| 2322 | + i3GEO.util.scriptTag("../pacotes/jsts/lib/jsts.js", funcao, "i3GEOjts", true); | |
| 2323 | + } | |
| 2324 | + }, | |
| 2325 | + trazParaFrente : function() { | |
| 2326 | + var s, i, nsel, id, clone; | |
| 2327 | + s = i3GEO.desenho.layergrafico.getSource(); | |
| 2328 | + nsel = i3GEO.editorOL.idsSelecionados.length; | |
| 2329 | + for(i=0; i<nsel; i++){ | |
| 2330 | + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); | |
| 2331 | + if(f){ | |
| 2332 | + clone = f.clone(); | |
| 2333 | + id = f.getId(); | |
| 2334 | + s.removeFeature(f); | |
| 2335 | + clone.setId(id); | |
| 2336 | + s.addFeature(clone); | |
| 2337 | + } | |
| 2338 | + } | |
| 2339 | + s.changed(); | |
| 2340 | + }, | |
| 2341 | + pegaControle : function(classe) { | |
| 2342 | + var n = i3GEO.editorOL.controles.length, i; | |
| 2343 | + for (i = 0; i < n; i++) { | |
| 2344 | + if (i3GEO.editorOL.controles[i].CLASS_NAME === classe) { | |
| 2345 | + return i3GEO.editorOL.controles[i]; | |
| 2346 | + } | |
| 2347 | + } | |
| 2348 | + return false; | |
| 2349 | + }, | |
| 2350 | + ativaLayerSwitcher : function() { | |
| 2351 | + var ls = i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher"); | |
| 2352 | + if (ls) { | |
| 2353 | + ls.maximizeDiv.click(); | |
| 2354 | + } | |
| 2355 | + }, | |
| 2356 | + desativaRodaDoMouse : function() { | |
| 2357 | + var controls = i3GEO.editorOL.mapa.getControlsByClass('OpenLayers.Control.Navigation'); | |
| 2358 | + for ( var i = 0; i < controls.length; ++i) { | |
| 2359 | + controls[i].disableZoomWheel(); | |
| 2360 | + } | |
| 2361 | + }, | |
| 2362 | + google2wgs : function(obj) { | |
| 2363 | + if (i3GEO.Interface.openlayers.googleLike === true) { | |
| 2364 | + var projWGS84 = new OpenLayers.Projection("EPSG:4326"), proj900913 = new OpenLayers.Projection("EPSG:900913"); | |
| 2365 | + return obj.transform(proj900913, projWGS84); | |
| 2366 | + } else { | |
| 2367 | + return obj; | |
| 2368 | + } | |
| 2369 | + }, | |
| 2370 | + sobeLayersGraficos : function() { | |
| 2371 | + var nlayers = i3GEO.editorOL.mapa.getNumLayers(), layers = i3GEO.editorOL.mapa.layers, i; | |
| 2372 | + for (i = 0; i < nlayers; i++) { | |
| 2373 | + if (layers[i].CLASS_NAME == "OpenLayers.Layer.Vector" && layers[i].name != "Nenhum") { | |
| 2374 | + i3GEO.editorOL.mapa.raiseLayer(i3GEO.editorOL.mapa.layers[i], nlayers); | |
| 2375 | + } | |
| 2376 | + } | |
| 2377 | + } | |
| 2378 | + }; | |
| 2379 | + | |
| 2380 | +// para compatibilidade com OpenLayers 2x | |
| 2381 | +i3GEO.editorOL.backup.getFeatures = function() { | |
| 2382 | + return i3GEO.editorOL.backup.getSource().getFeatures(); | |
| 2383 | +}; | |
| 0 | 2384 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1 @@ |
| 1 | +if(!i3GEO||typeof(i3GEO)==='undefined'){var i3GEO={};i3GEO.Interface={};navn=false;navm=false;$i=function(id){return document.getElementById(id)};app=navigator.appName.substring(0,1);if(app==='N'){navn=true}else{navm=true}}i3GEO.editorOL={simbologia:{opacidade:0.8,texto:"",fillColor:"250,180,15",strokeWidth:2,strokeColor:"250,150,0",pointRadius:4,graphicName:"square",fontSize:"12px",fontColor:"0,0,0",externalGraphic:"",graphicHeight:25,graphicWidth:25},backup:new ol.layer.Vector({source:new ol.source.Vector({features:new ol.Collection(),useSpatialIndex:false,name:"Backup"}),visible:false,map:i3geoOL}),nomeFuncaoSalvar:"i3GEO.editorOL.salvaGeo()",e_oce:new ol.layer.Tile({title:"ESRI Ocean Basemap",visible:false,isBaseLayer:true,name:"oce",source:new ol.source.TileArcGISRest({url:"http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer",attributions:[new ol.Attribution({html:'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer">ArcGIS</a>'})]})}),e_ims:new ol.layer.Tile({title:"ESRI Imagery World 2D",visible:false,isBaseLayer:true,name:"ims",source:new ol.source.TileArcGISRest({url:"http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer",attributions:[new ol.Attribution({html:'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer">ArcGIS</a>'})]})}),e_wsm:new ol.layer.Tile({title:"ESRI World Street Map",visible:false,isBaseLayer:true,name:"wsm",source:new ol.source.TileArcGISRest({url:"http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer",attributions:[new ol.Attribution({html:'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer">ArcGIS</a>'})]})}),ol_mma:new ol.layer.Tile({title:"Base carto MMA",visible:false,isBaseLayer:true,name:"bra",source:new ol.source.TileWMS({url:"http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&",params:{'layers':"baseraster",'srs':"EPSG:4326",'format':"image/png"}})}),ol_wms:new ol.layer.Tile({title:"ESRI World Street Map",visible:false,isBaseLayer:true,name:"wsm",source:new ol.source.TileArcGISRest({url:"http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer",attributions:[new ol.Attribution({html:'Tiles © <a href="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer">ArcGIS</a>'})]})}),fundo:"e_ims,e_wsm,ol_mma,ol_wms,top_wms",kml:[],layersIniciais:[],botoes:{'pan':true,'zoombox':true,'zoomtot':true,'zoomin':true,'zoomout':true,'distancia':true,'area':true,'identifica':true,'linha':true,'ponto':true,'poligono':true,'texto':true,'edita':true,'listag':true,'corta':true,'apaga':true,'procura':true,'selecao':true,'selecaotudo':true,'salva':true,'ajuda':true,'propriedades':true,'fecha':false,'tools':true,'undo':false,'frente':false,'legenda':true,'rodadomouse':true},pontos:[],marca:"../pacotes/openlayers/img/marker-gold.png",controles:[],tiles:true,incluilayergrafico:true,ativalayerswitcher:false,ativarodadomouse:true,legendahtml:false,numzoom:12,minresolution:0.703125,maxext:"",mapext:[-76.5125927,-39.3925675209,-29.5851853,9.49014852081],mapa:"",inicia:function(){if(i3GEO.editorOL.controles.length===0){i3GEO.editorOL.controles=[new ol.interaction.DoubleClickZoom(),new ol.interaction.KeyboardPan(),new ol.interaction.KeyboardZoom(),new ol.interaction.MouseWheelZoom(),new ol.interaction.PinchRotate(),new ol.interaction.PinchZoom(),new ol.interaction.DragZoom(),new ol.interaction.DragPan(),new ol.control.Zoom(),new ol.control.ZoomSlider(),new ol.control.ScaleLine()]}var alayers=[],fundo=(i3GEO.editorOL.fundo).split(","),nfundo=fundo.length,ncontroles=i3GEO.editorOL.controles.length,i,n,temp;if(i3GEO.editorOL.ativarodadomouse==="false"){i3GEO.editorOL.ativarodadomouse=false}if(i3GEO.editorOL.ativarodadomouse==="true"){i3GEO.editorOL.ativarodadomouse=true}if(i3GEO.editorOL.legendahtml==="false"){i3GEO.editorOL.legendahtml=false}if(i3GEO.editorOL.legendahtml==="true"){i3GEO.editorOL.legendahtml=true}if(i3GEO.editorOL.incluilayergrafico==="false"){i3GEO.editorOL.incluilayergrafico=false}if(i3GEO.editorOL.incluilayergrafico==="true"){i3GEO.editorOL.incluilayergrafico=true}if(i3GEO.editorOL.incluilayergrafico===true){if(!i3GEO.desenho.layergrafico){i3GEO.editorOL.criaLayerGrafico()}}else{i3GEO.desenho.layergrafico="";i3GEO.editorOL.botoes.linha=false;i3GEO.editorOL.botoes.ponto=false;i3GEO.editorOL.botoes.poligono=false;i3GEO.editorOL.botoes.texto=false;i3GEO.editorOL.botoes.edita=false;i3GEO.editorOL.botoes.listag=false;i3GEO.editorOL.botoes.corta=false;i3GEO.editorOL.botoes.apaga=false;i3GEO.editorOL.botoes.selecao=false;i3GEO.editorOL.botoes.selecaotudo=false;i3GEO.editorOL.botoes.salva=false;i3GEO.editorOL.botoes.propriedades=false;i3GEO.editorOL.botoes.fecha=false;i3GEO.editorOL.botoes.tools=false;i3GEO.editorOL.botoes.undo=false;i3GEO.editorOL.botoes.frente=false}if(i3GEO.editorOL.mapa===""){alert("O objeto i3GEO.editorOL.mapa nao existe. Precisa ser criado com new OpenLayers.Map()");return}for(i=0;i<ncontroles;i++){i3GEO.editorOL.mapa.addControl(i3GEO.editorOL.controles[i])}if(i3GEO.editorOL.fundo!=""){for(i=nfundo-1;i>=0;i--){if(fundo[i]!=""){try{i3GEO.editorOL[fundo[i]].transitionEffect='resize';i3GEO.editorOL[fundo[i]].setVisibility(false);i3GEO.editorOL[fundo[i]].singleTile=false;alayers.push(i3GEO.editorOL[fundo[i]])}catch(e){if(alayers[0]){alayers[0].setVisibility(true)}}}}}i3GEO.editorOL.mapa.addLayers(alayers);if(i3GEO.editorOL.layersIniciais!==""){n=i3GEO.editorOL.layersIniciais.length;for(i=0;i<n;i++){i3GEO.editorOL.mapa.addLayer(i3GEO.editorOL.layersIniciais[i])}}if(!i3GEO.desenho.layergrafico&&i3GEO.editorOL.incluilayergrafico===true){i3GEO.editorOL.mapa.addLayers([i3GEO.desenho.layergrafico])}i3GEO.editorOL.adicionaKml();i3GEO.editorOL.adicionaMarcas();i3GEO.editorOL.coordenadas();i3GEO.editorOL.criaJanelaBusca();i3GEO.editorOL.criaBotoes(i3GEO.editorOL.botoes);if(i3GEO.editorOL.ativalayerswitcher===true){i3GEO.editorOL.ativaLayerSwitcher()}if(i3GEO.editorOL.ativarodadomouse===false){i3GEO.editorOL.desativaRodaDoMouse()}if(i3GEO.editorOL.numzoom!==""){i3GEO.editorOL.mapa.setOptions({numZoomLevels:i3GEO.editorOL.numzoom})}if(i3GEO.editorOL.maxext!==""){i3GEO.editorOL.mapa.setOptions({maxExtent:i3GEO.editorOL.maxext})}if(i3GEO.editorOL.mapext!=""){var m=i3GEO.util.extGeo2OSM(i3GEO.editorOL.mapext);i3GEO.editorOL.mapa.zoomToExtent(m)}else{i3GEO.editorOL.mapa.zoomToMaxExtent()}i3GEO.editorOL.sobeLayersGraficos();temp=i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher");if(temp){temp=temp.dataLayersDiv.getElementsByTagName("label");n=temp.length;for(i=0;i<n;i++){temp[i].onclick=""}}},criaLayerGrafico:function(){i3GEO.desenho.openlayers.criaLayerGrafico()},layersLigados:function(){var layers=i3GEO.editorOL.mapa.layers,nlayers=layers.length,ins=[],i;for(i=0;i<nlayers;i++){if(layers[i].visibility===true){ins.push(layers[i])}}return ins},layerPorParametro:function(parametro,valor){var layers=i3GEO.editorOL.mapa.layers,nlayers=layers.length,ins=[],i;for(i=0;i<nlayers;i++){if(layers[i][parametro]||layers[i][parametro.toLowerCase()]){if(layers[i][parametro]===valor||layers[i][parametro.toLowerCase()]===valor){ins.push(layers[i])}}else{if(layers[i].params&&layers[i].params[parametro]&&layers[i].params[parametro]===valor){ins.push(layers[i])}}}return ins},layersClonados:function(paramsLayers){var layers=i3GEO.editorOL.mapa.layers,nlayers=layers.length,i;for(i=0;i<nlayers;i++){if(layers[i].params&&layers[i].params.CLONETMS===paramsLayers){return(layers[i])}}return false},layertms2wms:function(tms){var layer,url;url=tms.url.replace("&cache=sim","&DESLIGACACHE=sim");url=url.replace("&Z=${z}&X=${x}&Y=${y}","");url=url.replace("Z=${z}&X=${x}&Y=${y}","");layer=new OpenLayers.Layer.WMS(tms.layername+"_clone",url,{layers:tms.name,transparent:true},{gutter:0,isBaseLayer:false,displayInLayerSwitcher:false,opacity:1,visibility:true,singleTile:true});return layer},removeClone:function(){var nome=i3GEO.editorOL.layerAtivo().layername+"_clone",busca=i3GEO.editorOL.mapa.getLayersByName(nome);if(busca.length>0){i3GEO.editorOL.mapa.removeLayer(i3GEO.editorOL.mapa.getLayersByName(camada.name)[0],false)}},coordenadas:function(){var idcoord=i3GEO.editorOL.mapa.getControlsBy("separator"," ");if(idcoord[0]){i3GEO.editorOL.mapa.events.register("mousemove",i3GEO.editorOL.mapa,function(e){var p,lonlat,d;if(navm){p=new OpenLayers.Pixel(e.x,e.y)}else{p=e.xy}lonlat=i3GEO.editorOL.mapa.getLonLatFromPixel(p);lonlat=i3GEO.util.projOSM2Geo(lonlat);d=i3GEO.calculo.dd2dms(lonlat.lon,lonlat.lat);try{$i(idcoord[0].id).innerHTML="Long: "+d[0]+"<br>Lat: "+d[1]}catch(e){}}})}},criaJanelaBusca:function(){var layers=i3GEO.editorOL.layersLigados(),nlayers=layers.length,i,ins,combo="<select id=i3GEOOLlistaTemasBusca ><option value=''>----</option>";for(i=0;i<nlayers;i++){combo+="<option value='"+i+"' >"+layers[i].name+"</option>"}combo+="</select>";ins="<div class=paragrafo >"+$trad("a7")+":<br>"+combo;ins+="<br>"+$trad("x64")+":<br><span id=i3GEOOLcomboitens ></span>";ins+="<br>"+$trad("t23")+":<br><input type=text size=20 id=i3GEOOLpalavraBusca >";ins+="<br><br><input type=button value='"+$trad("t23")+"' id='i3GEOOLbotaoBusca' ></div>";ins+="<br>'"+$trad("result")+"':<br><span id=i3GEOOLcomboresultado ></span>";try{YAHOO.namespace("procura.container");YAHOO.procura.container.panel=new YAHOO.widget.Panel("panelprocura",{zIndex:2000,iframe:false,width:"250px",visible:false,draggable:true,close:true});YAHOO.procura.container.panel.setHeader("Encontre no mapa");YAHOO.procura.container.panel.setBody(ins);YAHOO.procura.container.panel.setFooter("");YAHOO.procura.container.panel.render(document.body);YAHOO.procura.container.panel.center();document.getElementById("i3GEOOLbotaoBusca").onclick=function(){var layer=i3GEO.editorOL.layerAtivo(),item=document.getElementById("i3GEOOLbuscaItem").value,palavra=document.getElementById("i3GEOOLpalavraBusca").value;if(item===""||palavra===""){alert("Escolha o item e o texto de busca");return}i3GEO.editorOL.busca(layer,item,palavra,"i3GEOOLcomboresultado")};document.getElementById("i3GEOOLlistaTemasBusca").onchange=function(){i3GEO.editorOL.ativaTema(this.value);document.getElementById("i3GEOOLcomboitens").innerHTML="...";i3GEO.editorOL.listaItens(i3GEO.editorOL.layerAtivo(),"i3GEOOLcomboitens","i3GEOOLbuscaItem")}}catch(e){}},criaComboTemas:function(){var layers=i3GEO.editorOL.layersLigados(),nlayers=layers.length,i,nometema="",temp,combo="<select id=i3GEOOLlistaTemasAtivos style=width:235px; >";for(i=0;i<nlayers;i++){nometema="";if(i3GEO.arvoreDeCamadas&&i3GEO.arvoreDeCamadas.CAMADAS){temp=i3GEO.arvoreDeCamadas.pegaTema(layers[i].name,"","name");if(temp!=""){nometema=temp.tema+" - "}}combo+="<option value='"+i+"' >"+nometema+layers[i].name+"</option>"}combo+="</select>";return combo},atualizaJanelaAtivaTema:function(){var combo=i3GEO.editorOL.criaComboTemas();YAHOO.temaativo.container.panel.setBody(combo);document.getElementById("i3GEOOLlistaTemasAtivos").onchange=function(){if(botaoIdentifica){botaoIdentifica.layers=[i3GEO.editorOL.layersLigados()[this.value]]}}},criaJanelaAtivaTema:function(){var temp;if(!document.getElementById("paneltemaativo")){YAHOO.namespace("temaativo.container");YAHOO.temaativo.container.panel=new YAHOO.widget.Panel("paneltemaativo",{zIndex:20000,iframe:true,width:"250px",visible:false,draggable:true,close:true});YAHOO.temaativo.container.panel.setBody("");if(i3GEO&&typeof i3GEO!=undefined&&i3GEO!=""){YAHOO.temaativo.container.panel.setHeader("Tema ativo<div id='paneltemaativo_minimizaCabecalho' class='container-minimiza'></div>")}else{YAHOO.temaativo.container.panel.setHeader($trad("tativo"))}YAHOO.temaativo.container.panel.setFooter("");YAHOO.temaativo.container.panel.render(document.body);YAHOO.temaativo.container.panel.show();YAHOO.temaativo.container.panel.center();i3GEO.editorOL.atualizaJanelaAtivaTema();YAHOO.util.Event.addListener(YAHOO.temaativo.container.panel.close,"click",function(){i3GEOpanelEditor.deactivate();i3GEOpanelEditor.activate();if(i3GEO.eventos){i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS",["i3GEO.editorOL.atualizaJanelaAtivaTema()"])}});if(i3GEO&&typeof i3GEO!=undefined&&i3GEO!=""){if(i3GEO.eventos){i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS",["i3GEO.editorOL.atualizaJanelaAtivaTema()"])}}temp=$i("paneltemaativo_minimizaCabecalho");if(temp){temp.onclick=function(){i3GEO.janela.minimiza("paneltemaativo")}}}else{YAHOO.temaativo.container.panel.show();i3GEO.editorOL.atualizaJanelaAtivaTema()}},ativaTema:function(id){document.getElementById("i3GEOOLlistaTemasAtivos").value=id},layerAtivo:function(){var id=document.getElementById("i3GEOOLlistaTemasAtivos");if(id){id=id.value}else{id=i3GEO.temaAtivo}if(id==""){return[]}else{return i3GEO.editorOL.layersLigados()[id]}},listaItens:function(layer,idonde,idobj){if(!layer){return}if(!layer.params){return}var u=layer.url+"&request=describefeaturetype&service=wfs&version=1.0.0";u+="&typename="+layer.params.LAYERS;document.body.style.cursor="wait";document.getElementById("i3geoMapa").style.cursor="wait";OpenLayers.Request.issue({method:"GET",url:u,callback:function(retorno){document.body.style.cursor="default";document.getElementById("i3geoMapa").style.cursor="default";var fromgml=new OpenLayers.Format.WFSDescribeFeatureType({geometryName:"msGeometry"}),gml=fromgml.read(retorno.responseText),prop=gml.featureTypes[0].properties,nprop=prop.length,i,combo="<select id="+idobj+" ><option value=''>----</option>";for(i=0;i<nprop;i++){combo+="<option value="+prop[i].name+" >"+prop[i].name+"</option>"}combo+="</select>";document.getElementById(idonde).innerHTML=combo},failure:function(){document.body.style.cursor="default";document.getElementById("i3geoMapa").style.cursor="default";alert("Erro")}})},busca:function(layer,item,palavra,onde){document.body.style.cursor="wait";document.getElementById("i3geoMapa").style.cursor="wait";var u=layer.url+"&request=getfeature&service=wfs&version=1.0.0";u=u.replace("Z=${z}&X=${x}&Y=${y}","");u+="&OUTPUTFORMAT=gml2&typename="+layer.params.LAYERS;u+="&filter=<Filter><PropertyIsLike wildcard=* singleChar=. escape=! ><PropertyName>"+item+"</PropertyName><Literal>*"+palavra+"*</Literal></PropertyIsLike></Filter>";document.body.style.cursor="wait";document.getElementById("i3geoMapa").style.cursor="wait";document.getElementById(onde).innerHTML="...";OpenLayers.Request.issue({method:"GET",url:u,callback:function(retorno){document.body.style.cursor="default";document.getElementById("i3geoMapa").style.cursor="default";var fromgml=new OpenLayers.Format.GML({geometryName:"msGeometry"}),gml=fromgml.read(retorno.responseText),ngml=gml.length,i,ins="<select onchange='i3GEO.editorOL.zoomPara(this.value)'>";ins+="<option value=''>---</option>";for(i=0;i<ngml;i++){eval("var valor = gml[i].data."+item);var bounds=gml[i].geometry.getBounds();bounds=bounds.toBBOX();ins+="<option value='"+bounds+"'>"+valor+"</option>"}ins+="</select>";document.getElementById(onde).innerHTML=ins},failure:function(){document.body.style.cursor="default";document.getElementById("i3geoMapa").style.cursor="default";alert("Erro")}})},zoomPara:function(bbox){var b=new OpenLayers.Bounds.fromString(bbox);i3GEO.editorOL.mapa.zoomToExtent(b)},mostraLegenda:function(){var layers=i3GEO.editorOL.layersLigados(),nlayers=layers.length,ins="",i,icone="",url,fers,f="",fer="";for(i=0;i<nlayers;i++){try{if(layers[i].isBaseLayer===false){url=layers[i].getFullRequestString({"request":"getlegendgraphic"});icone="";if(i3GEO.editorOL.legendahtml===true){url=url.replace("image%2Fpng","text/html")+"&FORMAT=text/html&SERVICE=WMS";if(layers[i].options.plugini3geo){if(layers[i].params.LAYERS){icone=i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].params.LAYERS)}else{icone=i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].layers)}}fers=layers[i].options.ferramentas;for(fer in fers){if(i3GEO.configura.ferramentasLayers[fer]){icone=i3GEO.configura.ferramentasLayers[fer].icone(layers[i])}}ins+=icone+layers[i].name+"<br><div id=legendaL_"+i+" ></div><br>";eval("var f = function(retorno){document.getElementById('legendaL_"+i+"').innerHTML = retorno.responseText;};");var config={method:"GET",url:url,callback:f};OpenLayers.Request.issue(config)}else{url=url.replace("LAYERS","LAYER");url=url.replace("&Z=${z}&X=${x}&Y=${y}","");url=url.replace("Z=${z}&X=${x}&Y=${y}","");ins+=layers[i].name+"<br><img src='"+url+"&SERVICE=wms' /><br>"}}}catch(e){}}if(!document.getElementById("panellegendaeditorOL")){YAHOO.namespace("legendaeditorOL.container");YAHOO.legendaeditorOL.container.panel=new YAHOO.widget.Panel("panellegendaeditorOL",{zIndex:20000,iframe:true,width:"auto",visible:false,draggable:true,close:true});YAHOO.legendaeditorOL.container.panel.setBody(ins);YAHOO.legendaeditorOL.container.panel.setHeader($trad("p3"));YAHOO.legendaeditorOL.container.panel.setFooter("");YAHOO.legendaeditorOL.container.panel.render(document.body);YAHOO.legendaeditorOL.container.panel.show();YAHOO.legendaeditorOL.container.panel.center();YAHOO.util.Event.addListener(YAHOO.legendaeditorOL.container.panel.close,"click",function(){YAHOO.legendaeditorOL.container.panel.destroy()})}else{YAHOO.legendaeditorOL.container.panel.setBody(ins);YAHOO.legendaeditorOL.container.panel.show()}},captura:function(lonlat){var d=0.1,layers=[i3GEO.editorOL.layerAtivo()],xy=lonlat.split(","),u=layers[0].url+"&REQUEST=getfeature&service=wfs&version=1.0.0";u+="&OUTPUTFORMAT=gml2&typename="+layers[0].params.LAYERS;if(i3GEO.Interface.openlayers.googleLike===true){u+="&SRS=EPSG:3857"}u=u.replace("&cache=sim","&DESLIGACACHE=sim");u=u.replace("&Z=${z}&X=${x}&Y=${y}","");u=u.replace("Z=${z}&X=${x}&Y=${y}","");xy[0]=xy[0]*1;xy[1]=xy[1]*1;var poligono=(xy[0]-d)+","+(xy[1]+d)+" "+(xy[0]+d)+","+(xy[1]+d)+" "+(xy[0]+d)+","+(xy[1]-d)+" "+(xy[0]-d)+","+(xy[1]-d)+" "+(xy[0]-d)+","+(xy[1]+d);u+="&filter=<Filter><Intersects><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:posList>"+poligono+"</gml:posList></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersects></Filter>";document.body.style.cursor="wait";if(document.getElementById("i3geoMapa")){document.getElementById("i3geoMapa").style.cursor="wait"}OpenLayers.Request.issue({method:"GET",url:u,callback:function(retorno){document.body.style.cursor="default";if(document.getElementById("i3geoMapa")){document.getElementById("i3geoMapa").style.cursor="default"}var i,n,f,fromgml=new OpenLayers.Format.GML({geometryName:"msGeometry"}),gml=fromgml.read(retorno.responseText);n=gml.length;for(i=0;i<n;i++){f=gml[i];f["attributes"]={opacidade:i3GEO.editorOL.simbologia.opacidade,texto:i3GEO.editorOL.simbologia.texto,fillColor:i3GEO.editorOL.simbologia.fillColor,strokeWidth:i3GEO.editorOL.simbologia.strokeWidth,strokeColor:i3GEO.editorOL.simbologia.strokeColor,pointRadius:i3GEO.editorOL.simbologia.pointRadius,graphicName:i3GEO.editorOL.simbologia.graphicName,registros:f["attributes"]}}i3GEO.desenho.layergrafico.addFeatures(gml)},failure:function(){document.body.style.cursor="default";if(document.getElementById("i3geoMapa")){document.getElementById("i3geoMapa").style.cursor="default"}alert("Erro")}})},salvaGeometrias:function(){var geos=i3GEO.desenho.layergrafico.selectedFeatures,n=geos.length,ins="";if(n>0){if($i("panelsalvageometrias")){if(YAHOO.i3GEO){YAHOO.salvaGeometrias.container.panel=YAHOO.i3GEO.janela.manager.find("panelsalvageometrias")}YAHOO.salvaGeometrias.container.panel.show();YAHOO.salvaGeometrias.container.panel.bringToTop()}else{try{YAHOO.namespace("salvaGeometrias.container");YAHOO.salvaGeometrias.container.panel=new YAHOO.widget.Panel("panelsalvageometrias",{zIndex:2000,iframe:false,width:"250px",visible:false,draggable:true,close:true});YAHOO.salvaGeometrias.container.panel.setHeader($trad("u6"));YAHOO.salvaGeometrias.container.panel.setBody("");YAHOO.salvaGeometrias.container.panel.setFooter("");YAHOO.salvaGeometrias.container.panel.render(document.body);YAHOO.salvaGeometrias.container.panel.center();if(YAHOO.i3GEO&&YAHOO.i3GEO.janela){YAHOO.i3GEO.janela.manager.register(YAHOO.salvaGeometrias.container.panel)}YAHOO.salvaGeometrias.container.panel.show()}catch(e){}}ins+="<p class=paragrafo >"+n+" "+$trad("geosel")+"</p>";ins+="<p class=paragrafo ><a href='#' onclick='i3GEO.editorOL.listaGeometriasSel()' >"+$trad("listar")+"</a> ";if(i3GEO.editorOL.nomeFuncaoSalvar&&i3GEO.editorOL.nomeFuncaoSalvar!=""){ins+="<a href='#' onclick='"+i3GEO.editorOL.nomeFuncaoSalvar+"' >"+$trad("sdados")+"</a> "}if(typeof i3geoOL!=="undefined"){ins+="<a href='#' onclick='i3GEO.editorOL.incorporar()' >"+$trad("incorpo")+"</a></p>";ins+="<p class=paragrafo>"+$trad("ajudaEditorOlSalva")+"</p>"}YAHOO.salvaGeometrias.container.panel.setBody(ins)}else{i3GEO.janela.tempoMsg($trad("selum"))}},exportarSHP:function(){i3GEO.editorOL.processageo("converteSHP")},incorporar:function(){i3GEO.editorOL.processageo("incorporar")},listaGeometriasSel:function(){var geos=i3GEO.desenho.layergrafico.selectedFeatures,n=geos.length,ins="",i,a,w,g;for(i=0;i<n;i++){g=geos[i];ins+="<b>"+$trad("u6")+": "+i+"</b><br>"+i3GEO.editorOL.google2wgs(g.geometry)+"<br><br>";ins+="<b>"+$trad("atrib")+": "+i+"</b><br>";a=g.attributes;for(key in a){if(a[key]){ins+=key+" = "+a[key]+"<br>"}}if(g.attributes.registros){ins+="<b>"+$trad("reg")+": "+i+"</b><br>";a=g.attributes.registros;for(key in a){if(a[key]){ins+=key+" = "+a[key]+"<br>"}}}ins+="<br>"}w=window.open();w.document.write(ins);w.document.close()},testeSalvar:function(){alert("Funcao nao disponivel. Defina o nome da funcao em i3GEO.editorOL.nomeFuncaoSalvar ")},salvaGeo:function(){var geos=i3GEO.desenho.layergrafico.selectedFeatures,n=geos.length,funcaoOK=function(){if(geos[0].geometry){var registros="",valorunico="",nometema=$i("editorOLcomboTemaEditavel").value,key="",tema,redesenha,p,g=i3GEO.editorOL.google2wgs(geos[0].geometry);if(nometema==""){return}tema=i3GEO.arvoreDeCamadas.pegaTema(nometema,"","name");if(geos[0].attributes.registros){registros=geos[0].attributes.registros;for(key in registros){if(registros[key]&&key==tema.colunaidunico){valorunico=registros[key]}}}redesenha=function(retorno){i3GEO.janela.fechaAguarde("aguardeSalvaPonto");i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.selectedFeatures);i3GEO.Interface.atualizaTema("",nometema)};i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardeSalvaPonto",$trad("adic")+"...");i3GEO.janela.AGUARDEMODAL=false;if(valorunico==""){p=i3GEO.configura.locaplic+"/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid="+i3GEO.configura.sid;cpJSON.call(p,"foo",redesenha,"&tema="+nometema+"&wkt="+g)}else{p=i3GEO.configura.locaplic+"/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid="+i3GEO.configura.sid;cpJSON.call(p,"foo",redesenha,"&idunico="+valorunico+"&tema="+nometema+"&wkt="+g)}}},funcaoCombo=function(obj){$i("editorOLondeComboTemaEditavel").innerHTML=obj.dados},texto=$trad("stema")+":<br><div id=editorOLondeComboTemaEditavel ></div><br><br>";if(n!=1){i3GEO.janela.tempoMsg($trad("seluma"))}else{i3GEO.janela.confirma(texto,300,$trad("salva"),$trad("canc"),funcaoOK);i3GEO.util.comboTemas("editorOLcomboTemaEditavel",funcaoCombo,"editorOLondeComboTemaEditavel","",false,"editavel")}},criaBotoes:function(botoes){var controles=[],adiciona=true,sketchSymbolizers={"Point":{pointRadius:4,graphicName:"square",fillColor:"white",fillOpacity:1,strokeWidth:1,strokeOpacity:1,strokeColor:"#333333"},"Line":{strokeWidth:3,strokeOpacity:1,strokeColor:"#666666",strokeDashstyle:"dash"},"Polygon":{strokeWidth:2,strokeOpacity:1,strokeColor:"#666666",fillColor:"white",fillOpacity:0.3}};i3GEOpanelEditor=new OpenLayers.Control.Panel({displayClass:"olControlEditingToolbar1 noprint",saveState:false,activateControl:function(c){this.deactivate();this.activate();try{i3GEO.editorOL.ModifyFeature.deactivate();if(i3GEO&&i3GEO.barraDeBotoes){i3GEO.barraDeBotoes.ativaPadrao()}}catch(e){}if(!c.trigger){c.activate()}else{c.trigger.call()}}});if(botoes.procura===false){button=new OpenLayers.Control.Button({displayClass:"editorOLprocura",trigger:function(){YAHOO.procura.container.panel.show()},title:$trad("t23"),type:OpenLayers.Control.TYPE_BUTTON});controles.push(button);adiciona=true}if(botoes.pan===true){controles.push(new OpenLayers.Control.Navigation({title:"pan",displayClass:"editorOLpan",type:OpenLayers.Control.TYPE_TOOL}));adiciona=true}if(botoes.zoombox===true){controles.push(new OpenLayers.Control.ZoomBox({title:"zoombox",displayClass:"editorOLzoombox",type:OpenLayers.Control.TYPE_TOOL}));adiciona=true}if(botoes.zoomtot===true){button=new OpenLayers.Control.Button({displayClass:"editorOLzoomtot",trigger:function(){if(i3GEO.editorOL.mapext&&i3GEO.editorOL.mapext!=""){i3GEO.editorOL.mapa.zoomToExtent(i3GEO.editorOL.mapext)}else{i3GEO.editorOL.mapa.zoomToMaxExtent()}},title:$trad("d2t"),type:OpenLayers.Control.TYPE_BUTTON});controles.push(button);adiciona=true}if(botoes.zoomin===true){button=new OpenLayers.Control.Button({displayClass:"editorOLzoomin",trigger:function(){i3GEO.editorOL.mapa.zoomIn()},title:$trad("d5t"),type:OpenLayers.Control.TYPE_BUTTON});controles.push(button);adiciona=true}if(botoes.zoomout===true){button=new OpenLayers.Control.Button({displayClass:"editorOLzoomout",trigger:function(){i3GEO.editorOL.mapa.zoomOut()},title:$trad("d6t"),type:OpenLayers.Control.TYPE_BUTTON});controles.push(button);adiciona=true}if(botoes.legenda===true){button=new OpenLayers.Control.Button({displayClass:"editorOLlegenda",trigger:function(){i3GEO.editorOL.mostraLegenda()},title:$trad("p3"),type:OpenLayers.Control.TYPE_BUTTON});controles.push(button);adiciona=true}if(botoes.distancia===true){button=new OpenLayers.Control.Measure(OpenLayers.Handler.Path,{handlerOptions:{layerOptions:{styleMap:styleMap}},persist:true,displayClass:"editorOLdistancia",title:$trad("d21t"),type:OpenLayers.Control.TYPE_TOOL});button.events.on({"measure":function(event){var units=event.units,measure=event.measure;alert($trad("d21t")+": "+measure.toFixed(3)+" "+units)}});controles.push(button);adiciona=true}if(botoes.area===true){button=new OpenLayers.Control.Measure(OpenLayers.Handler.Polygon,{handlerOptions:{layerOptions:{styleMap:styleMap}},persist:true,displayClass:"editorOLarea",title:$trad("d21at"),type:OpenLayers.Control.TYPE_TOOL});button.events.on({"measure":function(event){var units=event.units;var measure=event.measure;alert($trad("d21at")+": "+measure.toFixed(3)+" "+units+"2")}});controles.push(button);adiciona=true}if(botoes.identifica===true){}if(botoes.linha===true){}if(botoes.ponto===true){}if(botoes.poligono===true){}if(botoes.texto===true){}if(botoes.edita===true&&botoes.corta===true&&i3GEO.php){}if(botoes.edita===true){}if(botoes.edita===true&&botoes.listag===true){}if(botoes.frente===true){}if(botoes.tools===true&&i3GEO.php){}if(botoes.selecao===true){}if(botoes.selecaotudo===true){}if(botoes.apaga===true){}if(botoes.propriedades===true){}if(botoes.salva===true){}if(botoes.ajuda===true){}if(botoes.fecha===true){}if(adiciona===true){i3GEOpanelEditor.addControls(controles)}},mudaSimbolo:function(estilo,id){var valor=$i(id).value,geos=i3GEO.desenho.layergrafico.selectedFeatures,n=geos.length,i;i3GEO.editorOL.simbologia[estilo]=valor;for(i=0;i<n;i++){geos[i].attributes[estilo]=valor;geos[i].style[estilo]=valor}},adicionaMarcas:function(){if(i3GEO.editorOL.pontos.length===0){return}var f,SHADOW_Z_INDEX=10,MARKER_Z_INDEX=11,layer=new OpenLayers.Layer.Vector("pontos",{styleMap:new OpenLayers.StyleMap({externalGraphic:i3GEO.editorOL.marca,backgroundGraphic:"../pacotes/openlayers/img/marker_shadow.png",backgroundXOffset:0,backgroundYOffset:-7,graphicZIndex:MARKER_Z_INDEX,backgroundGraphicZIndex:SHADOW_Z_INDEX,pointRadius:10}),isBaseLayer:false,rendererOptions:{yOrdering:true},displayInLayerSwitcher:true,visibility:true}),index,x=[],y=[],features=[];for(index=0;index<i3GEO.editorOL.pontos.length;index=index+2){x.push(i3GEO.editorOL.pontos[index]);y.push(i3GEO.editorOL.pontos[index+1])}for(index=0;index<x.length;index++){f=new OpenLayers.Geometry.Point(x[index],y[index]);f=i3GEO.util.projGeo2OSM(f);f=new OpenLayers.Feature.Vector(f);features.push(f)}layer.addFeatures(features);i3GEO.editorOL.mapa.addLayer(layer)},adicionaKml:function(){var temp,n,i,id,url;n=i3GEO.editorOL.kml.length;for(i=0;i<n;i++){id="kml"+i;url=i3GEO.editorOL.kml[i];eval(id+" = new OpenLayers.Layer.Vector('"+id+"', {displayOutsideMaxExtent:true,displayInLayerSwitcher:false,visibility:true, strategies: [new OpenLayers.Strategy.Fixed()],protocol: new OpenLayers.Protocol.HTTP({url: '"+url+"',format: new OpenLayers.Format.KML({extractStyles: true,extractAttributes: true,maxDepth: 5})})})");eval("i3GEO.editorOL.mapa.addLayer("+id+");");eval("temp = "+id+".div;");temp.onclick=function(e){var targ="",id,temp,features,n,i,g,html="";if(!e){e=window.event}if(e.target){targ=e.target}else{if(e.srcElement){targ=e.srcElement}}if(targ.id){temp=targ.id.split("_");if(temp[0]==="OpenLayers.Geometry.Point"){id=targ.id;temp=i3GEO.editorOL.mapa.getLayer(this.id);features=temp.features;n=features.length;for(i=0;i<n;i++){if(features[i].geometry.id===id){for(var j in features[i].attributes){html+=j+": "+features[i].attributes[j]}g=features[i].geometry;i3GEO.editorOL.mapa.addPopup(new OpenLayers.Popup.FramedCloud("kml",new OpenLayers.LonLat(g.x,g.y),null,html,null,true))}}}}}}},propriedades:function(){if(!document.getElementById("panelpropriedadesEditor")){YAHOO.namespace("editorOL.container");YAHOO.editorOL.container.panel=new YAHOO.widget.Panel("panelpropriedadesEditor",{zIndex:20000,iframe:true,width:"350px",height:"250px",visible:false,draggable:true,close:true});var ins=""+'<p class=paragrafo ><b>Estilos (utilize a cor no formato r,g,b):</b></p>'+'<table class=lista7 >'+' <tr>'+' <td>Cor do contorno</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'strokeColor\',\'i3GEOEditorOLcorContorno\')" type="text" style="cursor:text" id="i3GEOEditorOLcorContorno" size="12" value="'+i3GEO.editorOL.simbologia.strokeColor+'" /></td><td>';if(i3GEO.configura){ins+='<img alt="aquarela.gif" style=cursor:pointer src="'+i3GEO.configura.locaplic+'/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorContorno\');" />'}ins+=""+' </td>'+' </tr>'+' <tr>'+' <td>Cor do preenchimento</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fillColor\',\'i3GEOEditorOLcorPre\')" type="text" style="cursor:text" id="i3GEOEditorOLcorPre" size="12" value="'+i3GEO.editorOL.simbologia.fillColor+'" /></td><td>';if(i3GEO.configura){ins+='<img alt="aquarela.gif" style=cursor:pointer src="'+i3GEO.configura.locaplic+'/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorPre\');" />'}ins+=""+' </td>'+' </tr>'+' <tr>'+' <td>Cor da fonte</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fontColor\',\'i3GEOEditorOLcorFonte\')" type="text" style="cursor:text" id="i3GEOEditorOLcorFonte" size="12" value="'+i3GEO.editorOL.simbologia.fontColor+'" /></td><td>';if(i3GEO.configura){ins+='<img alt="aquarela.gif" style=cursor:pointer src="'+i3GEO.configura.locaplic+'/imagens/aquarela.gif" onclick="i3GEO.util.abreCor(\'\',\'i3GEOEditorOLcorFonte\');" />'}ins+=""+' </td>'+' </tr>'+' <tr>'+' <td>Tamanho da fonte</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'fontSize\',\'i3GEOEditorOLfontsize\')" type="text" style="cursor:text" id="i3GEOEditorOLfontsize" size="3" value="'+i3GEO.editorOL.simbologia.fontSize+'" /></td><td></td>'+' </tr>'+' <tr>'+' <td>Opacidade (de 0 a 1)</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'opacidade\',\'i3GEOEditorOLopacidade\')" type="text" style="cursor:text" id="i3GEOEditorOLopacidade" size="3" value="'+i3GEO.editorOL.simbologia.opacidade+'" /></td><td></td>'+' </tr>'+' <tr>'+' <td>Largura da linha/contorno</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'strokeWidth\',\'i3GEOEditorOLlarguraLinha\')" type="text" style="cursor:text" id="i3GEOEditorOLlarguraLinha" size="2" value="'+i3GEO.editorOL.simbologia.strokeWidth+'" /></td><td></td>'+' </tr>'+' <tr>'+' <td>Url de uma figura</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'externalGraphic\',\'i3GEOEditorOLexternalGraphic\')" type="text" style="cursor:text" id="i3GEOEditorOLexternalGraphic" size="22" value="'+i3GEO.editorOL.simbologia.externalGraphic+'" /></td><td></td>'+' </tr>'+' <tr>'+' <td>Largura e altura</td><td><input onchange="i3GEO.editorOL.mudaSimbolo(\'graphicWidth\',\'i3GEOEditorOLgraphicWidth\')" type="text" style="cursor:text" id="i3GEOEditorOLgraphicWidth" size="4" value="'+i3GEO.editorOL.simbologia.graphicWidth+'" /> <input onchange="i3GEO.editorOL.mudaSimbolo(\'graphicHeight\',\'i3GEOEditorOLgraphicHeight\')" type="text" style="cursor:text" id="i3GEOEditorOLgraphicHeight" size="4" value="'+i3GEO.editorOL.simbologia.graphicHeight+'" /></td><td></td>'+' </tr>'+'</table>'+'<br />'+'<p class=paragrafo ><b>Ajusta nó em edição para o(a):</b></p>'+'<table class=lista7 >'+' <tr>'+' <td></td><td>nó</td><td></td><td>vértice</td><td></td><td>borda</td>'+' </tr>'+' <tr>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_node" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_nodeTolerance" type="text" size="3" value=15 /></td>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_vertex" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_vertexTolerance" type="text" size="3" value=15 /></td>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.snap()" type="checkbox" id="target_edge" /></td><td><input onchange="i3GEO.editorOL.snap()" id="target_edgeTolerance" type="text" size="3" value=15 /></td>'+' </tr>'+'</table>'+'<br />'+'<p class=paragrafo ><b>Divide intersecção ao digitalizar</b></p>'+'<table class=lista7 >'+' <tr>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.split()" type="checkbox" id="edge_split_toggle" /></td><td>borda</td>'+' </tr>'+'</table>'+'<br />'+'<p class=paragrafo ><b>Operação ativada pelo botão de modificação da figura</b></p>'+'<table class=lista7 >'+' <tr>'+' <td><input checked style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.RESHAPE;" type="radio" name=i3geoOLtipoEdita /></td><td>altera figura</td>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.RESIZE;" type="radio" name=i3geoOLtipoEdita /></td><td>altera tamanho</td>'+' </tr>'+' <tr>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.ROTATE;" type="radio" name=i3geoOLtipoEdita /></td><td>rotaciona</td>'+' <td><input style=cursor:pointer onclick="i3GEO.editorOL.ModifyFeature.mode = OpenLayers.Control.ModifyFeature.DRAG;" type="radio" name=i3geoOLtipoEdita /></td><td>desloca</td>'+' </tr>'+'</table>';YAHOO.editorOL.container.panel.setBody(ins);if(i3GEO&&typeof i3GEO!=undefined&&i3GEO!=""){YAHOO.editorOL.container.panel.setHeader("Propriedades<div id='panelpropriedadesEditor_minimizaCabecalho' class='container-minimiza'></div>")}else{YAHOO.editorOL.container.panel.setHeader("Propriedades")}YAHOO.editorOL.container.panel.setFooter("");YAHOO.editorOL.container.panel.render(document.body);YAHOO.editorOL.container.panel.center();YAHOO.util.Event.addListener(YAHOO.editorOL.container.panel.close,"click",function(){});temp=$i("panelpropriedadesEditor_minimizaCabecalho");if(temp){temp.onclick=function(){i3GEO.janela.minimiza("panelpropriedadesEditor")}}}YAHOO.editorOL.container.panel.show();temp=$i("panelpropriedadesEditor").getElementsByTagName("div");if(temp&&temp[2]){temp[2].style.overflow="auto"}},listaGeometrias:function(){if(!document.getElementById("panellistagEditor")){YAHOO.namespace("editorOL.listaGeometrias");YAHOO.editorOL.listaGeometrias.panel=new YAHOO.widget.Panel("panellistagEditor",{zIndex:20000,iframe:true,width:"320px",visible:false,draggable:true,close:true});if(i3GEO&&typeof i3GEO!=undefined&&i3GEO!=""){YAHOO.editorOL.listaGeometrias.panel.setHeader($trad("u6")+" <div id='panellistagEditor_minimizaCabecalho' class='container-minimiza'></div>")}else{YAHOO.editorOL.listaGeometrias.panel.setHeader($trad("u6"))}YAHOO.editorOL.listaGeometrias.panel.setFooter("");YAHOO.editorOL.listaGeometrias.panel.render(document.body);YAHOO.editorOL.listaGeometrias.panel.center();YAHOO.util.Event.addListener(YAHOO.editorOL.listaGeometrias.panel.close,"click",function(){YAHOO.editorOL.listaGeometrias.panel.destroy()});temp=$i("panellistagEditor_minimizaCabecalho");if(temp){temp.onclick=function(){i3GEO.janela.minimiza("panellistagEditor")}}}else{YAHOO.editorOL.listaGeometrias.panel.render(document.body)}var g,temp,geos=i3GEO.desenho.layergrafico.features,n=geos.length,ins="<table class=lista4 >";ins+="<tr><td><i>"+$trad("u6")+"</i></td><td><i>"+$trad("opcoes")+"</i></td><td></td><td></td></tr>";while(n>0){n-=1;g=geos[n].geometry;ins+="<tr><td>"+g.CLASS_NAME+"</td><td style='cursor:pointer;color:blue' onclick='javascript:i3GEO.editorOL.selFeature("+n+")'>seleciona</td><td style='cursor:pointer;color:blue' onclick='javascript:i3GEO.editorOL.unselFeature("+n+")'>limpa</td><td style='cursor:pointer;color:blue' onclick='javascript:i3GEO.editorOL.flashFeaturesI("+n+")'>brilha</td></tr>"}ins+="</table>";if(geos.length===0){ins=$trad("meneditor2")}YAHOO.editorOL.listaGeometrias.panel.show();if(i3GEO.configura){temp=$i("panellistagEditor").getElementsByTagName("div")[2]}else{temp=$i("panellistagEditor").getElementsByTagName("div")[1]}temp.style.overflow="auto";temp.style.height="100px";temp.innerHTML=ins},ferramentas:function(){if(!document.getElementById("panelferramentasEditor")){YAHOO.namespace("editorOL.ferramentas");YAHOO.editorOL.ferramentas.panel=new YAHOO.widget.Panel("panelferramentasEditor",{zIndex:20000,iframe:true,width:"300px",visible:false,draggable:true,close:true});var ins=""+'<p class=paragrafo >'+$trad("opsel")+':</p>'+'<select onchange="i3GEO.editorOL.processageo(this.value);this.value = \'\'" >'+' <option value="">---</option>'+' <option value=union >União</option>';if(i3GEO.php){ins+=' <option value=intersection >Intersecção</option>'+' <option value=convexhull >Convex hull</option>'+' <option value=boundary >Bordas</option>'+' <option value=difference >Diferença</option>'+' <option value=symdifference >Diferença simétrica</option>'}ins+='</select>'+'<br><br><a class=paragrafo href=# onclick="i3GEO.desenho.layergrafico.destroyFeatures()" >Apaga tudo</a>';YAHOO.editorOL.ferramentas.panel.setBody(ins);if(i3GEO&&typeof i3GEO!=undefined&&i3GEO!=""){YAHOO.editorOL.ferramentas.panel.setHeader("Ferramentas <div id='panelferramentasEditor_minimizaCabecalho' class='container-minimiza'></div>")}else{YAHOO.editorOL.ferramentas.panel.setHeader("Ferramentas")}YAHOO.editorOL.ferramentas.panel.setFooter("");YAHOO.editorOL.ferramentas.panel.render(document.body);YAHOO.editorOL.ferramentas.panel.center();YAHOO.util.Event.addListener(YAHOO.editorOL.ferramentas.panel.close,"click",function(){});temp=$i("panelferramentasEditor_minimizaCabecalho");if(temp){temp.onclick=function(){i3GEO.janela.minimiza("panelferramentasEditor")}}}else{YAHOO.editorOL.ferramentas.panel.render(document.body)}YAHOO.editorOL.ferramentas.panel.show()},snap:function(){var target=i3GEOOLsnap.targets[0],tipos=["node","vertex","edge"],ntipos=tipos.length,i,temp,ativa=false;i3GEOOLsnap.deactivate();for(i=0;i<ntipos;i++){temp=$i("target_"+tipos[i]);target[tipos[i]]=temp.checked;if(temp.checked===true){ativa=true}temp=$i("target_"+tipos[i]+"Tolerance");target[tipos[i]+"Tolerance"]=temp.value}if(ativa===true){i3GEOOLsnap.activate()}},split:function(){i3GEOOLsplit.deactivate();var temp=$i("edge_split_toggle");if(temp.checked===true){i3GEOOLsplit.activate()}},processageo:function(operacao){if(operacao===""){return}var geosel=i3GEO.desenho.layergrafico.selectedFeatures,polis,linhas,pontos,temp;if(geosel.length>0){polis=i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.Polygon");linhas=i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.LineString");pontos=i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.Point");temp=function(retorno){if(i3GEO.janela){i3GEO.janela.fechaAguarde("i3GEO.editorPoli");i3GEO.janela.fechaAguarde("i3GEO.editorLinhas");i3GEO.janela.fechaAguarde("i3GEO.editorPontos")}if(retorno!=""&&retorno.data&&retorno.data!=""&&operacao!="converteSHP"){i3GEO.editorOL.substituiFeaturesSel(retorno.data)}if(operacao==="converteSHP"){i3GEO.atualiza();i3GEO.janela.minimiza("paneltemaativo")}};if(operacao==="incorporar"){if(polis.length>0){temp=i3GEO.editorOL.merge(polis)}if(linhas.length>0){temp=i3GEO.editorOL.merge(linhas)}if(pontos.length>0){temp=i3GEO.editorOL.merge(pontos)}if(i3GEO.mapa){i3GEO.mapa.dialogo.wkt2layer(temp)}return}if(operacao==="union"&&!i3GEO.php){if(polis.length>0){temp=i3GEO.editorOL.uniaojts(polis);i3GEO.editorOL.substituiFeaturesSel(temp)}if(linhas.length>0){temp=i3GEO.editorOL.uniaojts(linhas);i3GEO.editorOL.substituiFeaturesSel(temp)}if(pontos.length>0){temp=i3GEO.editorOL.uniaojts(pontos);i3GEO.editorOL.substituiFeaturesSel(temp)}}else{if(polis.length>0){i3GEO.janela.abreAguarde("i3GEO.editorPoli","Poligonos");i3GEO.php.funcoesGeometriasWkt(temp,polis.join("|"),operacao)}if(linhas.length>0){i3GEO.janela.abreAguarde("i3GEO.editorLinhas","Linhas");i3GEO.php.funcoesGeometriasWkt(temp,linhas.join("|"),operacao)}if(pontos.length>0){i3GEO.janela.abreAguarde("i3GEO.editorPontos","Pontos");i3GEO.php.funcoesGeometriasWkt(temp,pontos.join("|"),operacao)}}return}else{i3GEO.janela.tempoMsg("Selecione pelo menos dois elementos")}},merge:function(geoms){var n=geoms.length,w=new Wkt.Wkt(),g,m,i;w.read(geoms[0].toString());if(n>1){for(i=1;i<n;i++){g=geoms[i].toString();m=new Wkt.Wkt();m.read(g);w.merge(m)}}return w.write()},uniaojts:function(geoms){var n=geoms.length,rwkt=new jsts.io.WKTReader(),wwkt=new jsts.io.WKTWriter(),fwkt=new OpenLayers.Format.WKT(),g,i,uniao;if(n>1){uniao=(fwkt.read(geoms[0]).geometry).toString();uniao=rwkt.read(uniao);for(i=1;i<=n;i++){g=(fwkt.read(geoms[i]).geometry).toString();uniao=uniao.union(rwkt.read(g))}uniao=wwkt.write(uniao);return[fwkt.read(uniao)]}else{return false}},retornaGeometriasTipo:function(features,tipo){var n=features.length,lista=[],i,temp;for(i=0;i<n;i++){temp=features[i].geometry;if(temp.CLASS_NAME==tipo){lista.push(temp)}}return lista},guardaBackup:function(){return},unselTodos:function(){var n,i;n=i3GEO.desenho.layergrafico.features.length;for(i=0;i<n;i++){i3GEO.desenho.layergrafico.features[i].renderIntent="default";i3GEO.editorOL.selbutton.unselect(i3GEO.desenho.layergrafico.features[i])}},unselTodosBackup:function(){var n,i;n=i3GEO.editorOL.backup.features.length;for(i=0;i<n;i++){i3GEO.editorOL.backup.features[i].renderIntent="default";i3GEO.editorOL.selbutton.unselect(i3GEO.editorOL.backup.features[i])}},restauraBackup:function(){if(i3GEO.editorOL.backup.features.length>0){i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.features);i3GEO.desenho.layergrafico.addFeatures(i3GEO.editorOL.backup.features)}if(document.getElementById("panellistagEditor")){i3GEO.editorOL.listaGeometrias()}},substituiFeaturesSel:function(wkt){i3GEO.editorOL.guardaBackup();try{var f,fwkt=new OpenLayers.Format.WKT();i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.selectedFeatures);f=fwkt.read(wkt);f["attributes"]={opacidade:i3GEO.editorOL.simbologia.opacidade,texto:i3GEO.editorOL.simbologia.texto,fillColor:i3GEO.editorOL.simbologia.fillColor,strokeWidth:i3GEO.editorOL.simbologia.strokeWidth,strokeColor:i3GEO.editorOL.simbologia.strokeColor,pointRadius:i3GEO.editorOL.simbologia.pointRadius,graphicName:i3GEO.editorOL.simbologia.graphicName};i3GEO.desenho.layergrafico.addFeatures([f]);if(document.getElementById("panellistagEditor")){i3GEO.editorOL.listaGeometrias()}}catch(e){i3GEO.editorOL.restauraBackup()}},adicionaFeatureWkt:function(wkt,atributos){var f,fwkt=new OpenLayers.Format.WKT();if(atributos.externalGraphic&&atributos.externalGraphic!=""){var style_mark=OpenLayers.Util.extend({},OpenLayers.Feature.Vector.style['default']);style_mark.externalGraphic=atributos.externalGraphic;style_mark.graphicWidth=atributos.graphicWidth;style_mark.graphicHeight=atributos.graphicHeight;style_mark.fillOpacity=atributos.opacidade;f=fwkt.read(wkt);f["attributes"]=atributos;f["style"]=style_mark}else{f=fwkt.read(wkt);f["attributes"]=atributos}i3GEO.desenho.layergrafico.addFeatures([f]);if(document.getElementById("panellistagEditor")){i3GEO.editorOL.listaGeometrias()}},flashFeaturesI:function(index){i3GEO.editorOL.flashFeatures([i3GEO.desenho.layergrafico.features[index]],0)},flashFeatures:function(features,index){if(!index){index=0}var current=features[index];if(current&¤t.layer===i3GEO.desenho.layergrafico){i3GEO.desenho.layergrafico.drawFeature(features[index],"select")}var prev=features[index-1];if(prev&&prev.layer===i3GEO.desenho.layergrafico){i3GEO.desenho.layergrafico.drawFeature(prev,"default")}++index;if(index<=features.length){window.setTimeout(function(){i3GEO.editorOL.flashFeatures(features,index)},75)}},selFeature:function(index){i3GEO.editorOL.selbutton.select(i3GEO.desenho.layergrafico.features[index])},unselFeature:function(index){i3GEO.editorOL.selbutton.unselect(i3GEO.desenho.layergrafico.features[index])},carregajts:function(funcao){if(i3GEO.configura){i3GEO.util.scriptTag(i3GEO.configura.locaplic+"/pacotes/jsts/lib/jsts.js",funcao,"i3GEOjts",true)}else{i3GEO.util.scriptTag("../pacotes/jsts/lib/jsts.js",funcao,"i3GEOjts",true)}},trazParaFrente:function(){var features=i3GEO.desenho.layergrafico.selectedFeatures;if(features.length>0){i3GEO.editorOL.backup=new OpenLayers.Layer.Vector("Backup",{displayInLayerSwitcher:false,visibility:false});i3GEO.editorOL.backup.addFeatures(features);i3GEO.editorOL.unselTodosBackup();i3GEO.desenho.layergrafico.removeFeatures(features);i3GEO.desenho.layergrafico.addFeatures(i3GEO.editorOL.backup.features);if(document.getElementById("panellistagEditor")){i3GEO.editorOL.listaGeometrias()}}else{i3GEO.janela.tempoMsg("Selecione pelo menos um elemento")}},pegaControle:function(classe){var n=i3GEO.editorOL.controles.length,i;for(i=0;i<n;i++){if(i3GEO.editorOL.controles[i].CLASS_NAME===classe){return i3GEO.editorOL.controles[i]}}return false},ativaLayerSwitcher:function(){var ls=i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher");if(ls){ls.maximizeDiv.click()}},desativaRodaDoMouse:function(){var controls=i3GEO.editorOL.mapa.getControlsByClass('OpenLayers.Control.Navigation');for(var i=0;i<controls.length;++i){controls[i].disableZoomWheel()}},google2wgs:function(obj){if(i3GEO.Interface.openlayers.googleLike===true){var projWGS84=new OpenLayers.Projection("EPSG:4326"),proj900913=new OpenLayers.Projection("EPSG:900913");return obj.transform(proj900913,projWGS84)}else{return obj}},sobeLayersGraficos:function(){var nlayers=i3GEO.editorOL.mapa.getNumLayers(),layers=i3GEO.editorOL.mapa.layers,i;for(i=0;i<nlayers;i++){if(layers[i].CLASS_NAME=="OpenLayers.Layer.Vector"&&layers[i].name!="Nenhum"){i3GEO.editorOL.mapa.raiseLayer(i3GEO.editorOL.mapa.layers[i],nlayers)}}}};i3GEO.editorOL.backup.getFeatures=function(){return i3GEO.editorOL.backup.getSource().getFeatures()}; | |
| 0 | 2 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,163 @@ |
| 1 | +SYMBOLSET | |
| 2 | +Symbol | |
| 3 | + Name 'ferrovia-line1' | |
| 4 | + Type ELLIPSE | |
| 5 | + Points | |
| 6 | + 1 1 | |
| 7 | + END | |
| 8 | + FILLED TRUE | |
| 9 | + Transparent 0 | |
| 10 | + | |
| 11 | +END | |
| 12 | +Symbol | |
| 13 | + Name 'ferrovia-line2' | |
| 14 | + Type VECTOR | |
| 15 | + Points | |
| 16 | + 0 0 | |
| 17 | + 1 0 | |
| 18 | + 1 0 | |
| 19 | + 0 0 | |
| 20 | + END | |
| 21 | + FILLED TRUE | |
| 22 | +END | |
| 23 | + Symbol | |
| 24 | + Name "pt1l" | |
| 25 | + Type VECTOR | |
| 26 | + TRANSPARENT 0 | |
| 27 | + Points | |
| 28 | + 1 1 | |
| 29 | + 1 1 | |
| 30 | + END | |
| 31 | + END | |
| 32 | + | |
| 33 | + Symbol | |
| 34 | + name "pt2l" | |
| 35 | + TYPE ELLIPSE | |
| 36 | + POINTS 1 1 END | |
| 37 | + FILLED true | |
| 38 | + END | |
| 39 | + | |
| 40 | + Symbol | |
| 41 | + Name "pt3l" | |
| 42 | + Type ELLIPSE | |
| 43 | + POINTS 1 1 END | |
| 44 | + Transparent 0 | |
| 45 | + END | |
| 46 | + | |
| 47 | + Symbol | |
| 48 | + Name "linha" | |
| 49 | + Type ELLIPSE | |
| 50 | + POINTS 1 1 END | |
| 51 | + Transparent 0 | |
| 52 | + END | |
| 53 | + | |
| 54 | + Symbol | |
| 55 | + Name "linha1" | |
| 56 | + Type ELLIPSE | |
| 57 | + POINTS 1 1 END | |
| 58 | + Transparent 0 | |
| 59 | + END | |
| 60 | + | |
| 61 | + Symbol | |
| 62 | + name "dashed" | |
| 63 | + Type ELLIPSE | |
| 64 | + FILLED true | |
| 65 | + POINTS | |
| 66 | + 1 1 | |
| 67 | + END | |
| 68 | + END | |
| 69 | + | |
| 70 | + Symbol | |
| 71 | + name "dashed1" | |
| 72 | + Type ELLIPSE | |
| 73 | + FILLED true | |
| 74 | + POINTS | |
| 75 | + 1 1 | |
| 76 | + END | |
| 77 | + END | |
| 78 | + | |
| 79 | + Symbol | |
| 80 | + name "dashed2" | |
| 81 | + Type ELLIPSE | |
| 82 | + FILLED true | |
| 83 | + POINTS | |
| 84 | + 2 0 | |
| 85 | + END | |
| 86 | + END | |
| 87 | + | |
| 88 | + Symbol | |
| 89 | + Name "setal" | |
| 90 | + Type PIXMAP | |
| 91 | + Image "seta.png" | |
| 92 | + END | |
| 93 | + | |
| 94 | + Symbol | |
| 95 | + Name "sedel" | |
| 96 | + Type PIXMAP | |
| 97 | + Image "sede.png" | |
| 98 | + Transparent 1 | |
| 99 | + END | |
| 100 | + | |
| 101 | + | |
| 102 | + Symbol | |
| 103 | + Name "pontol" | |
| 104 | + Type ELLIPSE | |
| 105 | + FILLED true | |
| 106 | + TRANSPARENT 0 | |
| 107 | + Points | |
| 108 | + 1 1 | |
| 109 | + 1 1 | |
| 110 | + END | |
| 111 | + END | |
| 112 | + | |
| 113 | + Symbol | |
| 114 | + NAME 'quadradol' | |
| 115 | + TYPE VECTOR | |
| 116 | + FILLED TRUE | |
| 117 | + POINTS | |
| 118 | + 0 1 | |
| 119 | + 0 0 | |
| 120 | + 1 0 | |
| 121 | + 1 1 | |
| 122 | + 0 1 | |
| 123 | + END | |
| 124 | + END | |
| 125 | + | |
| 126 | + SYMBOL | |
| 127 | + NAME "estrelal" | |
| 128 | + TYPE vector | |
| 129 | + FILLED TRUE | |
| 130 | + POINTS | |
| 131 | + 81 48 | |
| 132 | + 66 0 | |
| 133 | + 50 48 | |
| 134 | + 0 48 | |
| 135 | + 41 77 | |
| 136 | + 25 125 | |
| 137 | + 66 96 | |
| 138 | + 106 125 | |
| 139 | + 91 77 | |
| 140 | + 131 48 | |
| 141 | + 81 48 | |
| 142 | + END | |
| 143 | + END | |
| 144 | + | |
| 145 | + SYMBOL | |
| 146 | + NAME 'triangulol' | |
| 147 | + TYPE VECTOR | |
| 148 | + FILLED TRUE | |
| 149 | + POINTS | |
| 150 | + 0 1 | |
| 151 | + .5 0 | |
| 152 | + 1 1 | |
| 153 | + 0 1 | |
| 154 | + END | |
| 155 | + END | |
| 156 | +Symbol | |
| 157 | + name "circlel" | |
| 158 | + Type ELLIPSE | |
| 159 | + Filled true | |
| 160 | + POINTS | |
| 161 | + 1 1 | |
| 162 | + END | |
| 163 | +END | ... | ... |
| ... | ... | @@ -0,0 +1,357 @@ |
| 1 | +SYMBOLSET | |
| 2 | + Symbol | |
| 3 | + NAME 'p0' | |
| 4 | + TYPE VECTOR | |
| 5 | + FILLED TRUE | |
| 6 | + POINTS | |
| 7 | + 0 1 | |
| 8 | + 0 0 | |
| 9 | + 1 0 | |
| 10 | + 1 1 | |
| 11 | + 0 1 | |
| 12 | + END | |
| 13 | + END | |
| 14 | + Symbol | |
| 15 | + Name "p1" | |
| 16 | + Type VECTOR | |
| 17 | + TRANSPARENT 0 | |
| 18 | + Points | |
| 19 | + 0 1 | |
| 20 | + 1 1 | |
| 21 | + END | |
| 22 | + END | |
| 23 | + Symbol | |
| 24 | + Name "p2" | |
| 25 | + Type VECTOR | |
| 26 | + TRANSPARENT 0 | |
| 27 | + Points | |
| 28 | + 1 0 | |
| 29 | + 1 1 | |
| 30 | + END | |
| 31 | + END | |
| 32 | + | |
| 33 | + Symbol | |
| 34 | + Name "p3" | |
| 35 | + Type VECTOR | |
| 36 | + TRANSPARENT 0 | |
| 37 | + Points | |
| 38 | + 1 0 | |
| 39 | + 0 1 | |
| 40 | + END | |
| 41 | + END | |
| 42 | + | |
| 43 | + Symbol | |
| 44 | + Name "p4" | |
| 45 | + Type VECTOR | |
| 46 | + TRANSPARENT 0 | |
| 47 | + Points | |
| 48 | + 1 1 | |
| 49 | + 0 0 | |
| 50 | + END | |
| 51 | + END | |
| 52 | + | |
| 53 | + Symbol | |
| 54 | + Name "p5" | |
| 55 | + Type VECTOR | |
| 56 | + TRANSPARENT 0 | |
| 57 | + Points | |
| 58 | + 0 0 | |
| 59 | + 1 0 | |
| 60 | + 0 1 | |
| 61 | + END | |
| 62 | + END | |
| 63 | + | |
| 64 | + Symbol | |
| 65 | + Name "p6" | |
| 66 | + Type VECTOR | |
| 67 | + TRANSPARENT 0 | |
| 68 | + Points | |
| 69 | + 0 0 | |
| 70 | + 0 1 | |
| 71 | + 1 0 | |
| 72 | + END | |
| 73 | + END | |
| 74 | + | |
| 75 | + Symbol | |
| 76 | + Name "p7" | |
| 77 | + Type VECTOR | |
| 78 | + TRANSPARENT 0 | |
| 79 | + Points | |
| 80 | + 0 1 | |
| 81 | + 1 1 | |
| 82 | + 1 0 | |
| 83 | + END | |
| 84 | + END | |
| 85 | + | |
| 86 | + Symbol | |
| 87 | + Name "p8" | |
| 88 | + Type VECTOR | |
| 89 | + TRANSPARENT 0 | |
| 90 | + Points | |
| 91 | + 0 1 | |
| 92 | + 1 1 | |
| 93 | + -99 -99 | |
| 94 | + 0 3 | |
| 95 | + 3 3 | |
| 96 | + END | |
| 97 | + END | |
| 98 | + | |
| 99 | + Symbol | |
| 100 | + Name "p9" | |
| 101 | + Type VECTOR | |
| 102 | + TRANSPARENT 0 | |
| 103 | + Points | |
| 104 | + 0 1 | |
| 105 | + 1 1 | |
| 106 | + -99 -99 | |
| 107 | + 0 0 | |
| 108 | + 1 1 | |
| 109 | + END | |
| 110 | + END | |
| 111 | + | |
| 112 | + Symbol | |
| 113 | + Name "pt1" | |
| 114 | + Type VECTOR | |
| 115 | + TRANSPARENT 0 | |
| 116 | + Points | |
| 117 | + 1 1 | |
| 118 | + 1 1 | |
| 119 | + END | |
| 120 | + END | |
| 121 | + | |
| 122 | + Symbol | |
| 123 | + name "pt2" | |
| 124 | + TYPE ELLIPSE | |
| 125 | + POINTS 1 1 END | |
| 126 | + FILLED true | |
| 127 | + END | |
| 128 | + | |
| 129 | + Symbol | |
| 130 | + Name "pt3" | |
| 131 | + Type ELLIPSE | |
| 132 | + POINTS 1 1 END | |
| 133 | + Transparent 0 | |
| 134 | + END | |
| 135 | + Symbol | |
| 136 | + Name "cidmun" | |
| 137 | + Type PIXMAP | |
| 138 | + Image "cidmun.png" | |
| 139 | + END | |
| 140 | + | |
| 141 | + Symbol | |
| 142 | + Name "capital" | |
| 143 | + Type PIXMAP | |
| 144 | + Image "capital.png" | |
| 145 | + END | |
| 146 | + Symbol | |
| 147 | + Name "vila" | |
| 148 | + Type PIXMAP | |
| 149 | + Image "vila.png" | |
| 150 | + END | |
| 151 | + | |
| 152 | + Symbol | |
| 153 | + Name "xy" | |
| 154 | + Type PIXMAP | |
| 155 | + Image "xy.png" | |
| 156 | + END | |
| 157 | + | |
| 158 | + Symbol | |
| 159 | + Name "xyr" | |
| 160 | + Type PIXMAP | |
| 161 | + Image "xyr.png" | |
| 162 | + END | |
| 163 | + | |
| 164 | + Symbol | |
| 165 | + Name "porto" | |
| 166 | + Type PIXMAP | |
| 167 | + Image "porto.png" | |
| 168 | + END | |
| 169 | + | |
| 170 | + Symbol | |
| 171 | + Name "ref" | |
| 172 | + Type PIXMAP | |
| 173 | + Image "ref.png" | |
| 174 | + END | |
| 175 | + | |
| 176 | + Symbol | |
| 177 | + Name "foto" | |
| 178 | + Type PIXMAP | |
| 179 | + Image "foto.png" | |
| 180 | + END | |
| 181 | + | |
| 182 | + Symbol | |
| 183 | + Name "filme" | |
| 184 | + Type PIXMAP | |
| 185 | + Image "filme.png" | |
| 186 | + END | |
| 187 | + | |
| 188 | + Symbol | |
| 189 | + Name "marca" | |
| 190 | + Type PIXMAP | |
| 191 | + Image "marca.png" | |
| 192 | + END | |
| 193 | + SYMBOL | |
| 194 | + NAME "estrela" | |
| 195 | + TYPE vector | |
| 196 | + FILLED TRUE | |
| 197 | + POINTS | |
| 198 | + 81 48 | |
| 199 | + 66 0 | |
| 200 | + 50 48 | |
| 201 | + 0 48 | |
| 202 | + 41 77 | |
| 203 | + 25 125 | |
| 204 | + 66 96 | |
| 205 | + 106 125 | |
| 206 | + 91 77 | |
| 207 | + 131 48 | |
| 208 | + 81 48 | |
| 209 | + END | |
| 210 | + END | |
| 211 | + | |
| 212 | + SYMBOL | |
| 213 | + NAME 'triangulo' | |
| 214 | + TYPE VECTOR | |
| 215 | + FILLED TRUE | |
| 216 | + POINTS | |
| 217 | + 0 1 | |
| 218 | + .5 0 | |
| 219 | + 1 1 | |
| 220 | + 0 1 | |
| 221 | + END | |
| 222 | + END | |
| 223 | + | |
| 224 | + SYMBOL | |
| 225 | + NAME 'industria' | |
| 226 | + TYPE VECTOR | |
| 227 | + FILLED TRUE | |
| 228 | + POINTS | |
| 229 | + 0 2 | |
| 230 | + 0 5 | |
| 231 | + 4 5 | |
| 232 | + 4 0 | |
| 233 | + 3 0 | |
| 234 | + 3 2 | |
| 235 | + 0 2 | |
| 236 | + END | |
| 237 | + END | |
| 238 | + | |
| 239 | + SYMBOL | |
| 240 | + NAME 'torre' | |
| 241 | + TYPE VECTOR | |
| 242 | + FILLED FALSE | |
| 243 | + POINTS | |
| 244 | + 2 0 | |
| 245 | + 3 4 | |
| 246 | + 4 4 | |
| 247 | + 4 5 | |
| 248 | + 0 5 | |
| 249 | + 0 4 | |
| 250 | + 1 4 | |
| 251 | + 2 0 | |
| 252 | + END | |
| 253 | + END | |
| 254 | + | |
| 255 | + SYMBOL | |
| 256 | + NAME 'mineracao' | |
| 257 | + TYPE VECTOR | |
| 258 | + FILLED FALSE | |
| 259 | + POINTS | |
| 260 | + 0 0 | |
| 261 | + 5 5 | |
| 262 | + 4 6 | |
| 263 | + 3 7 | |
| 264 | + 2 6 | |
| 265 | + 0 5 | |
| 266 | + 5 0 | |
| 267 | + END | |
| 268 | + END | |
| 269 | + | |
| 270 | + SYMBOL | |
| 271 | + NAME 'templo' | |
| 272 | + TYPE VECTOR | |
| 273 | + FILLED FALSE | |
| 274 | + POINTS | |
| 275 | + 2 0 | |
| 276 | + 3 0 | |
| 277 | + 3 1 | |
| 278 | + 4 1 | |
| 279 | + 4 2 | |
| 280 | + 3 2 | |
| 281 | + 3 3 | |
| 282 | + 5 3 | |
| 283 | + 5 5 | |
| 284 | + 0 5 | |
| 285 | + 0 3 | |
| 286 | + 2 3 | |
| 287 | + 2 2 | |
| 288 | + 1 2 | |
| 289 | + 1 1 | |
| 290 | + 2 1 | |
| 291 | + 2 0 | |
| 292 | + END | |
| 293 | + END | |
| 294 | + | |
| 295 | + SYMBOL | |
| 296 | + NAME 'saude' | |
| 297 | + TYPE VECTOR | |
| 298 | + FILLED TRUE | |
| 299 | + POINTS | |
| 300 | + 2 0 | |
| 301 | + 3 0 | |
| 302 | + 3 1 | |
| 303 | + 4 1 | |
| 304 | + 4 2 | |
| 305 | + 3 2 | |
| 306 | + 3 3 | |
| 307 | + 2 3 | |
| 308 | + 2 2 | |
| 309 | + 1 2 | |
| 310 | + 1 1 | |
| 311 | + 2 1 | |
| 312 | + 2 0 | |
| 313 | + END | |
| 314 | + END | |
| 315 | + | |
| 316 | + SYMBOL | |
| 317 | + NAME 'escola' | |
| 318 | + TYPE VECTOR | |
| 319 | + FILLED FALSE | |
| 320 | + POINTS | |
| 321 | + 2 0 | |
| 322 | + 5 2 | |
| 323 | + 3 2 | |
| 324 | + 3 4 | |
| 325 | + 5 4 | |
| 326 | + 5 7 | |
| 327 | + 0 7 | |
| 328 | + 0 4 | |
| 329 | + 2 4 | |
| 330 | + 2 0 | |
| 331 | + END | |
| 332 | + END | |
| 333 | + | |
| 334 | + SYMBOL | |
| 335 | + NAME 'cruz' | |
| 336 | + TYPE VECTOR | |
| 337 | + FILLED TRUE | |
| 338 | + POINTS | |
| 339 | + 2 0 | |
| 340 | + 3 0 | |
| 341 | + 3 1 | |
| 342 | + 5 1 | |
| 343 | + 5 2 | |
| 344 | + 3 2 | |
| 345 | + 3 7 | |
| 346 | + 2 7 | |
| 347 | + 2 2 | |
| 348 | + 0 2 | |
| 349 | + 0 1 | |
| 350 | + 2 1 | |
| 351 | + 2 0 | |
| 352 | + END | |
| 353 | + END | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | ... | ... |
| ... | ... | @@ -0,0 +1,575 @@ |
| 1 | +SYMBOLSET | |
| 2 | + SYMBOL | |
| 3 | + NAME 'cruzeta' | |
| 4 | + TYPE VECTOR | |
| 5 | + POINTS | |
| 6 | + 0.5 0 | |
| 7 | + 0.5 1 | |
| 8 | + -99 -99 | |
| 9 | + 0 0.5 | |
| 10 | + 1 0.5 | |
| 11 | + END | |
| 12 | + END | |
| 13 | + SYMBOL | |
| 14 | + NAME 'google1' | |
| 15 | + TYPE VECTOR | |
| 16 | + FILLED TRUE | |
| 17 | + POINTS | |
| 18 | + 90 -363 | |
| 19 | + 140 -363 | |
| 20 | + 165 -347 | |
| 21 | + 177 -335 | |
| 22 | + 188 -323 | |
| 23 | + 201 -311 | |
| 24 | + 213 -287 | |
| 25 | + 213 -192 | |
| 26 | + 199 -169 | |
| 27 | + 188 -154 | |
| 28 | + 175 -144 | |
| 29 | + 163 -132 | |
| 30 | + 152 -106 | |
| 31 | + 141 -82 | |
| 32 | + 126 -46 | |
| 33 | + 117 50 | |
| 34 | + 97 50 | |
| 35 | + 85 -46 | |
| 36 | + 74 -82 | |
| 37 | + 61 -106 | |
| 38 | + 50 -132 | |
| 39 | + 38 -144 | |
| 40 | + 25 -154 | |
| 41 | + 12 -169 | |
| 42 | + 0 -192 | |
| 43 | + 0 -287 | |
| 44 | + 14 -311 | |
| 45 | + 25 -323 | |
| 46 | + 38 -335 | |
| 47 | + 51 -347 | |
| 48 | + 73 -363 | |
| 49 | + 120 -363 | |
| 50 | + END | |
| 51 | + END | |
| 52 | + | |
| 53 | + Symbol | |
| 54 | + Name "rosa200" | |
| 55 | + Type PIXMAP | |
| 56 | + Image "rosa200.png" | |
| 57 | + END | |
| 58 | + | |
| 59 | + Symbol | |
| 60 | + NAME 'p0' | |
| 61 | + TYPE VECTOR | |
| 62 | + FILLED TRUE | |
| 63 | + POINTS | |
| 64 | + 0 1 | |
| 65 | + 0 0 | |
| 66 | + 1 0 | |
| 67 | + 1 1 | |
| 68 | + 0 1 | |
| 69 | + END | |
| 70 | + END | |
| 71 | + | |
| 72 | + Symbol | |
| 73 | + Name "p1" | |
| 74 | + Type VECTOR | |
| 75 | + TRANSPARENT 0 | |
| 76 | + Points | |
| 77 | + 0 1 | |
| 78 | + 1 1 | |
| 79 | + END | |
| 80 | + END | |
| 81 | + | |
| 82 | + Symbol | |
| 83 | + Name "p2" | |
| 84 | + Type VECTOR | |
| 85 | + TRANSPARENT 0 | |
| 86 | + Points | |
| 87 | + 1 0 | |
| 88 | + 1 1 | |
| 89 | + END | |
| 90 | + END | |
| 91 | + | |
| 92 | +Symbol | |
| 93 | + Name 'ferrovia-line1' | |
| 94 | + Type ELLIPSE | |
| 95 | + Points | |
| 96 | + 1 1 | |
| 97 | + END | |
| 98 | + FILLED TRUE | |
| 99 | +END | |
| 100 | + | |
| 101 | +Symbol | |
| 102 | + Name 'ferrovia-line2' | |
| 103 | + Type VECTOR | |
| 104 | + Points | |
| 105 | + 0 0 | |
| 106 | + 1 0 | |
| 107 | + 1 0 | |
| 108 | + 0 0 | |
| 109 | + END | |
| 110 | + FILLED TRUE | |
| 111 | +END | |
| 112 | + Symbol | |
| 113 | + Name "p3" | |
| 114 | + Type VECTOR | |
| 115 | + TRANSPARENT 0 | |
| 116 | + Points | |
| 117 | + 1 0 | |
| 118 | + 0 1 | |
| 119 | + END | |
| 120 | + END | |
| 121 | + | |
| 122 | + Symbol | |
| 123 | + Name "p4" | |
| 124 | + Type VECTOR | |
| 125 | + TRANSPARENT 0 | |
| 126 | + Points | |
| 127 | + 1 1 | |
| 128 | + 0 0 | |
| 129 | + END | |
| 130 | + END | |
| 131 | + | |
| 132 | + Symbol | |
| 133 | + Name "p5" | |
| 134 | + Type VECTOR | |
| 135 | + TRANSPARENT 0 | |
| 136 | + Points | |
| 137 | + 0 0 | |
| 138 | + 1 0 | |
| 139 | + 0 1 | |
| 140 | + END | |
| 141 | + END | |
| 142 | + | |
| 143 | + Symbol | |
| 144 | + Name "p6" | |
| 145 | + Type VECTOR | |
| 146 | + TRANSPARENT 0 | |
| 147 | + Points | |
| 148 | + 0 0 | |
| 149 | + 0 1 | |
| 150 | + 1 0 | |
| 151 | + END | |
| 152 | + END | |
| 153 | + | |
| 154 | + Symbol | |
| 155 | + Name "p7" | |
| 156 | + Type VECTOR | |
| 157 | + TRANSPARENT 0 | |
| 158 | + Points | |
| 159 | + 0 1 | |
| 160 | + 1 1 | |
| 161 | + 1 0 | |
| 162 | + END | |
| 163 | + END | |
| 164 | + | |
| 165 | + Symbol | |
| 166 | + Name "p8" | |
| 167 | + Type VECTOR | |
| 168 | + TRANSPARENT 0 | |
| 169 | + Points | |
| 170 | + 0 1 | |
| 171 | + 1 1 | |
| 172 | + -99 -99 | |
| 173 | + 0 3 | |
| 174 | + 3 3 | |
| 175 | + END | |
| 176 | + END | |
| 177 | + | |
| 178 | + Symbol | |
| 179 | + Name "p9" | |
| 180 | + Type VECTOR | |
| 181 | + TRANSPARENT 0 | |
| 182 | + Points | |
| 183 | + 0 1 | |
| 184 | + 1 1 | |
| 185 | + -99 -99 | |
| 186 | + 0 0 | |
| 187 | + 1 1 | |
| 188 | + END | |
| 189 | + END | |
| 190 | + | |
| 191 | + Symbol | |
| 192 | + Name "pt1" | |
| 193 | + Type VECTOR | |
| 194 | + TRANSPARENT 0 | |
| 195 | + Points | |
| 196 | + 1 1 | |
| 197 | + 1 1 | |
| 198 | + END | |
| 199 | + END | |
| 200 | + | |
| 201 | + Symbol | |
| 202 | + name "pt2" | |
| 203 | + TYPE ELLIPSE | |
| 204 | + POINTS 1 1 END | |
| 205 | + FILLED true | |
| 206 | + END | |
| 207 | + | |
| 208 | + Symbol | |
| 209 | + Name "pt3" | |
| 210 | + Type ELLIPSE | |
| 211 | + POINTS 1 1 END | |
| 212 | + Transparent 0 | |
| 213 | + END | |
| 214 | + | |
| 215 | + Symbol | |
| 216 | + Name "linha" | |
| 217 | + Type ELLIPSE | |
| 218 | + POINTS 1 1 END | |
| 219 | + Transparent 0 | |
| 220 | + END | |
| 221 | + | |
| 222 | + Symbol | |
| 223 | + Name "linha1" | |
| 224 | + Type ELLIPSE | |
| 225 | + POINTS 1 1 END | |
| 226 | + Transparent 0 | |
| 227 | + END | |
| 228 | + | |
| 229 | + Symbol | |
| 230 | + name "dashed" | |
| 231 | + Type ELLIPSE | |
| 232 | + FILLED true | |
| 233 | + POINTS | |
| 234 | + 1 1 | |
| 235 | + END | |
| 236 | + END | |
| 237 | + | |
| 238 | + Symbol | |
| 239 | + name "dashed1" | |
| 240 | + Type ELLIPSE | |
| 241 | + FILLED true | |
| 242 | + POINTS | |
| 243 | + 1 1 | |
| 244 | + END | |
| 245 | + END | |
| 246 | + | |
| 247 | + Symbol | |
| 248 | + name "dashed2" | |
| 249 | + Type ELLIPSE | |
| 250 | + FILLED true | |
| 251 | + POINTS | |
| 252 | + 2 0 | |
| 253 | + END | |
| 254 | + END | |
| 255 | + | |
| 256 | + Symbol | |
| 257 | + Name "aviao" | |
| 258 | + Type PIXMAP | |
| 259 | + Image "aviao.png" | |
| 260 | + END | |
| 261 | + | |
| 262 | + Symbol | |
| 263 | + Name "seta" | |
| 264 | + Type PIXMAP | |
| 265 | + Image "seta.png" | |
| 266 | + END | |
| 267 | + | |
| 268 | + Symbol | |
| 269 | + Name "aviao1" | |
| 270 | + Type PIXMAP | |
| 271 | + Image "aviao1.png" | |
| 272 | + END | |
| 273 | + | |
| 274 | + Symbol | |
| 275 | + Name "leste" | |
| 276 | + Type PIXMAP | |
| 277 | + Image "leste.png" | |
| 278 | + END | |
| 279 | + | |
| 280 | + Symbol | |
| 281 | + Name "oeste" | |
| 282 | + Type PIXMAP | |
| 283 | + Image "oeste.png" | |
| 284 | + END | |
| 285 | + | |
| 286 | + Symbol | |
| 287 | + Name "norte" | |
| 288 | + Type PIXMAP | |
| 289 | + Image "norte.png" | |
| 290 | + END | |
| 291 | + | |
| 292 | + Symbol | |
| 293 | + Name "sul" | |
| 294 | + Type PIXMAP | |
| 295 | + Image "sul.png" | |
| 296 | + END | |
| 297 | + | |
| 298 | + Symbol | |
| 299 | + Name "sede" | |
| 300 | + Type PIXMAP | |
| 301 | + Image "sede.png" | |
| 302 | + Transparent 1 | |
| 303 | + END | |
| 304 | + | |
| 305 | + Symbol | |
| 306 | + Name "cidmun" | |
| 307 | + Type PIXMAP | |
| 308 | + Image "cidmun.png" | |
| 309 | + END | |
| 310 | + | |
| 311 | + Symbol | |
| 312 | + Name "capital" | |
| 313 | + Type PIXMAP | |
| 314 | + Image "capital.png" | |
| 315 | + END | |
| 316 | + | |
| 317 | + Symbol | |
| 318 | + Name "cidade" | |
| 319 | + Type PIXMAP | |
| 320 | + Image "cidade.png" | |
| 321 | + END | |
| 322 | + | |
| 323 | + Symbol | |
| 324 | + Name "vila" | |
| 325 | + Type PIXMAP | |
| 326 | + Image "vila.png" | |
| 327 | + END | |
| 328 | + | |
| 329 | + Symbol | |
| 330 | + Name "xy" | |
| 331 | + Type PIXMAP | |
| 332 | + Image "xy.png" | |
| 333 | + END | |
| 334 | + | |
| 335 | + Symbol | |
| 336 | + Name "xyr" | |
| 337 | + Type PIXMAP | |
| 338 | + Image "xyr.png" | |
| 339 | + END | |
| 340 | + | |
| 341 | + Symbol | |
| 342 | + Name "porto" | |
| 343 | + Type PIXMAP | |
| 344 | + Image "porto.png" | |
| 345 | + END | |
| 346 | + | |
| 347 | + Symbol | |
| 348 | + Name "ref" | |
| 349 | + Type PIXMAP | |
| 350 | + Image "ref.png" | |
| 351 | + END | |
| 352 | + | |
| 353 | + Symbol | |
| 354 | + Name "foto" | |
| 355 | + Type PIXMAP | |
| 356 | + Image "foto.png" | |
| 357 | + END | |
| 358 | + | |
| 359 | + Symbol | |
| 360 | + Name "filme" | |
| 361 | + Type PIXMAP | |
| 362 | + Image "filme.png" | |
| 363 | + END | |
| 364 | + | |
| 365 | + Symbol | |
| 366 | + Name "marca" | |
| 367 | + Type PIXMAP | |
| 368 | + Image "marca.png" | |
| 369 | + END | |
| 370 | + | |
| 371 | + | |
| 372 | + Symbol | |
| 373 | + Name "ponto" | |
| 374 | + Type ELLIPSE | |
| 375 | + FILLED true | |
| 376 | + TRANSPARENT 0 | |
| 377 | + Points | |
| 378 | + 1 1 | |
| 379 | + 1 1 | |
| 380 | + END | |
| 381 | + END | |
| 382 | + | |
| 383 | + Symbol | |
| 384 | + NAME 'quadrado' | |
| 385 | + TYPE VECTOR | |
| 386 | + FILLED TRUE | |
| 387 | + POINTS | |
| 388 | + 0 1 | |
| 389 | + 0 0 | |
| 390 | + 1 0 | |
| 391 | + 1 1 | |
| 392 | + 0 1 | |
| 393 | + END | |
| 394 | + END | |
| 395 | + | |
| 396 | + SYMBOL | |
| 397 | + NAME "estrela" | |
| 398 | + TYPE vector | |
| 399 | + FILLED TRUE | |
| 400 | + POINTS | |
| 401 | + 81 48 | |
| 402 | + 66 0 | |
| 403 | + 50 48 | |
| 404 | + 0 48 | |
| 405 | + 41 77 | |
| 406 | + 25 125 | |
| 407 | + 66 96 | |
| 408 | + 106 125 | |
| 409 | + 91 77 | |
| 410 | + 131 48 | |
| 411 | + 81 48 | |
| 412 | + END | |
| 413 | + END | |
| 414 | + | |
| 415 | + SYMBOL | |
| 416 | + NAME 'triangulo' | |
| 417 | + TYPE VECTOR | |
| 418 | + FILLED TRUE | |
| 419 | + POINTS | |
| 420 | + 0 1 | |
| 421 | + .5 0 | |
| 422 | + 1 1 | |
| 423 | + 0 1 | |
| 424 | + END | |
| 425 | + END | |
| 426 | + | |
| 427 | + SYMBOL | |
| 428 | + NAME 'industria' | |
| 429 | + TYPE VECTOR | |
| 430 | + FILLED TRUE | |
| 431 | + POINTS | |
| 432 | + 0 2 | |
| 433 | + 0 5 | |
| 434 | + 4 5 | |
| 435 | + 4 0 | |
| 436 | + 3 0 | |
| 437 | + 3 2 | |
| 438 | + 0 2 | |
| 439 | + END | |
| 440 | + END | |
| 441 | + | |
| 442 | + SYMBOL | |
| 443 | + NAME 'torre' | |
| 444 | + TYPE VECTOR | |
| 445 | + FILLED FALSE | |
| 446 | + POINTS | |
| 447 | + 2 0 | |
| 448 | + 3 4 | |
| 449 | + 4 4 | |
| 450 | + 4 5 | |
| 451 | + 0 5 | |
| 452 | + 0 4 | |
| 453 | + 1 4 | |
| 454 | + 2 0 | |
| 455 | + END | |
| 456 | + END | |
| 457 | + | |
| 458 | + SYMBOL | |
| 459 | + NAME 'mineracao' | |
| 460 | + TYPE VECTOR | |
| 461 | + FILLED FALSE | |
| 462 | + POINTS | |
| 463 | + 0 0 | |
| 464 | + 5 5 | |
| 465 | + 4 6 | |
| 466 | + 3 7 | |
| 467 | + 2 6 | |
| 468 | + 0 5 | |
| 469 | + 5 0 | |
| 470 | + END | |
| 471 | + END | |
| 472 | + | |
| 473 | + SYMBOL | |
| 474 | + NAME 'templo' | |
| 475 | + TYPE VECTOR | |
| 476 | + FILLED FALSE | |
| 477 | + POINTS | |
| 478 | + 2 0 | |
| 479 | + 3 0 | |
| 480 | + 3 1 | |
| 481 | + 4 1 | |
| 482 | + 4 2 | |
| 483 | + 3 2 | |
| 484 | + 3 3 | |
| 485 | + 5 3 | |
| 486 | + 5 5 | |
| 487 | + 0 5 | |
| 488 | + 0 3 | |
| 489 | + 2 3 | |
| 490 | + 2 2 | |
| 491 | + 1 2 | |
| 492 | + 1 1 | |
| 493 | + 2 1 | |
| 494 | + 2 0 | |
| 495 | + END | |
| 496 | + END | |
| 497 | + | |
| 498 | + SYMBOL | |
| 499 | + NAME 'saude' | |
| 500 | + TYPE VECTOR | |
| 501 | + FILLED TRUE | |
| 502 | + POINTS | |
| 503 | + 2 0 | |
| 504 | + 3 0 | |
| 505 | + 3 1 | |
| 506 | + 4 1 | |
| 507 | + 4 2 | |
| 508 | + 3 2 | |
| 509 | + 3 3 | |
| 510 | + 2 3 | |
| 511 | + 2 2 | |
| 512 | + 1 2 | |
| 513 | + 1 1 | |
| 514 | + 2 1 | |
| 515 | + 2 0 | |
| 516 | + END | |
| 517 | + END | |
| 518 | + | |
| 519 | + SYMBOL | |
| 520 | + NAME 'escola' | |
| 521 | + TYPE VECTOR | |
| 522 | + FILLED FALSE | |
| 523 | + POINTS | |
| 524 | + 2 0 | |
| 525 | + 5 2 | |
| 526 | + 3 2 | |
| 527 | + 3 4 | |
| 528 | + 5 4 | |
| 529 | + 5 7 | |
| 530 | + 0 7 | |
| 531 | + 0 4 | |
| 532 | + 2 4 | |
| 533 | + 2 0 | |
| 534 | + END | |
| 535 | + END | |
| 536 | + | |
| 537 | + SYMBOL | |
| 538 | + NAME 'cruz' | |
| 539 | + TYPE VECTOR | |
| 540 | + FILLED TRUE | |
| 541 | + POINTS | |
| 542 | + 2 0 | |
| 543 | + 3 0 | |
| 544 | + 3 1 | |
| 545 | + 5 1 | |
| 546 | + 5 2 | |
| 547 | + 3 2 | |
| 548 | + 3 7 | |
| 549 | + 2 7 | |
| 550 | + 2 2 | |
| 551 | + 0 2 | |
| 552 | + 0 1 | |
| 553 | + 2 1 | |
| 554 | + 2 0 | |
| 555 | + END | |
| 556 | + END | |
| 557 | + | |
| 558 | +Symbol | |
| 559 | + name "circle" | |
| 560 | + Type ELLIPSE | |
| 561 | + Filled true | |
| 562 | + POINTS | |
| 563 | + 1 1 | |
| 564 | + END | |
| 565 | +END | |
| 566 | +SYMBOL | |
| 567 | +NAME "T" | |
| 568 | +TYPE TRUETYPE | |
| 569 | +FONT "arial" | |
| 570 | +CHARACTER "#" | |
| 571 | +ANTIALIAS TRUE | |
| 572 | +END | |
| 573 | + | |
| 574 | + | |
| 575 | + | ... | ... |
| ... | ... | @@ -0,0 +1,696 @@ |
| 1 | +SYMBOLSET | |
| 2 | + Symbol | |
| 3 | + NAME 'p0' | |
| 4 | + TYPE VECTOR | |
| 5 | + FILLED TRUE | |
| 6 | + POINTS | |
| 7 | + 0 0 | |
| 8 | + END | |
| 9 | + END | |
| 10 | + SYMBOL | |
| 11 | + NAME 'cruzeta' | |
| 12 | + TYPE VECTOR | |
| 13 | + POINTS | |
| 14 | + 0.5 0 | |
| 15 | + 0.5 1 | |
| 16 | + -99 -99 | |
| 17 | + 0 0.5 | |
| 18 | + 1 0.5 | |
| 19 | + END | |
| 20 | + END | |
| 21 | + SYMBOL | |
| 22 | + NAME 'google1' | |
| 23 | + TYPE VECTOR | |
| 24 | + FILLED TRUE | |
| 25 | + POINTS | |
| 26 | + 90 -363 | |
| 27 | + 140 -363 | |
| 28 | + 165 -347 | |
| 29 | + 177 -335 | |
| 30 | + 188 -323 | |
| 31 | + 201 -311 | |
| 32 | + 213 -287 | |
| 33 | + 213 -192 | |
| 34 | + 199 -169 | |
| 35 | + 188 -154 | |
| 36 | + 175 -144 | |
| 37 | + 163 -132 | |
| 38 | + 152 -106 | |
| 39 | + 141 -82 | |
| 40 | + 126 -46 | |
| 41 | + 117 50 | |
| 42 | + 97 50 | |
| 43 | + 85 -46 | |
| 44 | + 74 -82 | |
| 45 | + 61 -106 | |
| 46 | + 50 -132 | |
| 47 | + 38 -144 | |
| 48 | + 25 -154 | |
| 49 | + 12 -169 | |
| 50 | + 0 -192 | |
| 51 | + 0 -287 | |
| 52 | + 14 -311 | |
| 53 | + 25 -323 | |
| 54 | + 38 -335 | |
| 55 | + 51 -347 | |
| 56 | + 73 -363 | |
| 57 | + 120 -363 | |
| 58 | + END | |
| 59 | + END | |
| 60 | + | |
| 61 | + Symbol | |
| 62 | + NAME 'p0' | |
| 63 | + TYPE VECTOR | |
| 64 | + FILLED TRUE | |
| 65 | + POINTS | |
| 66 | + 0 1 | |
| 67 | + 0 0 | |
| 68 | + 1 0 | |
| 69 | + 1 1 | |
| 70 | + 0 1 | |
| 71 | + END | |
| 72 | + END | |
| 73 | + | |
| 74 | + Symbol | |
| 75 | + Name "p1" | |
| 76 | + Type VECTOR | |
| 77 | + TRANSPARENT 0 | |
| 78 | + Points | |
| 79 | + 0 1 | |
| 80 | + 1 1 | |
| 81 | + END | |
| 82 | + END | |
| 83 | + | |
| 84 | + Symbol | |
| 85 | + Name "p2" | |
| 86 | + Type VECTOR | |
| 87 | + TRANSPARENT 0 | |
| 88 | + Points | |
| 89 | + 1 0 | |
| 90 | + 1 1 | |
| 91 | + END | |
| 92 | + END | |
| 93 | + | |
| 94 | + Symbol | |
| 95 | + Name "p3" | |
| 96 | + Type VECTOR | |
| 97 | + TRANSPARENT 0 | |
| 98 | + Points | |
| 99 | + 1 0 | |
| 100 | + 0 1 | |
| 101 | + END | |
| 102 | + END | |
| 103 | + | |
| 104 | + Symbol | |
| 105 | + Name "p4" | |
| 106 | + Type VECTOR | |
| 107 | + TRANSPARENT 0 | |
| 108 | + Points | |
| 109 | + 1 1 | |
| 110 | + 0 0 | |
| 111 | + END | |
| 112 | + END | |
| 113 | + | |
| 114 | + Symbol | |
| 115 | + Name "p5" | |
| 116 | + Type VECTOR | |
| 117 | + TRANSPARENT 0 | |
| 118 | + Points | |
| 119 | + 0 0 | |
| 120 | + 1 0 | |
| 121 | + 0 1 | |
| 122 | + END | |
| 123 | + END | |
| 124 | + | |
| 125 | + Symbol | |
| 126 | + Name "p6" | |
| 127 | + Type VECTOR | |
| 128 | + TRANSPARENT 0 | |
| 129 | + Points | |
| 130 | + 0 0 | |
| 131 | + 0 1 | |
| 132 | + 1 0 | |
| 133 | + END | |
| 134 | + END | |
| 135 | + | |
| 136 | + Symbol | |
| 137 | + Name "p7" | |
| 138 | + Type VECTOR | |
| 139 | + TRANSPARENT 0 | |
| 140 | + Points | |
| 141 | + 0 1 | |
| 142 | + 1 1 | |
| 143 | + 1 0 | |
| 144 | + END | |
| 145 | + END | |
| 146 | + | |
| 147 | + Symbol | |
| 148 | + Name "p8" | |
| 149 | + Type VECTOR | |
| 150 | + TRANSPARENT 0 | |
| 151 | + Points | |
| 152 | + 0 1 | |
| 153 | + 1 1 | |
| 154 | + -99 -99 | |
| 155 | + 0 3 | |
| 156 | + 3 3 | |
| 157 | + END | |
| 158 | + END | |
| 159 | + | |
| 160 | + Symbol | |
| 161 | + Name "p9" | |
| 162 | + Type VECTOR | |
| 163 | + TRANSPARENT 0 | |
| 164 | + Points | |
| 165 | + 0 1 | |
| 166 | + 1 1 | |
| 167 | + -99 -99 | |
| 168 | + 0 0 | |
| 169 | + 1 1 | |
| 170 | + END | |
| 171 | + END | |
| 172 | + | |
| 173 | + Symbol | |
| 174 | + Name "pt1" | |
| 175 | + Type VECTOR | |
| 176 | + TRANSPARENT 0 | |
| 177 | + Points | |
| 178 | + 1 1 | |
| 179 | + 1 1 | |
| 180 | + END | |
| 181 | + END | |
| 182 | + | |
| 183 | + Symbol | |
| 184 | + name "pt2" | |
| 185 | + TYPE ELLIPSE | |
| 186 | + POINTS 1 1 END | |
| 187 | + FILLED true | |
| 188 | + END | |
| 189 | + | |
| 190 | + Symbol | |
| 191 | + Name "pt3" | |
| 192 | + Type ELLIPSE | |
| 193 | + POINTS 1 1 END | |
| 194 | + Transparent 0 | |
| 195 | + END | |
| 196 | + | |
| 197 | + | |
| 198 | + Symbol | |
| 199 | + Name "aviao" | |
| 200 | + Type PIXMAP | |
| 201 | + Image "aviao.png" | |
| 202 | + END | |
| 203 | + | |
| 204 | + Symbol | |
| 205 | + Name "rosa200" | |
| 206 | + Type PIXMAP | |
| 207 | + Image "rosa200.png" | |
| 208 | + END | |
| 209 | + | |
| 210 | + Symbol | |
| 211 | + Name "seta" | |
| 212 | + Type PIXMAP | |
| 213 | + Image "seta.png" | |
| 214 | + END | |
| 215 | + | |
| 216 | + Symbol | |
| 217 | + Name "aviao1" | |
| 218 | + Type PIXMAP | |
| 219 | + Image "aviao1.png" | |
| 220 | + END | |
| 221 | + | |
| 222 | + Symbol | |
| 223 | + Name "leste" | |
| 224 | + Type PIXMAP | |
| 225 | + Image "leste.png" | |
| 226 | + END | |
| 227 | + | |
| 228 | + Symbol | |
| 229 | + Name "oeste" | |
| 230 | + Type PIXMAP | |
| 231 | + Image "oeste.png" | |
| 232 | + END | |
| 233 | + | |
| 234 | + Symbol | |
| 235 | + Name "norte" | |
| 236 | + Type PIXMAP | |
| 237 | + Image "norte.png" | |
| 238 | + END | |
| 239 | + | |
| 240 | + Symbol | |
| 241 | + Name "sul" | |
| 242 | + Type PIXMAP | |
| 243 | + Image "sul.png" | |
| 244 | + END | |
| 245 | + | |
| 246 | + Symbol | |
| 247 | + Name "sede" | |
| 248 | + Type PIXMAP | |
| 249 | + Image "sede.png" | |
| 250 | + Transparent 1 | |
| 251 | + END | |
| 252 | + | |
| 253 | + Symbol | |
| 254 | + Name "cidmun" | |
| 255 | + Type PIXMAP | |
| 256 | + Image "cidmun.png" | |
| 257 | + END | |
| 258 | + | |
| 259 | + Symbol | |
| 260 | + Name "capital" | |
| 261 | + Type PIXMAP | |
| 262 | + Image "capital.png" | |
| 263 | + END | |
| 264 | + | |
| 265 | + Symbol | |
| 266 | + Name "cidade" | |
| 267 | + Type PIXMAP | |
| 268 | + Image "cidade.png" | |
| 269 | + END | |
| 270 | + | |
| 271 | + Symbol | |
| 272 | + Name "vila" | |
| 273 | + Type PIXMAP | |
| 274 | + Image "vila.png" | |
| 275 | + END | |
| 276 | + | |
| 277 | + Symbol | |
| 278 | + Name "xy" | |
| 279 | + Type PIXMAP | |
| 280 | + Image "xy.png" | |
| 281 | + END | |
| 282 | + | |
| 283 | + Symbol | |
| 284 | + Name "xyr" | |
| 285 | + Type PIXMAP | |
| 286 | + Image "xyr.png" | |
| 287 | + END | |
| 288 | + | |
| 289 | + Symbol | |
| 290 | + Name "porto" | |
| 291 | + Type PIXMAP | |
| 292 | + Image "porto.png" | |
| 293 | + END | |
| 294 | + | |
| 295 | + Symbol | |
| 296 | + Name "ref" | |
| 297 | + Type PIXMAP | |
| 298 | + Image "ref.png" | |
| 299 | + END | |
| 300 | + | |
| 301 | + Symbol | |
| 302 | + Name "foto" | |
| 303 | + Type PIXMAP | |
| 304 | + Image "foto.png" | |
| 305 | + END | |
| 306 | + | |
| 307 | + Symbol | |
| 308 | + Name "filme" | |
| 309 | + Type PIXMAP | |
| 310 | + Image "filme.png" | |
| 311 | + END | |
| 312 | + | |
| 313 | + Symbol | |
| 314 | + Name "marca" | |
| 315 | + Type PIXMAP | |
| 316 | + Image "marca.png" | |
| 317 | + END | |
| 318 | + | |
| 319 | + | |
| 320 | + Symbol | |
| 321 | + Name "ponto" | |
| 322 | + Type ELLIPSE | |
| 323 | + FILLED true | |
| 324 | + TRANSPARENT 0 | |
| 325 | + Points | |
| 326 | + 1 1 | |
| 327 | + 1 1 | |
| 328 | + END | |
| 329 | + END | |
| 330 | + | |
| 331 | + Symbol | |
| 332 | + NAME 'quadrado' | |
| 333 | + TYPE VECTOR | |
| 334 | + FILLED TRUE | |
| 335 | + POINTS | |
| 336 | + 0 1 | |
| 337 | + 0 0 | |
| 338 | + 1 0 | |
| 339 | + 1 1 | |
| 340 | + 0 1 | |
| 341 | + END | |
| 342 | + END | |
| 343 | + | |
| 344 | + SYMBOL | |
| 345 | + NAME "estrela" | |
| 346 | + TYPE vector | |
| 347 | + FILLED TRUE | |
| 348 | + POINTS | |
| 349 | + 81 48 | |
| 350 | + 66 0 | |
| 351 | + 50 48 | |
| 352 | + 0 48 | |
| 353 | + 41 77 | |
| 354 | + 25 125 | |
| 355 | + 66 96 | |
| 356 | + 106 125 | |
| 357 | + 91 77 | |
| 358 | + 131 48 | |
| 359 | + 81 48 | |
| 360 | + END | |
| 361 | + END | |
| 362 | + | |
| 363 | + SYMBOL | |
| 364 | + NAME 'triangulo' | |
| 365 | + TYPE VECTOR | |
| 366 | + FILLED TRUE | |
| 367 | + POINTS | |
| 368 | + 0 1 | |
| 369 | + .5 0 | |
| 370 | + 1 1 | |
| 371 | + 0 1 | |
| 372 | + END | |
| 373 | + END | |
| 374 | + | |
| 375 | + SYMBOL | |
| 376 | + NAME 'industria' | |
| 377 | + TYPE VECTOR | |
| 378 | + FILLED TRUE | |
| 379 | + POINTS | |
| 380 | + 0 2 | |
| 381 | + 0 5 | |
| 382 | + 4 5 | |
| 383 | + 4 0 | |
| 384 | + 3 0 | |
| 385 | + 3 2 | |
| 386 | + 0 2 | |
| 387 | + END | |
| 388 | + END | |
| 389 | + | |
| 390 | + SYMBOL | |
| 391 | + NAME 'torre' | |
| 392 | + TYPE VECTOR | |
| 393 | + FILLED FALSE | |
| 394 | + POINTS | |
| 395 | + 2 0 | |
| 396 | + 3 4 | |
| 397 | + 4 4 | |
| 398 | + 4 5 | |
| 399 | + 0 5 | |
| 400 | + 0 4 | |
| 401 | + 1 4 | |
| 402 | + 2 0 | |
| 403 | + END | |
| 404 | + END | |
| 405 | + | |
| 406 | + SYMBOL | |
| 407 | + NAME 'mineracao' | |
| 408 | + TYPE VECTOR | |
| 409 | + FILLED FALSE | |
| 410 | + POINTS | |
| 411 | + 0 0 | |
| 412 | + 5 5 | |
| 413 | + 4 6 | |
| 414 | + 3 7 | |
| 415 | + 2 6 | |
| 416 | + 0 5 | |
| 417 | + 5 0 | |
| 418 | + END | |
| 419 | + END | |
| 420 | + | |
| 421 | + SYMBOL | |
| 422 | + NAME 'templo' | |
| 423 | + TYPE VECTOR | |
| 424 | + FILLED FALSE | |
| 425 | + POINTS | |
| 426 | + 2 0 | |
| 427 | + 3 0 | |
| 428 | + 3 1 | |
| 429 | + 4 1 | |
| 430 | + 4 2 | |
| 431 | + 3 2 | |
| 432 | + 3 3 | |
| 433 | + 5 3 | |
| 434 | + 5 5 | |
| 435 | + 0 5 | |
| 436 | + 0 3 | |
| 437 | + 2 3 | |
| 438 | + 2 2 | |
| 439 | + 1 2 | |
| 440 | + 1 1 | |
| 441 | + 2 1 | |
| 442 | + 2 0 | |
| 443 | + END | |
| 444 | + END | |
| 445 | + | |
| 446 | + SYMBOL | |
| 447 | + NAME 'saude' | |
| 448 | + TYPE VECTOR | |
| 449 | + FILLED TRUE | |
| 450 | + POINTS | |
| 451 | + 2 0 | |
| 452 | + 3 0 | |
| 453 | + 3 1 | |
| 454 | + 4 1 | |
| 455 | + 4 2 | |
| 456 | + 3 2 | |
| 457 | + 3 3 | |
| 458 | + 2 3 | |
| 459 | + 2 2 | |
| 460 | + 1 2 | |
| 461 | + 1 1 | |
| 462 | + 2 1 | |
| 463 | + 2 0 | |
| 464 | + END | |
| 465 | + END | |
| 466 | + | |
| 467 | + SYMBOL | |
| 468 | + NAME 'escola' | |
| 469 | + TYPE VECTOR | |
| 470 | + FILLED FALSE | |
| 471 | + POINTS | |
| 472 | + 2 0 | |
| 473 | + 5 2 | |
| 474 | + 3 2 | |
| 475 | + 3 4 | |
| 476 | + 5 4 | |
| 477 | + 5 7 | |
| 478 | + 0 7 | |
| 479 | + 0 4 | |
| 480 | + 2 4 | |
| 481 | + 2 0 | |
| 482 | + END | |
| 483 | + END | |
| 484 | + | |
| 485 | + SYMBOL | |
| 486 | + NAME 'cruz' | |
| 487 | + TYPE VECTOR | |
| 488 | + FILLED TRUE | |
| 489 | + POINTS | |
| 490 | + 2 0 | |
| 491 | + 3 0 | |
| 492 | + 3 1 | |
| 493 | + 5 1 | |
| 494 | + 5 2 | |
| 495 | + 3 2 | |
| 496 | + 3 7 | |
| 497 | + 2 7 | |
| 498 | + 2 2 | |
| 499 | + 0 2 | |
| 500 | + 0 1 | |
| 501 | + 2 1 | |
| 502 | + 2 0 | |
| 503 | + END | |
| 504 | + END | |
| 505 | + | |
| 506 | +Symbol | |
| 507 | + name "circle" | |
| 508 | + Type ELLIPSE | |
| 509 | + Filled true | |
| 510 | + POINTS | |
| 511 | + 1 1 | |
| 512 | + END | |
| 513 | +END | |
| 514 | +Symbol | |
| 515 | + Name 'ferrovia-line1' | |
| 516 | + Type ELLIPSE | |
| 517 | + Points | |
| 518 | + 1 1 | |
| 519 | + END | |
| 520 | + FILLED TRUE | |
| 521 | + #PATTERN 1 13 1 13 END | |
| 522 | +END | |
| 523 | +Symbol | |
| 524 | + Name 'ferrovia-line2' | |
| 525 | + Type VECTOR | |
| 526 | + Points | |
| 527 | + 0 0 | |
| 528 | + 1 0 | |
| 529 | + 1 0 | |
| 530 | + 0 0 | |
| 531 | + END | |
| 532 | + FILLED TRUE | |
| 533 | + #PATTERN 5 13 5 13 END | |
| 534 | +END | |
| 535 | + Symbol | |
| 536 | + Name "pt1l" | |
| 537 | + Type VECTOR | |
| 538 | + TRANSPARENT 0 | |
| 539 | + Points | |
| 540 | + 1 1 | |
| 541 | + 1 1 | |
| 542 | + END | |
| 543 | + #PATTERN 1 13 1 13 END | |
| 544 | + END | |
| 545 | + | |
| 546 | + Symbol | |
| 547 | + name "pt2l" | |
| 548 | + TYPE ELLIPSE | |
| 549 | + POINTS 1 1 END | |
| 550 | + FILLED true | |
| 551 | + #PATTERN 1 13 1 13 END | |
| 552 | + END | |
| 553 | + | |
| 554 | + Symbol | |
| 555 | + Name "pt3l" | |
| 556 | + Type ELLIPSE | |
| 557 | + POINTS 1 1 END | |
| 558 | + Transparent 0 | |
| 559 | + #PATTERN 1 13 1 13 END | |
| 560 | + END | |
| 561 | + | |
| 562 | + Symbol | |
| 563 | + Name "linha" | |
| 564 | + Type ELLIPSE | |
| 565 | + POINTS 1 1 END | |
| 566 | + Transparent 0 | |
| 567 | + END | |
| 568 | + | |
| 569 | + Symbol | |
| 570 | + Name "linha1" | |
| 571 | + Type ELLIPSE | |
| 572 | + POINTS 1 1 END | |
| 573 | + #PATTERN 1 4 1 END | |
| 574 | + Transparent 0 | |
| 575 | + #PATTERN 10 20 10 20 END | |
| 576 | + END | |
| 577 | + | |
| 578 | + Symbol | |
| 579 | + name "dashed" | |
| 580 | + Type ELLIPSE | |
| 581 | + FILLED true | |
| 582 | + POINTS | |
| 583 | + 1 1 | |
| 584 | + END | |
| 585 | + #PATTERN 8 3 END | |
| 586 | + END | |
| 587 | + | |
| 588 | + Symbol | |
| 589 | + name "dashed1" | |
| 590 | + Type ELLIPSE | |
| 591 | + FILLED true | |
| 592 | + POINTS | |
| 593 | + 1 1 | |
| 594 | + END | |
| 595 | + #PATTERN 8 8 1 8 END | |
| 596 | + END | |
| 597 | + | |
| 598 | + Symbol | |
| 599 | + name "dashed2" | |
| 600 | + Type ELLIPSE | |
| 601 | + FILLED true | |
| 602 | + POINTS | |
| 603 | + 2 0 | |
| 604 | + END | |
| 605 | + END | |
| 606 | + | |
| 607 | + Symbol | |
| 608 | + Name "setal" | |
| 609 | + Type PIXMAP | |
| 610 | + Image "seta.png" | |
| 611 | + #PATTERN 1 13 1 13 END | |
| 612 | + END | |
| 613 | + | |
| 614 | + Symbol | |
| 615 | + Name "sedel" | |
| 616 | + Type PIXMAP | |
| 617 | + Image "sede.png" | |
| 618 | + Transparent 1 | |
| 619 | + #PATTERN 1 13 1 13 END | |
| 620 | + | |
| 621 | + END | |
| 622 | + | |
| 623 | + | |
| 624 | + Symbol | |
| 625 | + Name "pontol" | |
| 626 | + Type ELLIPSE | |
| 627 | + FILLED true | |
| 628 | + TRANSPARENT 0 | |
| 629 | + Points | |
| 630 | + 1 1 | |
| 631 | + 1 1 | |
| 632 | + END | |
| 633 | + #PATTERN 1 13 1 13 END | |
| 634 | + | |
| 635 | + END | |
| 636 | + | |
| 637 | + Symbol | |
| 638 | + NAME 'quadradol' | |
| 639 | + TYPE VECTOR | |
| 640 | + FILLED TRUE | |
| 641 | + POINTS | |
| 642 | + 0 1 | |
| 643 | + 0 0 | |
| 644 | + 1 0 | |
| 645 | + 1 1 | |
| 646 | + 0 1 | |
| 647 | + END | |
| 648 | + #PATTERN 1 13 1 13 END | |
| 649 | + | |
| 650 | + END | |
| 651 | + | |
| 652 | + SYMBOL | |
| 653 | + NAME "estrelal" | |
| 654 | + TYPE vector | |
| 655 | + FILLED TRUE | |
| 656 | + POINTS | |
| 657 | + 81 48 | |
| 658 | + 66 0 | |
| 659 | + 50 48 | |
| 660 | + 0 48 | |
| 661 | + 41 77 | |
| 662 | + 25 125 | |
| 663 | + 66 96 | |
| 664 | + 106 125 | |
| 665 | + 91 77 | |
| 666 | + 131 48 | |
| 667 | + 81 48 | |
| 668 | + END | |
| 669 | + #PATTERN 1 13 1 13 END | |
| 670 | + | |
| 671 | + END | |
| 672 | + | |
| 673 | + SYMBOL | |
| 674 | + NAME 'triangulol' | |
| 675 | + TYPE VECTOR | |
| 676 | + FILLED TRUE | |
| 677 | + POINTS | |
| 678 | + 0 1 | |
| 679 | + .5 0 | |
| 680 | + 1 1 | |
| 681 | + 0 1 | |
| 682 | + END | |
| 683 | + #PATTERN 1 13 1 13 END | |
| 684 | + | |
| 685 | + END | |
| 686 | + | |
| 687 | +Symbol | |
| 688 | + name "circlel" | |
| 689 | + Type ELLIPSE | |
| 690 | + Filled true | |
| 691 | + POINTS | |
| 692 | + 1 1 | |
| 693 | + END | |
| 694 | + #PATTERN 1 13 1 13 END | |
| 695 | + | |
| 696 | +END | ... | ... |
testamapfile.php
| ... | ... | @@ -88,6 +88,7 @@ if ($tipo == "") |
| 88 | 88 | echo 'i3GEO.configura.locaplic = i3GEO.util.protocolo() + "://" + window.location.host + "/i3geo";'; |
| 89 | 89 | echo '</script>'; |
| 90 | 90 | echo '<script src="admin/js/core.js"></script>'; |
| 91 | + echo '<script src="admin/dicionario/core.js"></script>'; | |
| 91 | 92 | echo '</head>'; |
| 92 | 93 | echo '<body class=" yui-skin-sam" style="background: white;"><center>'; |
| 93 | 94 | echo '<div class="bordaSuperior" > </div>'; | ... | ... |