Sérgio, boa noite!Dei uma rápida olhada no script que você mencionou. O problema pode ser decorrente de tentar usar o texto original com encoding "ISO-8859-1" em um sistema com encoding "UTF-8".A parte da função read.map() rodou normalmente aqui, mas alguns comandos que seguem parecem estar obsoletos (plot.polylist(), p. ex.)A função read,map() gera um objeto de classe 'polylist' que preciso estudar melhor, mas por ora dá pra visualizar o conteúdo com algumas adaptações...Separei o trecho de código da função em um arquivo separado chamado readMap.R e executei o trecho de código abaixo, usando o arquivo "BRREG.MAP" (Regiões do Brasil) pra testar.
# <code r># downURL <- 'ftp://ftp.datasus.gov.br/municip/mapas/2005/mapbr.zip'# arquivo com vários arquivos MAP, inclusive "BRREG.MAP" aqui utilizado
setwd("C:/LAB/DATASUS")source("readMap.R") ### carregar função
mapName <- "BRREG.MAP"mapa <- read.map(mapName)save(mapa, file=paste0(mapName,".R"))### uma vez salvo, você poderá recarregar o objeto mapa, sem ter que usar read.map() novamente.# load(file=paste0(mapName,".R"))plot(attributes(mapa)$maplim, type='n', asp=1, xlab=NA, ylab=NA)title('Mapa')lapply(mapa, polygon, asp=T, col=3)# </code>O código do arquivo readMap.R retirei do link passado:# <code r>read.map = function(filename){zz=file(filename,"rb")## header do .map#versao = readBin(zz,"integer",1,size=2) # 100 = versao 1.00#Bounding BoxLeste = readBin(zz,"numeric",1,size=4)Norte = readBin(zz,"numeric",1,size=4)Oeste = readBin(zz,"numeric",1,size=4)Sul = readBin(zz,"numeric",1,size=4)geocodigo = ""nome = ""xleg = 0yleg = 0sede = FALSEpoli = list()i = 0## repete para cada objeto no arquivo#repeat{tipoobj = readBin(zz,"integer",1,size=1) # 0=Poligono, 1=PoligonoComSede, 2=Linha, 3=Pontoif (length(tipoobj) == 0) breaki = i + 1Len = readBin(zz,"integer",1,size=1) # length byte da string Pascalgeocodigo[i] = readChar(zz,10)Len = readBin(zz,"integer",1,size=1) # length byte da string Pascalnome[i] = substr(readChar(zz,25),1,Len)xleg[i] = readBin(zz,"numeric",1,size=4)yleg[i] = readBin(zz,"numeric",1,size=4)numpontos = readBin(zz,"integer",1,size=2)sede = sede || (tipoobj = 1)x=0y=0for (j in 1:numpontos){x[j] = readBin(zz,"numeric",1,size=4)y[j] = readBin(zz,"numeric",1,size=4)}# NAs separam vários polígonos no mesmo objeto# BUG a corrigir: Assim como está o primeiro polígono não fecha e, em multiplos poligonos, há um NA a mais no finalxInic = x[1]yInic = y[1]for (j in 2:numpontos){if (x[j] == xInic & y[j] == yInic) {x[j]=NA; y[j] = NA}}poli[[i]] = c(x,y)dim(poli[[i]]) = c(numpontos,2)}class(poli) = "polylist"attr(poli,"region.id") = geocodigoattr(poli,"region.name") = nomeattr(poli,"centroid") = list(x=xleg,y=yleg)attr(poli,"sede") = sedeattr(poli,"maplim") = list(x=c(Oeste,Leste),y=c(Sul,Norte))close(zz)return(poli)}# </code>
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.