我試圖複製以下示例。 http://viralpatel.net/blogs/html5-geolocation-api-tutorial-example/使用HTML5地理位置API未顯示標記的Google地圖
我無法在瀏覽器上查看緯度和經度以外的地圖。當我點擊上面鏈接中的「在地圖上顯示我的位置」按鈕時,也是如此。
我錯過了這個HTML中的東西嗎?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var map = null;
function showlocation() {
// One-shot position request.
navigator.geolocation.getCurrentPosition(callback, errorHandler);
}
function callback(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
document.getElementById('latitude').innerHTML = lat;
document.getElementById('longitude').innerHTML = lon;
var latLong = new google.maps.LatLng(lat, lon);
var marker = new google.maps.Marker({
position: latLong
});
marker.setMap(map);
map.setZoom(8);
map.setCenter(marker.getPosition());
}
google.maps.event.addDomListener(window, 'load', initMap);
function initMap() {
var mapOptions = {
center: new google.maps.LatLng(0, 0),
zoom: 1,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("mapdiv"),
mapOptions);
}
function errorHandler(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unknown error occurred.");
break;
}
}
</script>
</head>
<body>
<center>
<input type="button" value="Show my location on Map"
onclick="javascript:showlocation()" /> <br />
</center>
Latitude: <span id="latitude"></span> <br />
Longitude: <span id="longitude"></span>
<br /><br />
<div>Map</div>
<div id="mapdiv" />
</body>
</html>
您的意思是,我只能通過啓用SSL的站點使用它嗎? –
我試着在我的VS本地主機上,在IE 11上啓用https。問題似乎相同。在Chrome上,我對https有一些問題,它說cerficiate不被信任。 –
您只能在安全站點的Chrome中使用它,其他瀏覽器(特別是IE)可能沒有此限制。小提琴是否適合你?博客示例是否適合您?看看瀏覽器中的控制檯,應該有一些跡象表明它不工作的原因。 – geocodezip