Это на самом деле довольно просто. Приведенный выше пример из Dive to HTML неполон, так как не показывает функцию show_map, которая является созданной пользователем функцией, которая фактически читает входящие данные и что-то с ними делает. Вот более полный пример:
<!DOCTYPE HTML>
<html lang = "en">
<head>
<title>location.html</title>
<meta charset = "UTF-8" />
<script type = "text/javascript">
//<![CDATA[
function getLoc(){
navigator.geolocation.getCurrentPosition(showMap);
} // end getLoc
function showMap(position){
var lat = position.coords.latitude;
var long = position.coords.longitude;
var linkUrl = "http://maps.google.com?q=" + lat + "," + long;
var mapLink = document.getElementById("mapLink");
mapLink.href = linkUrl;
var embedMap = document.getElementById("embedMap");
embedMap.src = linkUrl + "&z=16&output=embed";
} // end showMap
//]]>
</script>
</head>
<body onload = "getLoc()">
<h1>Geolocation Demo</h1>
<p>
<a id = "mapLink"
href = "http://maps.google.com">click for a map</a>
</p>
<iframe id = "embedMap"
width="800"
height="500"
frameborder="0"
scrolling="no"
marginheight="0"
marginwidth="0"
src= "">
</iframe><br />
</body>
</html>
В этом примере (из моей будущей книги по HTML5) есть функция getLoc (), вызываемая механизмом загрузки тела. При этом используется функция navigator.geolocation.getCurrentPosition () для запроса вектора разрешений. Появится диалоговое окно с разрешениями, которое будет отклонено, если пользователь решит не делиться своей текущей позицией. Если пользователь подыгрывает, указанная функция обратного вызова (в моем случае showMap) будет отображаться.
Функция обратного вызова автоматически принимает особый объект позиции в качестве единственного параметра. Этот объект имеет ряд потенциально полезных атрибутов, но широта и долгота являются наиболее полезными. Вы можете использовать эти значения, чтобы просто распечатать текущую позицию. Вы также можете объединить эти значения в URL-адрес карт Google, чтобы получить быструю карту Google текущего местоположения. Я также встроил карту Google в свою текущую страницу и изменил URL-адрес встроенной (iframe) карты, чтобы получить немедленный отзыв.
Надеюсь, это поможет!