En el caso de que tengas en tu Base de Datos un Tabla de tiendas por ejemplo, las cuales tienen una ubicación, una latitud y una longitud por cada una y necesitas mostrarlas en un mapa, podemos integrar muy fácilmente Google Maps con ASP.NET mediante un Server Tag y un jQuery plugin Gmap3.
Descargamos el jQuery Plugin de la página
En nuestra página Default.aspx tendríamos por ejemplo la siguiente configuración(ver la documentación del Plugin para una configuración mas especifica)
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
-
- <!DOCTYPE html>
-
- <html>
- <head id="Head1" runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div id="gmap" style="height: 600px; width: 500px;"></div>
- </form>
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
- <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
- <script src="gmap3.min.js" type="text/javascript"></script>
- <script>
- $('#gmap').gmap3({ // Inicializamos nuestra configuracin del jQuery Plugin
- map: {
- options: {
- center: [4.061536, -72.886734] // Centro del Mapa (Latitud,Longitud)
- }
- },
- marker: {
- values: [
- <%= markers %> // Ubicaciones de nuestras tiendas
- ]
- }
- });
- </script>
- </body>
- </html>
Podemos observar que estamos utilizando un Server Tag el cual se ejecutará después de cargar el Page_Load, con la ubicación de nuestras tiendas.
En el Page_Load nos conectamos con nuestra Base de Datos y formamos la estructura que requiere el jQuery Plugin
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using Core;
-
- public partial class _Default : System.Web.UI.Page
- {
- protected string markers { get; set; }
- protected void Page_Load(object sender, EventArgs e)
- {
- Manager manager = new Manager(); // Conexion con nuestra Capa de Negocio
- IQueryable<Store> stores = manager.GetStores(); // Retorna una consulta con LINQ por ejemplo
- foreach (var store in stores)
- {
- markers += string.Format("{{ latLng: [{0},{1}] }},", store.StoreLat, store.StoreLng);
- }
- if (stores != null)//Eliminar la ltima coma
- {
- markers = markers.Remove(markers.Length - 1);
- }
- }
- }
Al ejecutar nuestra página en el Browser, podemos observar eficazmente que se han cargado los datos
9999e42c-6de4-4fb8-8f10-aca85773f903|3|5.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04