Geolocation

Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法。且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之后就可以使用这一浏览器内置的API了。该API接口提供的用户地理位置信息还算蛮详细的,经纬度啊,海拔啊,精确度,移动速度啊都是可以获取的。

Geolocation 在PC端通过IP地址获取地理位置信息,在移动端则通过GPS获取地理位置信息

首先通过一段代码来获得用户的地理位置信息
Code

       if(navigator.geolocation){
            navigator.geolocation.getCurrentPosition(function(ev){
                console.log(ev.coords);
            },function(ev){
                alert('code'+ev.code+'----'+ev.message);//错误的代码与信息
            });
        }else{
            alert('不支持geolocation');
        }

在代码中通过事件对象ev.coords可以得到地理位置信息,其中包含了以下一些属性:


geo.jpg

这里,除了获取用户地理位置信息外,也可以监听位置信息

document.addEventListener('DOMContentLoaded',function(){
            var timer = null;
            var oBtn1 = document.getElementById('btn1');
            var oBtn2 = document.getElementById('btn2');
            oBtn1.onclick = function(){
                if(navigator.geolocation){
                    timer =  navigator.geolocation.watchPosition(function(ev){
                        console.log(ev.coords);
                    },function(ev){
                        alert('code'+ev.code+'----'+ev.message);
                    });
                }else{
                    alert('不支持geolocation');
                }
            };
            oBtn2.onclick = function(){
                navigator.geolocation.clearWatch(timer);
            };
        },false);

当然除此之外,还可以通过百度地图提供的接口创建地图,进行项目开发之类的。
Code:

<script>
        document.addEventListener('DOMContentLoaded',function(){
            var oT=document.getElementById('txt'); 
            var oBtn=document.getElementById('btn');
            var map=new BMap.Map("Box");
            var oPointer=null;
            oBtn.onclick=function(){
                if(navigator.geolocation){
                    navigator.geolocation.watchPosition(function(ev){
                        var longitude=ev.coords.longitude;
                        var latitude=ev.coords.latitude;
                        oPointer = new BMap.Point(longitude,latitude);
                        map.centerAndZoom(oPointer,15);
                        var marker = new BMap.Marker(oPointer);            
                        map.addOverlay(marker);
                        var local =  new BMap.LocalSearch(map, {renderOptions: {map: map, autoViewport: false}});
                        local.searchNearby(oT.value,oPointer,1000);
                    },function(ev){
                        alert('错误状态码'+ev.code+'错误信息+ev.message);
                    })
                }else{
                     alert('不支持geolocation');
                }
            };
        },false);
    </script>

具体内容参考http://www.jianshu.com/p/f2dc13cb6af1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTML5 Geolocation API,它允许用户在 web 应用程序中共享他们的的位置,使其能够享受位置感知...
    linda102阅读 6,367评论 0 1
  • 当今技术定位的方式,有位置信息来源定位,IP定位,GPS定位,WIFI定位,手机定位和自定义定位。本文通过获取经纬...
    dovlie阅读 11,397评论 0 8
  • Geolocation API HTML5 中,window.navigator 对象新增了一个 geolocat...
    游学者灬墨槿阅读 2,713评论 0 0
  • HTML5 Geolocation API是新增的地理位置应用程序接口。它提供了一个可以准确感知浏览器用户当前地理...
    kylelin阅读 9,090评论 7 11
  • 遥记,小时候听家人说亲戚的手机掉进厕所里,捞不出来,感觉很惊讶! 然后是,老爸换了好几个大哥大(戏称),记得好像现...
    未于微阅读 2,454评论 6 3