por Saulo G. Pacífico

ASP.NET - GEO Location GoogleMaps.Subgurim.NET

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Subgurim.Controles;

namespace GEO_Location
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string BaseDeDados = Server.MapPath("~/GEO/GeoLiteCity.dat");
            LookupService geoLocation = new LookupService(BaseDeDados);
            //Com esta linha descomentada, funcionará somente on-line
            Location Local = geoLocation.getLocation(Request.ServerVariables["REMOTE_ADDR"]);
            //Para teste local, basta comentar a linha acima, 
            //inserir o seu IP no parâmetro abaixo e descomentar a linha
            //Location localizacao = servico.getLocation("SEU IP AQUI");
            if (Local != null)
            {
                Response.Write("Cidade: " + Local.city + "<br />");
                Response.Write("País: " + Local.countryName + "<br />");
                Response.Write("Código do País: " + Local.countryCode + "<br />");
                Response.Write("Região: " + Local.region + "<br />");
                Response.Write("Código da Área: " + Local.area_code + "<br />");
                Response.Write("Latitude: " + Local.latitude + "<br />");
                Response.Write("Longitudade: " + Local.longitude + "<br />");
                //Gerando o mapa da localização
                Response.Write(
                    String.Format("<img src=\"http://maps.google.com/staticmap?center={0},{1}&zoom=12&size=512x512&key=AIzaSyAOwOQ3wVuZJucddCYB-pVe_F_0JECU6Mo\">",
                    Local.latitude,
                    Local.longitude)
                    );
            }
            else
            {
                Response.Write("NULL");
            }
        }
    }
}


Uma observação importante é que se você estiver testando localmente, não terá resultado se o Request.ServerVariables["REMOTE_ADDR"] estiver passando REMOTE_ADDR como parâmetro.
Para funcionar local, basta por um IP válido entre aspas dentro dos colchetes.

Exemplo do código funcionando:

Créditos

Saulo Pacífico
www.sgpdesign.com.br
www.facebook.com/SauloPacifico
www.twitter.com/saulopacifico

Links para o site da API, download da dll e download da dados de base de IP'S
Site da API
Download da dll
Download da base de dados de IP'S (Atualizado periodicamente)
 
Download do projeto completo

Comentários

Carregando comentários

Postar um novo comentário



Processando...