基于地理编码的IP中心Google地图 [英] Center Google Map Based on geocoded IP
问题描述
有没有一个简单的方法可以使用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屋!