Entries tagged with “Mapscript”.


Em determinadas situações é necessário convertermos coordenadas, isto ocorre por diversos motivos, mas para qualquer motivo que seja o seu você poderá utilizar o código abaixo para isto.

Definimos um ponto com determinadas coordenadas:

OSGeo.MapServer.pointObj pt = new OSGeo.MapServer.pointObj(458360.889647, 7625796.6882136, 0, 0);

Definimos a projeção que as coordenadas estão e a projeção para qual queremos converter.

De:

//http://www.spatialreference.org/ref/epsg/4326/

OSGeo.MapServer.projectionObj projA = new OSGeo.MapServer.projectionObj(“init=epsg:4326″);

Para:

//http://www.spatialreference.org/ref/epsg/29192/

OSGeo.MapServer.projectionObj projB = new OSGeo.MapServer.projectionObj(“init=epsg:29192″);

//Fazemos a chamada do metodo que realiza a conversão

pt.project(projA, projB);

//E como resultado temos

X=7999.9066867105394

Y=133095.26029700678

Um forte abraço a todos,

qualquer duvida é só falar.

1-Introdução

Nossa, já faz um certo tempo que não posto aqui, essa falta de tempo tá fod… , mas vamos ao que interessa, esse artigo será com certeza um dos mais esperados, pois mostra como exibir os mapas que nos armazenamos na nossa base de dados.

2-Preparando o arquivo .map

Primeiro vamos preparar o nosso arquivo .map, que nada mais é do que uma workspace, isto é, nele estará contido todos os layers que serão exibidos no nosso mapa, claro que poderíamos adicioná-los via código mas dessa maneira é mais simples.

*Início

MAP *

*Nome

NAME MAPACURSO

*Unidade a ser utilizada

UNITS METERS

*Extremidades do mapa (minx, miny, maxx, maxy)

EXTENT -85.133507 -34.727177 -21.249626 6.247749

*Definições para criação da legenda

LEGEND

IMAGECOLOR 255 255 255

STATUS ON

KEYSIZE 18 12

LABEL

TYPE BITMAP

SIZE MEDIUM

COLOR 0 0 89

END

END

*Início da definição do layer Brasil

LAYER

*Nome

NAME ‘Brasil’

*Tipo

TYPE POLYGON

*Tipo da conexão

CONNECTIONTYPE postgis

*String para conexão

CONNECTION “host=localhost user=postgres password=postgres dbname=gis_db”

*Select que trará os dados a serem exibidos

DATA ‘the_geom FROM brasil USING UNIQUE gid’

*Status ON, OFF e DEFAULT, se colocar off ele não aparece no mapa, até que se mude para ON

STATUS DEFAULT

*Definições de layout do layer

CLASS

STYLE

OUTLINECOLOR 0 0 255

END

END

END

*Fim

LAYER

NAME ‘SaoPaulo’

TYPE POLYGON

CONNECTIONTYPE postgis

CONNECTION “host=localhost user=postgres password=postgres dbname=gis_db”

DATA ‘the_geom FROM saopaulo USING UNIQUE gid’

STATUS DEFAULT

CLASS

STYLE

OUTLINECOLOR 210 140 140

END

END

END

END

Caso tenha interesse, você pode se aprofundar mais nas configurações possíveis de se realizar no mapfile no site http://mapserver.org/mapfile

3 – Codificando

Bem agora que estamos com nosso mapfile pronto, nos resta codificar o que for necessário para o mapserver interpreta-lo e exibir o mapa para nós.

O nosso primeiro site será bem simples, apenas um “web form” contendo um “image control”, que servira para exibir nosso mapa, veja abaixo :

Agora é só codificarmos

OSGeo.MapServer.mapObj map;

map = new OSGeo.MapServer.mapObj(“Caminho fisico do arquivo mapfile”);

map.width = 200; //Tamanho horizontal do mapa

map.height = 100; //Tamanho vertical do mapa

OSGeo.MapServer.imageObj img = map.draw();//Cria a imagem do mapa

img.save(“Caminho fisico, inclusive com o nome da imagem a ser gerada”, map);

Image1.ImageUrl = “url do caminho aonde a imagem foi salva”;

Bem, a grosso modo, é basicamente essas linhas acima que nos permitem exibir um mapa, claro que na hora de criar o projeto e codificar eu dei uma incrementada, portanto baixem o código fonte no link abaixo e vocês terão a solução completa desse artigo, vale lembrar que talvez seja necessário realizar algumas alterações no web.config.

Link para baixar o código fonte

E como resultado temos: