zoukankan      html  css  js  c++  java
  • Head First HTML5 Chapter 5 地理定位,无处可套,watchme 程序 google Maps

    先写一个关于定位时间测试的程序,看看到底花了多长时间定位的。

    timeout_test.html

     1 <!--
     2 To change this template, choose Tools | Templates
     3 and open the template in the editor.
     4 -->
     5 <!DOCTYPE html>
     6 <html>
     7     <head>
     8         <title></title>
     9         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    10         <script src="timeout_test.js"></script>
    11         <!--
    12         <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
    13           -->
    14         <link rel="stylesheet" href="watchmepan.css">
    15     </head>
    16     <body>
    17         <form>
    18             <input type="button" id="watch" value="Watch Me">
    19             <input type="button" id="clearWatch" value="Clear Watch">
    20         </form>
    21         <div id= "myLocation">
    22             Your location will go here.
    23         </div>
    24         <div id= "distance">
    25             Distance from Silicon Valley will go here.
    26         </div>
    27         <div id="map">
    28         </div>
    29     </body>
    30 </html>

    timeout_test.js

     1 /* 
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 var options = {enableHighAccuracy:true, timeout:100, maxmiumAge:0}; //高精度,100秒内定位,不采用缓存
     6 window.onload = getMyLocation;
     7 
     8 function getMyLocation(){
     9     if (navigator.geolocation){
    10         navigator.geolocation.getCurrentPosition(
    11             displayLocation,
    12             displayError,
    13             options
    14         );
    15     }else{
    16         alert("Oops, no geolocation support!")
    17     }
    18 }
    19 
    20 function displayError(error) {
    21     var errorTypes = {
    22         0: "Unknown error",
    23         1: "Permission denied",
    24         2: "Position is not available",
    25         3: "Request timeout"
    26     };
    27     var errorMessage = errorTypes[error.code];
    28     if (error.code == 0 || error.code == 2) {
    29         errorMessage = errorMessage + " " + error.message;
    30     }
    31     var div = document.getElementById("myLocation");
    32     div.innerHTML = errorMessage;
    33 //---- change the options.timeout to re-locate until success
    34     options.timeout += 100;
    35     navigator.geolocation.getCurrentPosition(
    36         displayLocation,
    37         displayError,
    38         options);
    39     div.innerHTML += "......checking again with timeout="+options.timeout;
    40 
    41 }
    42 
    43 function displayLocation(position){
    44     var latitude = position.coords.latitude;
    45     var longitude = position.coords.longitude;
    46     var div = document.getElementById("myLocation");
    47     div.innerHTML = "You are at latitude: "+ latitude+" Longitude: "+ longitude;
    48     div.innerHTML += " found in "+ options.timeout+ " million seconds";
    49 
    50 }

    myLoc.css

     1 /*
     2  * myLoc.css
     3  *
     4 */
     5 
     6 body {
     7     font-family: Arial, Helvetica, sans-serif;
     8     margin: 10px;
     9 }
    10 form, div#location, div#distance {
    11     padding: 5px;
    12 }
    13 
    14 div#map {
    15     margin: 5px;
    16     width: 400px;
    17     height: 400px;
    18     border: 1px solid black;
    19 }
    20 
    21 
    22 /*
    23  * Use this CSS to make the map full screen
    24  *
    25 
    26 html, body, div#map {
    27      100%;
    28     height: 100%;
    29     margin: 0px;
    30 }
    31 
    32 form {
    33     position: absolute;
    34     top: 40px;
    35     right: 10px;
    36     z-index: 2;
    37 }
    38 
    39 div#location, div#distance {
    40     display: none;
    41 }
    42  */

    执行结果是:

    通过上图我们可以看到,在如用了一共300ms的时间。

    1.你的应用调用watchPosition程序,成功一个成功处理函数。

    2.watchPosition在后台不断监视着你的位置

    3.你的位置改变时,watchPosition调用成功处理函数来报告你的位置

    4.watchPosition继续见识你的位置(并向成功处理程序报告),直至你调用clearWatch将它清除

    完成这个HTML5定位的应用!!!

    应用的目的是,时刻看到该用户,运动时候的轨迹。

    我们采用这种方法,用的是新建marker的方法。

    思路----就是按照一定频率,在地图上确定位置,并且做上marker,就可以连起来,成为一个运动轨迹。

    这个HTML5 位置移动的应用!

  • 相关阅读:
    ajax中网页传输(三)XML——下拉列表显示练习
    ajax中网页传输(二)JSON——下拉列表显示练习
    ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习
    ajax讲解:“创建用户”和“用户登录”练习
    JSON讲解和“弹窗”
    jQuery讲解
    Victor and String[Bestcoder #52 1004](回文树)
    回文串[APIO2014](回文树)
    回文子串计数[自创](回文树)
    随机序列[SHOI2016](找规律+线段树)
  • 原文地址:https://www.cnblogs.com/spaceship9/p/2999294.html
Copyright © 2011-2022 走看看