獲取地理位置信息

<!DOCTYPE html />
<html>
    <head>
        <meta charset="utf-8" name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <!-- 導入Google Map API腳本文件 -->
        <!--<script type="text/javascript" src=http://maps.google.com/maps/api/js?sensor=false />-->
        <script type="text/javascript">
            function get_location() {
                if (navigator.geolocation) {
                    navigator.geolocation.getCurrentPosition(show_map, handle_error,
                    //可選屬性
                    {
                        enableHighAccuracy: true,
                        //設置緩存有效時間為2分鐘
                        maximumAge: 60 * 1000 * 2,
                        //5秒內未獲取到地理位置信息則返回錯誤
                        timeout:5000
                    });
                }
                else {
                    alert("您的瀏覽器不支持HTML5來獲取地理位置信息");
                }
            };

            //獲取地理位置信息成功處理
            function show_map(position) {
                var latitude = position.coords.latitude;
                var longitude = position.coords.longitude;

                alert("緯度:" + latitude + ",經度:" + longitude);

//                var coords = position.coords;
//                var latlng = new google.masps.LatLng(coords.latitude, coords.longitude);
//                var myOptions = {
//                    zoom: 14,
//                    center:latlng,
//                    mapTypeId:google.maps.MapTypeId.ROADMAP
//                };
//                var mapl = new google.maps.Map(document.getElementById("map"), myOptions);
//                var marker = new google.maps.Marker({
//                    position: latlng,
//                    map:mapl
//                });

//                var infowindow = new google.maps.InfoWindow({
//                    content:"當前位置"
//                });

//                infowindow.open(mapl, marker);
            };

            //獲取地理位置信息失敗處理
            function handle_error(err) {
                switch (err.code) {
                    case 1:
                        alert("地理位置服務被拒絕");
                        break;
                    case 2:
                        alert("暫時獲取不到位置信息");
                        break;
                    case 3:
                        alert("獲取信息超時");
                        break;
                    default:
                        alert("未知錯誤");
                        break;
                }
            };
        </script>
    </head>
    <body οnlοad="get_location()">
        <!--
        Geolocation API:
        HTML5中,為window.navigator對象新增了一個geolocation屬性,可用Geolocation API來訪問

        該屬性存在以下3個方法:
        void getCurrentPosition(onSuccess, onError, options);
        獲取用戶當前的地理位置信息
        onSuccess:獲取當前地理位置信息成功時所執行的回調函數
        onError(可選):獲取當前地理位置信息失敗時所執行的回調函數,含有一個error對象參數
                      code屬性:用戶拒絕了位置服務(值為1)
                               獲取不到位置信息(值為2)
                               獲取信息超時錯誤(值為3)
                      message屬性:一個字符串,包含錯誤信息
        options(可選):一些可選屬性的列表
                      enableHighAccuracy:是否要求高精度地理位置信息,一般設為默認
                      timeout:地理位置信息的獲取操作做一超時限制(單位毫秒)
                      maximumAge:地理位置信息進行緩存有效時間

        int watchCurrentPosition(onSuccess, onError, options);
        持續獲取用戶當前地理位置信息,定期自動獲取
        該方法3個參數與getCurrentPosition方法使用方法相同
        該方法返回一個數字,與setInterval方法返回數字的使用方法類似(返回一timer ID),可被clearWatch方法使用,停止對當前地理位置信息的監視

        void clearWatch(watchID);
        停止對當前用戶的地理位置信息的監視,參數為watchCurrentPosition方法調用返回值

        position對象:
        如果獲取地理位置信息成功,可在onSuccess回調函數中訪問position對象屬性獲得地理位置信息
        latitude屬性:當前地理位置緯度
        longitude屬性:當前地理位置精度
        altitude屬性:當前地理位置海拔高度
        accuracy屬性:獲取的緯度或經度的精度(單位米)
        altitudeAccurancy屬性:獲取的海波高度的精度(單位米)
        heading屬性:設備前進方向
        speed屬性:設備的前進速度(單位米/秒)
        timestamp屬性:獲取地理位置信息時的時間
        -->

        <div id="map" style="width:400px;height:400px"></div>
    </body>
</html>

注:嵌入google地圖失敗,目前原因不明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值