sexta-feira, setembro 07, 2007

Criar Bookmarks [ArcEngine]

Olá,

Gostaria de repassar o conhecimento de como criar Bookmarks em um menu em uma aplicação ArcEngine.

Segue primeiramente o código para adicionar itens no menu dinamicamente. Cria-se algumas variáveis membro na sua classe que contenha o menu.

IList tsItem2 = new List();
DlgFavoritos dlgFavoritos;
int index = 0;

Depois criamos o menu com um ítem Adicionar Favoritos...



Após isso no evento click() do menu adicione o seguinte código

private void adicionarFavoritoToolStripMenuItem_Click(object sender, EventArgs e)
{
string nomeFavorito;

try
{
if (dlgFavoritos == null)
{
dlgFavoritos = new DlgFavoritos();
dlgFavoritos.ShowDialog();
}
else
{
dlgFavoritos.ShowDialog();
}
}
finally
{
nomeFavorito = dlgFavoritos.txtBoxFavorito.Text;
if (( dlgFavoritos.BookmarkSolicitado ) && ( !existeNoMenu(nomeFavorito, menuStripPrincipal) ))
{
tsItem2.Add(new ToolStripMenuItem());
tsItem2[index].Name = nomeFavorito;
tsItem2[index].Text = nomeFavorito;
( (ToolStripMenuItem)menuStripPrincipal.Items[menuStripPrincipal.Items.Count - 2] ).DropDownItems.AddRange(new ToolStripItem[] { tsItem2[index] });
tsItem2[index].Click += new System.EventHandler(this.ZoomTo);
AddSpatialBookMark(axMapControlPrincipal.ActiveView, tsItem2[index].Name);
index++;
dlgFavoritos.BookmarkSolicitado = false;
MessageBox.Show("Favorito: " + nomeFavorito + " criado com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (existeNoMenu(nomeFavorito,menuStripPrincipal) )
{
MessageBox.Show("Esta entrada no menu já existe favor tentar outro nome", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}



este código adicionará item a item no menu associando o mesmo evento para todos os ítens.

Agora é só criar o método que adiciona o bookmark ao seu mapa e boa sorte.

Segue o método que faz a criação de bookmaarks

private void ZoomTo(object sender, EventArgs e)
{
irParaBookmark(axMapControl1.ActiveView, ( (ToolStripItem)sender ).Name);
}

public static void irParaBookmark(IActiveView activeView, String nomeBookMark)
{
for (int i = 0; i <>
{
if (aoiBookmark[i].Name == nomeBookMark)
{
aoiBookmark[i].ZoomTo(activeView.FocusMap);
activeView.Refresh();
}
}
}

#region variaveis bookmark
public static IList aoiBookmark = new List();
public static IMapBookmarks mapBookmarks;
public static int index = 0;
#endregion

public static void AddSpatialBookMark(IActiveView activeView, String bookmarkName)
{
if (activeView == null || bookmarkName == null)
{
return;
}
// Criar um novo bookmark e setar sua localização na extensão corrente do mapa atual
aoiBookmark.Add(new AOIBookmarkClass());

// Setar Bookmark para a extensão correte
aoiBookmark[index].Location = activeView.Extent;
aoiBookmark[index].Name = bookmarkName;

// Adiciona o bookmark à coleção de bookmark do mapa
// Para o ArcGIS Desktop isto irá adicionar o bookmark ao menu Bookmarks da visão
mapBookmarks = (IMapBookmarks)activeView; // Dynamic Cast
mapBookmarks.AddBookmark(aoiBookmark[index]);
index++;

}

Espero que lhes sejam útil pois é uma funcionalidade que melhora a produtividade de quem passa o dia trabalhando com mapas.

A Esri já possui sua própria ferramenta mas preferí customizá-la.


Ezequias.

terça-feira, fevereiro 20, 2007

Carnaval 2007


Bem gente,

Já foi a época de 4 dias de carnaval, muita suadeira e muito mais bebida. Hoje o carnaval tem outro sentido para mim.

Ao mesmo tempo que relembro o momento que reencontrei minha esposa para não mais largá-la, me faz gerar novas memórias com minha filhinha Rita. Estou muito feliz por trazê-la para seu segundo carnaval (mas o primeiro que ela entendeu e dançou no passo do maracatú).


Ver as novas experiências dos nossos filhos são momentos que não se descrevem, apenas se vêem e sentem. Se não fossemos movidos pelo medo hoje em dia, estaríamos muito mais felizes, mas ainda podemos brincar um pouco felizes.

Por pura sorte (eu considero assim) não sofremos problemas físicos ou materiais. Obrigado ao Papai Deus e a Santa Rita de Cássia. Nada nos acontecerá.

Viva o carnaval. Viva a alegria.

Deixo algumas fotos de Rita e nossa família.

Um abração a todos.

quarta-feira, outubro 11, 2006