使用PHP进行GeoLocation

时间:2015-06-12 05:46:43

标签: php jquery geolocation

我在代码后复制了粘贴,我就是一个菜鸟。所以你能指出错误吗?我很抱歉问这么愚蠢的问题。

<HTML>

<HEAD>
</HEAD>

<BODY>
    <h3>Client side IP geolocation using <a href="http://ipinfo.io">ipinfo.io</a></h3>
    <hr/>
    <div id="ip"></div>
    <div id="address"></div>
    <hr/>Full response: <pre id="details"></pre>
</BODY>

</HTML>
<script type="text/javascript" charset="utf-8">
$.get("http://ipinfo.io", function(response) {
    $("#ip").html("IP: " + response.ip);
    $("#address").html("Location: " + response.city + ", " + response.region);
    $("#details").html(JSON.stringify(response, null, 4));
}, "jsonp");
</script>

3 个答案:

答案 0 :(得分:4)

HtML5使用获取用户纬度,经度并获取当前用户地址。

示例代码:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
    </head>
    <body>
        <p>Address: <div id="address"></div></p>
    </body>
    <script type="text/javascript" charset="utf-8">
    $(document).ready(function() {

        var currgeocoder;

        //Set geo location lat and long
        navigator.geolocation.getCurrentPosition(function(position, html5Error) {
            geo_loc = processGeolocationResult(position);
            currLatLong = geo_loc.split(",");
            initializeCurrent(currLatLong[0], currLatLong[1]);
        });

        //Get geo location result
        function processGeolocationResult(position) {
            html5Lat = position.coords.latitude; //Get latitude
            html5Lon = position.coords.longitude; //Get longitude
            html5TimeStamp = position.timestamp; //Get timestamp
            html5Accuracy = position.coords.accuracy; //Get accuracy in meters
            return (html5Lat).toFixed(8) + ", " + (html5Lon).toFixed(8);
        }

        //Check value is present or
        function initializeCurrent(latcurr, longcurr) {
            currgeocoder = new google.maps.Geocoder();

            console.log(latcurr + "-- ######## --" + longcurr);

            if (latcurr != '' && longcurr != '') {
                //call google api function
                var myLatlng = new google.maps.LatLng(latcurr, longcurr);
                return getCurrentAddress(myLatlng);
            }
        }

        //Get current address
        function getCurrentAddress(location) {
            currgeocoder.geocode({
                'location': location
            }, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    console.log(results[0]);
                    $("#address").html(results[0].formatted_address);
                } else {
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });
        }
    });
    </script>
</html>

演示:http://jsfiddle.net/hmy7e0fs/

答案 1 :(得分:0)

<HTML>
<HEAD>

</HEAD>
<script src="http://code.jquery.com/jquery-2.1.4.min.js" type="text/javascript" ></script>
<script src="http://js.maxmind.com/js/geoip.js" type="text/javascript" ></script>
<script type="text/javascript" charset="utf-8">


$.get("http://ipinfo.io", function (response) {
alert('hello');
    $("#ip").html("IP: " + response.ip);
    $("#address").html("Location: " + response.city + ", " + response.region);
    $("#details").html(JSON.stringify(response, null, 4));
}, "jsonp");
</script>
<BODY>
<h3>Client side IP geolocation using <a href="http://ipinfo.io">ipinfo.io</a></h3>

 <hr/>
<div id="ip"></div>
<div id="address"></div>
<hr/>Full response: <pre id="details"></pre>
</BODY>
</HTML>

答案 2 :(得分:0)

使用此:

<?php 
$ip = $_SERVER['REMOTE_ADDR'];
$locationArray = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $ip));
echo '<pre>';
print_r($locationArray);

?>

我希望geoplugin比http://ipinfo.io更好,因为每分钟的请求限制是最大的。

有关详细信息,请访问:http://www.geoplugin.com/