2013-01-03 414 views
0

所以我正在嘗試這個谷歌地圖與地理位置的東西。我真的只是複製粘貼的代碼,但我沒有設法讓地圖出現。瀏覽器甚至要求我獲取我的位置,但地圖不顯示。 (哦,我甚至使用谷歌API鍵調用它)谷歌地圖與地理位置沒有出現

<!DOCTYPE html> 
<html lang="en-gb" dir="ltr"> 
<head> 
<style type="text/css"> 
<meta charset="utf-8"> 
<title>Geolocation API getCurrentPosition example</title> 
<style> 
<script src="http://maps.google.com/maps/api/js?key=AIzaSyDBy_moo4fAc2Z2DmSLBayqjry_VkthwyU&sensor=false"> 
<script type="text/javascript" src="http://maps.gstatic.com/intl/pt_pt/mapfiles/api-3/10/19/main.js"> 
<script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/cat_js/intl/pt_pt/mapfiles/api-3/10/19/%7Bcommon,util,stats%7D.js"> 
<script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/cat_js/intl/pt_pt/mapfiles/api-3/10/19/%7Bmap,marker,infowindow%7D.js"> 
<script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/cat_js/intl/pt_pt/mapfiles/api-3/10/19/%7Bonion%7D.js"> 
<script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/cat_js/intl/pt_pt/mapfiles/api-3/10/19/%7Bcontrols%7D.js"> 
</style> 
</head> 

<body> 
<p>Click on the marker for position information.</p> 
<div id="map" style="position: relative; background-color: rgb(229, 227, 223); overflow: hidden;"> 
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;"> 
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 1; cursor: url("http://maps.gstatic.com/mapfiles/openhand_8_8.cur"), default;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 200;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 201;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 202;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 100;"> 
<div style="position: absolute; left: 0px; top: 0px; z-index: 0;"> 
</div> 
</div> 
<div style="margin: 2px 5px 2px 2px; z-index: 1000000; position: absolute; left: 0px; bottom: 0px;"> 
<div class="gmnoprint" style="z-index: 1000001; position: absolute; right: 0px; bottom: 0px;"> 
<div style="background-color: white; padding: 15px 21px; border: 1px solid rgb(171, 171, 171); font-family: Arial,sans-serif; color: rgb(34, 34, 34); box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.2); z-index: 10000002; display: none; width: 256px; height: 148px; position: absolute; left: 475px; top: 310px;"> 
<div class="gmnoscreen" style="position: absolute; right: 0px; bottom: 0px;"> 
<div class="gmnoprint" style="display: none; font-size: 10px; height: 17px; background-color: rgb(245, 245, 245); border: 1px solid rgb(220, 220, 220); line-height: 19px; position: absolute; right: 0px; bottom: 0px;"> 
<div class="gmnoprint" style="margin: 5px; -moz-user-select: none; position: absolute; left: 0px; top: 0px;" controlwidth="78" controlheight="356"> 
<div class="gmnoprint" style="margin: 5px; z-index: 0; position: absolute; cursor: pointer; right: 0px; top: 0px;"> 
</div> 
</div> 
<script> 
if (navigator.geolocation) { 
var timeoutVal = 10 * 1000 * 1000; 
navigator.geolocation.getCurrentPosition(
displayPosition, 
displayError, 
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 } 
); 
} 
else { 
alert("Geolocation is not supported by this browser"); 
} 
function displayPosition(position) { 
var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
var options = { 
zoom: 10, 
center: pos, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
var map = new google.maps.Map(document.getElementById("map"), options); 
var marker = new google.maps.Marker({ 
position: pos, 
map: map, 
title: "User location" 
}); 
var contentString = "<b>Timestamp:</b> " + parseTimestamp(position.timestamp) + "<br/><b>User location:</b> lat " + position.coords.latitude + ", long " + position.coords.longitude + ", accuracy " + position.coords.accuracy; 
var infowindow = new google.maps.InfoWindow({ 
content: contentString 
}); 
google.maps.event.addListener(marker, 'click', function() { 
infowindow.open(map,marker); 
}); 
} 
function displayError(error) { 
var errors = { 
1: 'Permission denied', 
2: 'Position unavailable', 
3: 'Request timeout' 
}; 
alert("Error: " + errors[error.code]); 
} 
function parseTimestamp(timestamp) { 
var d = new Date(timestamp); 
var day = d.getDate(); 
var month = d.getMonth() + 1; 
var year = d.getFullYear(); 
var hour = d.getHours(); 
var mins = d.getMinutes(); 
var secs = d.getSeconds(); 
var msec = d.getMilliseconds(); 
return day + "." + month + "." + year + " " + hour + ":" + mins + ":" + secs + "," + msec; 
} 
</script> 
<div id="YontooInstallID" style="display: none;">E5458842-7EDA-B28E-B9F2-4CFB1EEAD44D</div> 
<div id="Y2PluginIds" style="display: none;">Y2:E5458842-7EDA-B28E-B9F2-4CFB1EEAD44D</div> 
</body> 
</html> 
</style> 
</head> 
<body> 
<div id="YontooInstallID" style="display: none;">E5458842-7EDA-B28E-B9F2-4CFB1EEAD44D</div> 
<div id="Y2PluginIds" style="display: none;">Y2:E5458842-7EDA-B28E-B9F2-4CFB1EEAD44D</div> 
</body> 
</html> 
+0

你不應該在'style'標籤中有'meta'' title'和'script'標籤。如果你解決這個問題可能會起作用。 –

+0

將標籤關閉,但仍然沒有。它實際上變得更糟。 :P – user1847226

回答

0

而且你必須關閉所有的標籤(腳本,股利,風格)。例如:

<script> with </script> 
+0

事情是(如果你實際上試圖複製n'粘貼代碼並在瀏覽器上嘗試它),如果我採用包裝第一個元標題和腳本的初始樣式,則頁面將停止工作。我也試着做你剛剛說的話,它對我沒有任何作用。 (我從以下網址複製了代碼:http://html5doctor.com/demos/geolocation/geolocation-getcurrentposition-example.html) – user1847226

0

Your example複製完美。

你的代碼在開始時至少有20行,結尾約9。根據 Google Maps JavaScript API v3不需要API密鑰正常工作。不過,我們強烈建議您使用API​​控制檯密鑰加載Maps API,以便您監控應用的Maps API使用情況。

<!DOCTYPE html> 
<html dir="ltr" lang="en-gb"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Geolocation API getCurrentPosition example</title> 
    <style> 
     #map { width:100%; height:800px; } 
    </style> 
    <script src="http://maps.google.com/maps/api/js?sensor=false"></script> 
</head> 
<body> 
    <p>Click on the marker for position information.</p> 
    <div id="map"></div> 
    <script> 
     if (navigator.geolocation) { 
      var timeoutVal = 10 * 1000 * 1000; 
      navigator.geolocation.getCurrentPosition(
       displayPosition, 
       displayError, 
       { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 } 
      ); 
     } 
     else { 
      alert("Geolocation is not supported by this browser"); 
     } 
     function displayPosition(position) { 
      var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
      var options = { 
       zoom: 10, 
       center: pos, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById("map"), options); 
      var marker = new google.maps.Marker({ 
       position: pos, 
       map: map, 
       title: "User location" 
      }); 
      var contentString = "<b>Timestamp:</b> " + parseTimestamp(position.timestamp) + "<br/><b>User location:</b> lat " + position.coords.latitude + ", long " + position.coords.longitude + ", accuracy " + position.coords.accuracy; 
      var infowindow = new google.maps.InfoWindow({ 
       content: contentString 
      }); 
      google.maps.event.addListener(marker, 'click', function() { 
       infowindow.open(map,marker); 
      }); 
     } 
     function displayError(error) { 
      var errors = { 
       1: 'Permission denied', 
       2: 'Position unavailable', 
       3: 'Request timeout' 
      }; 
      alert("Error: " + errors[error.code]); 
     } 
     function parseTimestamp(timestamp) { 
      var d = new Date(timestamp); 
      var day = d.getDate(); 
      var month = d.getMonth() + 1; 
      var year = d.getFullYear(); 
      var hour = d.getHours(); 
      var mins = d.getMinutes(); 
      var secs = d.getSeconds(); 
      var msec = d.getMilliseconds(); 
      return day + "." + month + "." + year + " " + hour + ":" + mins + ":" + secs + "," + msec; 
     } 
    </script> 
</body> 
</html>