HTML5 Geolocation 简单示例不起作用

Posted

技术标签:

【中文标题】HTML5 Geolocation 简单示例不起作用【英文标题】:HTML5 Geolocation simple example not working 【发布时间】:2017-02-20 08:03:12 【问题描述】:

在一个非常简单的示例中,我试图获取用户设备的坐标并在网页的谷歌地图上绘制相同的坐标。该示例很简单并且必须运行,但是我发现了一个错误。有人可以帮忙解决吗?

x = navigator.geolocation; 

x.getCurrentPosition(success, failure);

function success(position)

var lat = position.coords.latitude; 
var long = position.coords.longitude; 
document.getElementById('para1').innerhtml = lat;
document.getElementById('para2').innerHTML = long;

var coords = new google.maps.LatLng(lat, long );

var mapOptions = 
	zoom: 15, 
	center: coords, 
	mapTypeId: google.maps.MapTypeId.ROADMAP


var map = new google.maps.Map(document.getElementById('mapDiv'), mapOptions);



function failure()
alert ("It did not work");
<body>
<p id="para1"></p>
<p id="para2"></p>
<div id="mapDiv" style="width:500px;height:500px;"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.googlemap/1.5/jquery.googlemap.min.js"></script> 
</body> 

错误:

参考:https://www.youtube.com/watch?v=obOa8fdJ9aQ

【问题讨论】:

您是否在 HTTPS 下运行?如果您在 Chrome 中检查控制台,您会看到以下消息:getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS 不,“ReferenceError: google is not defined”这就是我得到的全部! ;( 那是因为您需要包含 Google Maps JS API:developers.google.com/maps/documentation/javascript 【参考方案1】:

尝试以下两件事:

    添加此脚本以防它仍然显示错误,谷歌搜索没有密钥的 googlemap 脚本
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=[KEY]" type="text/javascript"></script>
    我在使用 ajax 时遇到了很多问题。代码总是在得到响应之前先编译。因此,请确保等待 ajax 响应,然后控件应该转到下一行。使用等待方法进行测试..解决问题后将其删除。

【讨论】:

【参考方案2】:

我尝试了这个脚本而不是来自 cdnjs 的脚本,并且代码运行良好:

<script src="http://maps.googleapis.com/maps/api/js?sensor=false" ></script> 

我不知道为什么,但这解决了这个问题! ;(

【讨论】:

这是因为您使用的库是为了更轻松地通过 jQuery 与 Google Map 进行交互,而不是创建 Map。您仍然需要使用 Google API 来执行此操作。

以上是关于HTML5 Geolocation 简单示例不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Qt WebKit 和 HTML5 地理定位

HTML5 Geolocation位置信息定位总结

HTML 5 地理定位在 Safari 中不起作用

用HTML5 Geolocation实现一个距离追踪器

html5-geolocation : navigator.geolocation.watchPosition 连续回调

HTML5 Geolocation(地理定位)简介