在谷歌地图上显示IP位置

时间:2010-11-19 23:24:13

标签: django google-maps

当用户登录到我的django应用程序时,我试图从IP地址获取用户位置。 但不知道该怎么做。我正在使用GeoIP来达到这个目的。 我的问题是 如何为此目的编写视图,如何在谷歌地图上显示IP的位置。

2 个答案:

答案 0 :(得分:1)

我猜你在谈论如何绘制标记,导致GeoIP看起来为你提供经度和纬度。 对于绘图标记教程,您可以在这里查看。

对于谷歌地图的v2 Api

http://econym.org.uk/gmap/basic1.htm

对于谷歌地图的v3 Api。

http://code.google.com/apis/maps/documentation/javascript/tutorial.html

答案 1 :(得分:0)

在Google地图上显示地理位置,您可以使用http://freegeoip.net/json/上的免费地理位置服务并绘制地图点,如下所示:

    var geoLocations = getLocations();
    var center = getCenter();
    var map = new google.maps.Map(document.getElementById('googlemap'), 
    {
      zoom: 1,
      center: new google.maps.LatLng(center[0], center[1]),
      mapTypeId: google.maps.MapTypeId.SATELLITE 
    });
    var markerInfo = new google.maps.InfoWindow();
    var pointMarker, i;
    // Go through the location array...
    for (i = 0; i < geoLocations.length; i++) 
    { 
        // Add the marker.
        pointMarker = new google.maps.Marker(
            {
                position: new google.maps.LatLng(geoLocations[i][1], geoLocations[i][2]),
                map: map
            });
        // Add the information window when clicking the marker
        google.maps.event.addListener(pointMarker, 'click', (function(pointMarker, i) 
        {       
            return function() 
            {
                markerInfo.setContent(geoLocations[i][0] + ' -> ' + geoLocations[i][3]);
                markerInfo.open(map, pointMarker);
            }
        })(pointMarker, i));

        // Zoom on double click
        google.maps.event.addListener(pointMarker, 'dblclick', (function(pointMarker, i) 
        {       
            return function() 
            {
                map.setZoom(17);
            }
        })(pointMarker, i));            
    }

使用python调用免费geoip服务的示例代码,您可以在此处找到: https://github.com/jamesrep/geoipard