html5的地理定位功能getCurrentPosition还能用吗?

html5的地理定位功能getCurrentPosition还能用吗?,第1张

能用,可以实现的,HTML5可以使用手机的GPS信息,利用百度等地图的开放API就可以了。\x0d\x0aHTML5中可以通过IP,WIFI信息,GPS,来实现地理定位,当然相关精度也是有所不同,所以如果要精确导航就得使用GPS信息。\x0d\x0a下面是一段HTML5结合百度地图API来获取位置的代码:\x0d\x0a\x0d\x0a当前定位地址:\x0d\x0a\x0d\x0avar map = new BMap.Map("allmap")\x0d\x0avar geolocation = new BMap.Geolocation()\x0d\x0ageolocation.getCurrentPosition(function(r){\x0d\x0aif(this.getStatus() == BMAP_STATUS_SUCCESS){\x0d\x0amap.panTo(r.point)\x0d\x0a//alert('您的位置:'+r.point.lng+','+r.point.lat)\x0d\x0avar pt = r.point\x0d\x0avar geoc = new BMap.Geocoder()\x0d\x0ageoc.getLocation(pt, function(rs){\x0d\x0avar addComp = rs.addressComponents\x0d\x0a//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber)\x0d\x0a$("#du-gps").text(addComp.district+addComp.street+addComp.streetNumber)\x0d\x0a})\x0d\x0a}\x0d\x0aelse {\x0d\x0aalert('failed'+this.getStatus())\x0d\x0a}\x0d\x0a},{enableHighAccuracy: true})\x0d\x0a 回答于 2022-11-16

网页获取用户位置信息的办法

1 调用百度地图的地图标注功能,通过百度地图API获取对应的经度纬度进而获取地区信息

优点是比较准确,缺点是需要用户自己选择位置

2 通过H5 geolocation属性获取经度和纬度,优点是用户只需要点击允许获取即可,缺点是浏览器获取的经度相对不是很准确而且仍旧需要用户确认。

3 通过用户IP来分析用户位置

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8"/>

    <title>基于浏览器的HTML5查找地理位置</title>

    <!-- 百度API -->

    <script src="http://api.map.baidu.com/api?v=1.2" type="text/javascript"></script>

    <script>        function getLocation(){            var options={

                enableHighAccuracy:true,

                maximumAge:1000

            }            if(navigator.geolocation){                //浏览器支持geolocation                navigator.geolocation.getCurrentPosition(onSuccess,onError,options)

            }else{                //浏览器不支持geolocation

                alert('您的浏览器不支持地理位置定位')

            }

        }        //成功时

        function onSuccess(position){            //返回用户位置

            //经度

            var longitude =position.coords.longitude            //纬度

            var latitude = position.coords.latitude

            alert('经度'+longitude+',纬度'+latitude)            //根据经纬度获取地理位置,不太准确,获取城市区域还是可以的

            var map = new BMap.Map("allmap")            var point = new BMap.Point(longitude,latitude)            var gc = new BMap.Geocoder()

            gc.getLocation(point, function(rs){                var addComp = rs.addressComponents

                alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber)

            })

        }        //失败时

        function onError(error){            switch(error.code){                case 1:

                    alert("位置服务被拒绝")                    break                case 2:

                    alert("暂时获取不到位置信息")                    break                case 3:

                    alert("获取信息超时")                    break                case 4:

                    alert("未知错误")                    break

            }

        }

        window.onload=getLocation    </script>

</head>

<body>

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7146949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存