地理位置,尝试了各种选项但失败了

时间:2013-10-11 16:25:03

标签: javascript php geolocation

我有两个IP Geolocation解决方案,但代码似乎不适用于这两种解决方案。

解决方案1:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
    $.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>
</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>

这个在屏幕上显示“完全响应”,因此代码的结果(位置)应该在那里,但它是空白的。

解决方案2:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="gears_init.js"></script>
<script type="text/javascript">
var geo = google.gears.factory.create('beta.geolocation');

function updatePosition(position) {
  alert('Current lat/lon is: ' + position.latitude + ',' + position.longitude);
}

function handleError(positionError) {
  alert('Attempt to get location failed: ' + positionError.message);
}

geo.getCurrentPosition(updatePosition, handleError);
</script>
</head>
<body>

</body>
</html>

第二个解决方案来自这里的一个问题,但是那个人有这个代码工作,但想要计算两个位置之间的距离,但我似乎无法使基本功能工作,它显示一个空白页,没有警报或其他任何内容。

谁能帮助我解决这些问题。解决其中一个就足够了:))

1 个答案:

答案 0 :(得分:1)

第一个解决方案不起作用,因为您使用jQuery的$ object,但尚未首先导入jQuery。这是有效的代码:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript">
    $.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>
</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>

至于第二个解决方案,它似乎使用的是Google Gears API,它似乎已不再可用 - 所以你不会有任何运气。