百度地图的使用和学习2金沙官网线上

利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了。这里分享一个制作的JS可以实现登录网页后定位:

      上周由于项目赶工,时间比较紧张,周末也没有休息,在杆项目进度,所以没来得及更新,今天调休就把上周的补上。

 1 <script type="text/javascript"> 
 2 var map; 
 3 var gpsPoint; 
 4 var baiduPoint; 
 5 var gpsAddress; 
 6 var baiduAddress; 
 7 var x;
 8 var y;
 9 function getLocation() { 
10 //根据IP获取城市 
11 var myCity = new BMap.LocalCity(); 
12 myCity.get(getCityByIP); 
13 
14 //获取GPS坐标 
15 if (navigator.geolocation) { 
16 navigator.geolocation.getCurrentPosition(showMap, handleError, { enableHighAccuracy: true, maximumAge: 1000 }); 
17 } else { 
18 alert("您的浏览器不支持使用HTML 5来获取地理位置服务"); 
19 } 
20 } 
21 
22 function showMap(value) { 
23 var longitude = value.coords.longitude; 
24 var latitude = value.coords.latitude; 
25 map = new BMap.Map("map"); 
26 x=latitude;
27 y=longitude;
28 //alert("坐标经度为:" + latitude + ", 纬度为:" + longitude ); 
29 gpsPoint = new BMap.Point(longitude, latitude); // 创建点坐标 
30 
31 
32 //根据坐标逆解析地址 
33 var geoc = new BMap.Geocoder(); 
34 geoc.getLocation(gpsPoint, getCityByCoordinate); 
35 
36 BMap.Convertor.translate(gpsPoint, 0, translateCallback); 
37 map.enableScrollWheelZoom(true);
38 } 
39 
40 translateCallback = function (point) { 
41 baiduPoint = point; 
42 map.centerAndZoom(baiduPoint, 18); 
43 var geoc = new BMap.Geocoder(); 
44 geoc.getLocation(baiduPoint, getCityByBaiduCoordinate); 
45 } 
46 
47 function getCityByCoordinate(rs) { 
48 gpsAddress = rs.addressComponents; 
49 var address = "GPS标注:" + gpsAddress.province + "," + gpsAddress.city + "," + gpsAddress.district + "," + gpsAddress.street + "," + gpsAddress.streetNumber; 
50 var marker = new BMap.Marker(gpsPoint); // 创建标注 
51 map.addOverlay(marker); // 将标注添加到地图中 
52 var labelgps = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); 
53 marker.setLabel(labelgps); //添加GPS标注 
54 } 
55 
56 function getCityByBaiduCoordinate(rs) { 
57 baiduAddress = rs.addressComponents; 
58 var address = "百度标注:" + baiduAddress.province + "," + baiduAddress.city + "," + baiduAddress.district + "," + baiduAddress.street + "," + baiduAddress.streetNumber; 
59 var marker = new BMap.Marker(baiduPoint); // 创建标注 
60 map.addOverlay(marker); // 将标注添加到地图中 
61 var labelbaidu = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); 
62 marker.setLabel(labelbaidu); //添加百度标注 
63 } 
64 
65 //根据IP获取城市 
66 function getCityByIP(rs) { 
67 var cityName = rs.name; 
68 alert("根据IP定位您所在的城市为:" + cityName); 
69 } 
70 
71 function handleError(value) { 
72 switch (value.code) { 
73 case 1: 
74 alert("位置服务被拒绝"); 
75 break; 
76 case 2: 
77 alert("暂时获取不到位置信息"); 
78 break; 
79 case 3: 
80 alert("获取信息超时"); 
81 break; 
82 case 4: 
83 alert("未知错误"); 
84 break; 
85 } 
86 } 
87 
88 function init() { 
89 getLocation(); 
90 } 
91 
92 window.onload = init; 
93 
94 </script>

      之前是介绍了一下百度地图在android中的基础的使用,主要就是在手机中显示地图,然后可以调节地图的缩放,主要的就是关于百度地图的一个开发者的申请,百度地图API key的申请以及将百度地图sdk加载到项目中,并且通过配置参数后再我们的项目中成功的显示地图。那关于地图的功能,现在应用的也是非常的多的,比如现在比较火热的订餐app,大多都会用到定位用户位置的功能,这一个功能的实现以后能够把用户附近附近的加盟商户搜索出来并显示给用户,用户可以根据自己的喜好进行选择。那接下来我们就来对地图定位这一功能进行一个了解和学习。

完成定位功能后可以添加相关代码编辑地图控件 覆盖物 信息窗口等等各种功能。

      首先是关于百度地图sdk的选择,之前我们下载的sdk是不包含定位功能的,所以大家在选择sdk下载的时候一定要把定位功能给勾上。如下图:

附上百度地图连接:http://lbsyun.baidu.com/

        金沙官网线上 1

 

      下载完后就可以运用到我们的项目当中啦,配置和前面讲的一样,然后就是对于定位代码的实现了,我们需要实现的一个是定位sdk的定位方式,另一个就是定位接口的实现。

     

//实例化定位服务,LocationClient类必须在主线程中声明    
        mLocClient= new LocationClient(getApplicationContext());
        //注册定位监听接口
        mLocClient.registerLocationListener(new BDLocationListenerImpl());

        /**
         * locationClientOption该类用来设置定位SDK的定位方式。
         */
        LocationClientOption option =new LocationClientOption();
        option.setOpenGps(true);//打开GPS
        option.setAddrType("all");//返回的定位结果包含地址信息
        option.setCoorType("bd0991");//返回的结果是百度的经纬度,默认值gcj02
        option.setPriority(LocationClientOption.GpsFirst);//设置GPS优先
        option.setScanSpan(5000);//设置发起定位请求的间隔时间为5000ms
        option.disableCache(false);//禁止启动缓存定位
        mLocClient.setLocOption(option);//设置定位参数
        mLocClient.start();//调用此方法开始定位

        //定位图层初始化
        myLocationOverlay=new LocationOverlay(mMapView);

        //实例化定位数据,并设置在我的图层
        mLocData  =new LocationData();
        myLocationOverlay.setData(mLocData);

        //添加定位图层
        mMapView.getOverlays().add(myLocationOverlay);

        //修改定位数据后刷新图层生效
        mMapView.refresh();

本文由金沙官网线上发布于Web前端,转载请注明出处:百度地图的使用和学习2金沙官网线上

您可能还会对下面的文章感兴趣: