Capturar pontos no mapa com C# e Google Maps

Category : Hacks, Tips and Tricks

Vocês devem ter reparado que a muito tempo não ando escrevendo nada técnico. Andei pensando em fazer uma reformulação no blog, e dedicar uma sessão exclusiva a pequenos trechos de códigos. Mas acabei não dando prioridade a essa mudança, então aqui estou eu novamente.

Durante os últimos meses recebi alguns e-mails falando do artigo sobre como construir mapas com .NET e Google Maps. Alguns eram pedindo dicas, outros pediam ajuda com implementação mais complexas. Então recentemente recebi um comentário sobre uma funcionalidade que já havia implementado a muito tempo. Então estou aqui para compartilhar o trecho de código.

A duvida em questão é, como capturar pontos clicados no google maps. Na verdade, é bem simples, mas antes você precisa entender como funciona a construir mapas utilizando google maps e a biblioteca Artem, para .NET e C#. Para saber o básico, clique aqui.

O funcionamento é simples e será explicado em alguns passos.

  1. Crie um textbox chamado txtLatitude e outro chamado txtLongitude
  2. Adicione o controle do Google Maps a pagina, com a propriedade de OnClientClick, apontando para a função javascript

    <artem:GoogleMap ID=”GMaps” runat=”server” OnClientClick=”__showInfo” ></artem:GoogleMap>

  3. Adicione a função javascript que irá capturar os valores do ponto clicado e preencher os textboxes
    <script type=”text/javascript”>
    function __showInfo(overlay, point) {
    if (point) {
    var infoLatitude = document.getElementById(‘<%= txtLatitude.ClientID %>’);
    infoLatitude.value = point.lat();
    var infoLongitude = document.getElementById(‘<%= txtLongitude.ClientID %>’);
    infoLongitude.value = point.lng();
    }
    }
    </script>

Pronto! Agora com esse código você já pode clicar no mapa e observar os valores sendo refletidos nas suas caixas de texto. O código javascript é bem simples e auto explicativo, então acho que não tem segredo. Qualquer dúvida, basta deixar um comentário.

Google Maps e ASP.NET – Marcando pontos no mapa

1

Category : Hacks, Tips and Tricks

Algum tempo atrás, ensinei como construir mapas no ASP.NET usando o Google Maps. Agora vou ensinar como fazer com que sua aplicação saiba qual foi o ponto do mapa clicado pelo usuário.

Na verdade isso é bem simples de ser feito. E pode servir perfeitamente para sua aplicação, caso o usuário tenha que interagir com a aplicação para cadastrar uma nova localidade por exemplo.

Vamos levar em conta o seguinte cenário: Um usuário vai selecionar um ponto no mapa e os valores de latitude e longitude desse ponto, irão automaticamente preencher as caixas de texto com as respectivas informações.

Supondo que tenhamos 2 textboxs com os nomes, txtLatitude e txtLongitude como no código abaixo.

<asp:TextBox ID=”txtLatitude” runat=”server”></asp:TextBox>

<asp:TextBox ID=”txtLongitude” runat=”server”></asp:TextBox>

Se você já leu o artigo anterior que ensina como construir o mapa, sabe que teremos um um controle do Google Maps mais ou menos assim:

<artem:GoogleMap ID=”GMaps” runat=”server” OnClientClick=”__showInfo” ></artem:GoogleMap>

A diferença entre esse controle e o que foi falado no artigo anterior, é o evento de OnClientClick. Fazendo isso, estamos dizendo que um javascript chamado “__showInfo()” será executado quando ocorrer algum click por parte do usuário.

Agora, tudo que você precisa é adicionar esse script a sua pagina.

<script type=”text/javascript”>
function __showInfo(overlay, point) {
if (point) {
var infoLatitude = document.getElementById(‘<%= txtLatitude.ClientID %>’);
infoLatitude.value = point.lat();
var infoLongitude = document.getElementById(‘<%= txtLongitude.ClientID %>’);
infoLongitude.value = point.lng();
}
}
</script>

Nesse script, estamos capturando os valores da latitude e longitude  clicados no mapa e atribuindo aos textboxs.

A sintaxe do código abaixo pode parecer estranha para alguns, mas em tempo de execução o ASP.NET irá substituir o valor “<%= txtLatitude.ClientID %>” pelo ID da caixa de texto de latitude.

document.getElementById(‘<%= txtLatitude.ClientID %>’)

Acho que agora você já é capaz de montar sua própria pagina de cadastro de localidades usando o google maps. Qualquer duvida, basta deixar um comentário ou enviar um e-mail.

Google Maps para Iphone agora mostra anúncios pagos.

Category : Geek Talk, Inteligência Digital

mapsADS

Você talvez ainda não tenha notado, pois esse recurso ainda não foi falado aqui no Brasil. Mas ao buscar por algumas localizações nos EUA, já é possível visualizar links patrocinados em meio as ruas que você procura.

Certamente esse era um caminho natural a ser seguido pela Google, que hoje procura todas as formas possíveis de lucrar em cima dos seus serviços de mapa e de vídeo.  Talvez essa idéia tenha vindo da recém adquirida empresa de mapas PlaceBase, uma das poucas empresas que conseguiram sobreviver a era Google Maps e que agora tem suas tecnologias incorporadas ao Google.

Pensando bem, essa é uma ótima idéia, tanto para quem anuncia, quanto para quem usa o mapa. Pense naquele domingo chuvoso que você quer sair para comer, mas não muito longe de casa. Basta uma rápida pesquisa no mapa do seu iphone e irão surgir diversas opções de restaurantes que anunciam seus estabelecimentos ali.

Por outro lado, isso pode se tornar muito chato. Imagine se toda pesquisa que você fizer no mapa, trouxer dezenas de links patrocinados piscando, com push-pins e etc. A poluição visual irá incomodar a partir de um determinado momento.

E você o que acha do serviço de anúncios no Google Maps?

Construindo mapas com C# .NET e Google Maps

4

Category : Geek Talk, Hacks, Tips and Tricks

Você quer fazer um mapa, utilizando a API do Google Maps, mas não quer ou não sabe usar javascript?

As vezes fazer as coisas em javascript se torna difícil. Nem todas as IDEs do mercado oferecem um ambiente de desenvolvimento para javascript amigável. Por isso procurei algumas soluções para fazer algumas brincadeirinhas com o Google Maps, sem precisar implementar nada em javascript.
Eu sou muito familiarizado com C#, por isso parti logo a procura de uma biblioteca .NET que pudesse atender as minhas necessidades.
Achei rapidamente um projeto no codeplex que oferecia exatamente o que eu procurava. Para quem tiver interesse e quiser contribuir com o projeto, segue o link: Google Maps
No site do projeto existem alguns exemplos de como usar o controle colocando o código na pagina ASPX. Mas como na maior parte das vezes, temos as coordenadas de latitude e longitude gravadas no banco, e a partir disso vamos montar o mapa, vou mostrar aqui um passo a passo rápido de como usar o controle.

Passo 1 – Fazer o download da biblioteca e adiciona-la ao projeto:
Depois de fazer o download da Biblioteca que irá fazer a interação com o Google Maps. No seu projeto adicione uma nova referência, clicando com o botão direito, selecionando “Add Reference” e em seguida indo na aba “Browse” e escolhendo o arquivo da biblioteca que você fez o download.

Passo 2 – Alterar o web.confg:
Vá ao web.config e procure a sessão
Você vai encontrar algo parecido com o que segue abaixo:

<pages>

<controls>

<add tagPrefix=”asp” namespace=”System.Web.UI” assembly=”System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″/>

<add tagPrefix=”asp” namespace=”System.Web.UI.WebControls” assembly=”System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″/>

</controls>

</pages>

Adicione então a tag responsavel pelo uso do novo controle em qualquer lugar entre as tags <control> e </control> . Existem outras formas de fazer isso, mas eu considero essa a mais rapida.
A tag é a seguinte:

<add tagPrefix=”artem” namespace=”Artem.Web.UI.Controls” assembly=”Artem.GoogleMap”/>

Passo 3 – Código na página ASPX:
Na sua página ASPX, onde deseja exibir o controle, basta colocar a tag responsável pelo controle. Aconselho colocá-la dentro de uma DIV para melhor controle. O controle dentro de uma DIV, fica assim:

<div>

<artem:GoogleMap ID=”mapa” runat=”server” ></artem:GoogleMap>

</div>

E no topo da pagina, é preciso registrar o controle, assim:
<%@ Register assembly=”Artem.GoogleMap” namespace=”Artem.Web.UI.Controls” tagprefix=”artem” %>

Passo 4 – Código no codebehind:
O codigo a seguir exemplifica a plotagem de um mapa, no tamanho 600×600, com centro na latitude -12.928192 e logintude -38.360996
E com um marcador plotado no mesmo ponto. O detalhe é que esse marcador é clicavel e o texto que ele irá exibir, é um texto qualquer que você pode setar usando tags HTML, inclusive imagens.

protected void Page_Load(object sender, EventArgs e)
{
double latitude = -12.928192;
double longitude = -38.360996;
mapa.Latitude = latitude;
mapa.Longitude = longitude;
mapa.Zoom = 15;
GoogleMarker marcador1 = new GoogleMarker(latitude, longitude);
marcador1.Text = “<h2>Texto</h2><br/>Aqui fica o texto de exemplo”;
marcador1.Clickable = true;
mapa.Markers.Add(marcador1);
mapa.Width = 600;
mapa.Height = 600;
mapa.Key = “SuaKeyDoGoogleMapsAPI”;
}

Exemplo de implementação do Google Maps utilizando C#

Exemplo de implementação do Google Maps utilizando C#

Pronto!
Em 4 passos você conseguiu montar um mapa em C#, utilizando o Google Maps e sem digitar uma linha de javascript.

Em breve irei disponibilizar para download um projeto com exemplo de utilização.

 

You need to log in to vote

The blog owner requires users to be logged in to be able to vote for this post.

Alternatively, if you do not have an account yet you can create one here.

Powered by Vote It Up