Google Maps e ASP.NET – Marcando pontos no mapa
12/11/2009 in 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.

Bruno said on 29/11/2009
Bom dia
gostei da dica porem se eu tiver apenas o endereço
do local como eu acho a latitude e longitude
por favor preciso disso pra um trabalho la da empresa.se poder me mandar um mail esplicando
ficarei muito grato
BrunoBaudel