【发布时间】: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 下运行?如果您在 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
标签: javascript jquery html geolocation