javascript - 前端小白:百度定位API为啥老给我整北京天安门的坐标呢?-.-

查看:195
本文介绍了javascript - 前端小白:百度定位API为啥老给我整北京天安门的坐标呢?-.-的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></script>
    <title>浏览器定位</title>
    <style>
    #allmap{
        width: 800px;
        height: 800px;
        margin:0 auto;
    }
    </style>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
    // 百度地图API功能
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
                var map = new BMap.Map("allmap");// 创建Map实例
                    map.addControl(new BMap.MapTypeControl());   //添加地图类型控件
                    map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的
                    map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
                    var point = new BMap.Point(r.point.lng,r.point.lat);
                    map.centerAndZoom(point,12); // 初始化地图,设置中心点坐标和地图级别
            var mk = new BMap.Marker(point);
            map.addOverlay(mk);
            mk.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
            // map.panTo(point);
            alert('您的位置:'+r.point.lng+','+r.point.lat);
        }
        else {
            alert('failed'+this.getStatus());
        }        
    },{enableHighAccuracy: true})
    //关于状态码
    //BMAP_STATUS_SUCCESS   检索成功。对应数值0。
    //BMAP_STATUS_CITY_LIST 城市列表。对应数值1。
    //BMAP_STATUS_UNKNOWN_LOCATION  位置结果未知。对应数值2。
    //BMAP_STATUS_UNKNOWN_ROUTE 导航结果未知。对应数值3。
    //BMAP_STATUS_INVALID_KEY   非法密钥。对应数值4。
    //BMAP_STATUS_INVALID_REQUEST   非法请求。对应数值5。
    //BMAP_STATUS_PERMISSION_DENIED 没有权限。对应数值6。(自 1.1 新增)
    //BMAP_STATUS_SERVICE_UNAVAILABLE   服务不可用。对应数值7。(自 1.1 新增)
    //BMAP_STATUS_TIMEOUT   超时。对应数值8。(自 1.1 新增)
</script>

如上图所示,为什么得不到我现在的位置坐标,老是给我整天安门那的呢?
有什么办法得到现在的地理位置信息呢?
各位大神请帮小弟一把。。

解决方案

map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的

这句没毛病么?开发人员怎么知道当前城市是什么呢?如果用户全国各地到处走怎么办?
刚才试了下百度官方给的demo,没有办法修改当前城市,只能是北京。你可以自己试试http://developer.baidu.com/map/jsdemo.htm#a1_2

这个是百度ip定位的
https://zhidao.baidu.com/ques...

换高德试试吧,百度真的就只能呵呵了。。。

这篇关于javascript - 前端小白:百度定位API为啥老给我整北京天安门的坐标呢?-.-的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆