基于地理编码的IP中心Google地图 [英] Center Google Map Based on geocoded IP

查看:142
本文介绍了基于地理编码的IP中心Google地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上每当有人打开我的(Google)地图时,我想将其默认为大致位置。



有没有一个简单的方法可以使用Google的API或做我必须编写一个自定义代码(这是基于python的应用程序)?

解决方案

查看 http://www.ipinfodb.com/ 。通过传递其服务的IP地址可以获得纬度和经度值。我最近做了一件事,我创建了一个简单的服务,抓住当前的IP地址,然后将其传递给服务(api / location / city只是一个卷曲ipinfodb服务的服务)。使用jquery:

  $。get(api / location / city,null,function(data,textStatus)
{
if(data!= null)
{
if(data.Status ==OK)
{
var lat = parseFloat(data.Latitude );
var lng = parseFloat(data.Longitude);

$ .setCenter(lat,lng,$ .settings.defaultCityZoom);

manager = new MarkerManager(map,{trackMarkers:true});

var e = $ .createUserMarker(map.getCenter());
e.bindInfoWindowHtml($(#marker-content-event ).html());

var m = [];
m.push(e);

// map.addOverlay(e);
manager.addMarkers(m,10);
manager.refresh();
}
else
{
$ .setCenter($。 defaultLat,$ .settings.defaultLng,$ .settings.defaultZoom);
}
}
},json);

这里的关键是这一行:

  $。setCenter(lat,lng,$ .settings.defaultCityZoom); 

只需将中心设置为服务调用结果的lat / lng。


Basically whenever someones opens up my (Google) map I want it default to their approximate location.

Is there an easy way to do it with Google's API or do I have to write a custom code (this is python based app)?

解决方案

Check out http://www.ipinfodb.com/. You can get a latitude and longitude value by passing their services an IP address. I did something recently where I created a simple service that grabbed the current IP address and then passed it to the service ("api/location/city" is just a service that curls the ipinfodb service). Using jquery:

$.get("api/location/city", null, function(data, textStatus)
{        
    if (data != null)
    {
        if (data.Status == "OK")
        {
            var lat = parseFloat(data.Latitude);
            var lng = parseFloat(data.Longitude);

            $.setCenter(lat, lng, $.settings.defaultCityZoom);

            manager = new MarkerManager(map, {trackMarkers : true });

            var e = $.createUserMarker(map.getCenter());
            e.bindInfoWindowHtml($("#marker-content-event").html());

            var m = [];
            m.push(e);

            // map.addOverlay(e);
            manager.addMarkers(m, 10);
            manager.refresh();
        }
        else
        {
            $.setCenter($.settings.defaultLat, $.settings.defaultLng, $.settings.defaultZoom);
        }
    }
}, "json");

The key here is this line:

$.setCenter(lat, lng, $.settings.defaultCityZoom);

Just setting the center to the lat/lng of the result of the service call.

这篇关于基于地理编码的IP中心Google地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆