ASP
.NET - Usando o Google Maps - Marcadores e Rotas (C#)
![]() |
Já escrevi diversos artigos sobre como usar o Google Maps para VB .NET, ASP .NET com JavaScript, com API sem usar a API. |
E hoje eu vou mostrar como usar o Google Maps com ASP .NET usando a linguagem C#.
A primeira coisa a fazer para poder usar a API do Google Maps é acessar a página da API no site do Google e ler com atenção como você faz para se registrar e obter uma chave de utilização.
Acesse o site neste link: https://developers.google.com/maps/signup?hl=pt-BR
Após fazer o seu registro e obter a chave de utilização você já pode usar o Google Maps.
Para isso basta criar um arquivo HTML contendo o código abaixo:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=SUA_CHAVE_DA_API&sensor=true">
</script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-15.768466,-47.929459),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
|
![]() |
Este pequeno arquivo HTML esta usando código JavaScript e fazendo uma chamada a API do Google Maps passando a informação da chave (Key) obtida no site do Google.
Outra informação importante são as coordenadas da Latitude e longitude informadas em
var
mapOptions = {
center: new google.maps.LatLng(-15.768466,-47.929459),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
Para exibir o mapa de uma determinada localidade você precisa informar os valores para latitude e longitude . Para obter esses valores você pode abrir o Google Maps localizar o local e clicar com o botão do mouse sobre ele no mapa. A seguir clique na opção O que é isto ? no menu suspenso para obter os valores na caixa de texto conforme mostra a figura abaixo:
![]() |
Este exemplo é o Hello World do Google Maps.
E como fazemos para usar o mesmo recurso em uma aplicação ASP .NET com a linguagem C# ?
Usando o Google Maps com ASP .NET e C#
Nos exemplos a seguir eu vou usar a última versão da API - Google Maps API V3.
Para obter mais informações sobre como usar esta versão e os termos de uso acesse o link: https://developers.google.com/maps/documentation/javascript/usage?hl=pt#usage_limits ou neste link https://developers.google.com/maps/faq?hl=pt-br
1- Usando Google Maps
Vamos agora criar um novo projeto usando o Visual Web Developer 2010 Express Edition.
Abra o Visual Web Developer 2010 Express e no menu File clique em New Project;
A seguir selecione Visual C# e o template ASP .NET Empty Web Application informando o nome UsandoGoogleMaps;
![]() |
No menu Project clique em Add New Item e selecione o template Web Form e informe o nome GoogleMaps1.aspx:
![]() |
A seguir inclua o código abaixo no arquivo GoogleMaps1.aspx no modo Source:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GoogleMaps1.aspx.cs" Inherits="UsandoGoogleMaps.GoogleMaps1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Google Maps</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type ="text/javascript">
function InicializaMapa() {
var latlng = new google.maps.LatLng(-15.682543, -47.978874);
var opcoes = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mapa = new google.maps.Map(document.getElementById("mapa"), opcoes);
}
window.onload = InicializaMapa;
</script>
<h2>Usando Google Maps </h2>
<div id ="mapa" style="width: 600px; top: 68px; left: 272px; position: absolute; height: 400px" ></div>
</div>
</form>
</body>
</html>
|
Executando o projeto iremos obter o seguinte mapa:
![]() |
Neste exemplo temos o código JavaScript quase idêntico ao exemplo HTML a diferença é que nesta versão da API não temos que fornecer o id para a chave.
2- Usando Google Maps - definindo marcas no mapa
A classe Marker fornece uma opção para exibir um marcador para o usuário para um determinado local. O exemplo a seguir mostra como criar um marcador simples.
No menu Project clique em Add New Item e selecione o template Web Form e informe o nome GoogleMapsMarcador.aspx:
A seguir inclua o código abaixo no arquivo GoogleMapsMarcador.aspx no modo Source:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GoogleMapsMarcador.aspx.cs" Inherits="UsandoGoogleMaps.GoogleMapsMarcador" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Google Maps - Marcadores</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type ="text/javascript">
var mapa;
function IniciaMapa() {
var latlng = new google.maps.LatLng(-15.682543, -47.978874);
var Opcoes = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
mapa = new google.maps.Map(document.getElementById("mapa"), Opcoes);
var marker = new google.maps.Marker
(
{
position: new google.maps.LatLng(-15.682543, -47.978874),
map: mapa,
title: 'Clique aqui'
}
);
var infowindow = new google.maps.InfoWindow({
content: 'Localização:<br/>Nome Pais:<br/>Latit./Longit:'
});
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(mapa, marker);
});
}
window.onload = IniciaMapa;
</script>
<h2>Macoratti .net - Usando marcadores</h2>
<div id ="mapa" style="height: 522px; width: 553px; top: 60px; left: 126px; position: absolute;"></div>
</div>
</form>
</body>
</html>
|
Abaixo vemos o resultado exibindo o marcador e a caixa de texto quando o usuário clica sobre o marcador:
![]() |
3- Usando Google Maps - Obtendo a rota entre dois endereços
Podemos usar a API para obter o caminho entre dois endereços bem como o detalhamento da rota sugerida com a distância percorrida.
No menu Project clique em Add New Item e selecione o template Web Form e informe o nome Caminhos.aspx:
A seguir inclua o código abaixo no arquivo Caminhos.aspx no modo Source:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Caminhos.aspx.cs" Inherits="UsandoGoogleMaps.Caminhos" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script language="javascript" type="text/javascript">
var exibirCaminhos;
var servicoDirecao = new google.maps.DirectionsService();
function IniciarMapa() {
exibirCaminhos = new google.maps.DirectionsRenderer();
var latlng = new google.maps.LatLng(-15.682543, -47.978874);
var opcoes =
{
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mapa = new google.maps.Map(document.getElementById("mapa"), opcoes);
exibirCaminhos.setMap(mapa);
exibirCaminhos.setPanel(document.getElementById('direcaopainel'));
var controle = document.getElementById('controle');
controle.style.display = 'block';
}
function calcularRota() {
var start = document.getElementById('valorinicio').value;
var end = document.getElementById('valorfinal').value;
var request = {
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
servicoDirecao.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
exibirCaminhos.setDirections(response);
}
});
}
function Button1_onclick() {
calcularRota();
}
window.onload = IniciarMapa;
</script>
<table id ="controle">
<tr>
<td>
<table>
<tr>
<td>De:</td>
<td>
<input id="valorinicio" type="text" style="width: 305px" /></td>
</tr>
<tr>
<td>Para:</td>
<td><input id="valorfinal" type="text" style="width: 301px" /></td>
</tr>
<tr>
<td align ="right">
<input id="Button1" type="button" value="Obter Caminho" onclick="return Button1_onclick()" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign ="top">
<div id ="direcaopainel" style="height: 390px;overflow: auto" ></div>
</td>
<td valign ="top">
<div id ="mapa" style="height: 390px; width: 489px"></div>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
|
A seguir temos a execução mostrando um exemplo de utilização da página ASP .NET:
![]() |
Existem muitos outros recursos disponíveis na API do Google que poderíamos mostrar mas creio que os exemplos acima são suficientes para você se situar.
Pegue o projeto completo
aqui:
UsandoGoogleMaps.zip
João 14:15
Se me amardes, guardareis os meus mandamentos.João 14:16
E eu rogarei ao Pai, e ele vos dará outro Ajudador, para que fique convosco para sempre.João 14:17
a saber, o Espírito da verdade, o qual o mundo não pode receber; porque não o vê nem o conhece; mas vós o conheceis, porque ele habita convosco, e estará em vós.João 14:18
Não vos deixarei órfãos; voltarei a vós.Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#