精华内容
下载资源
问答
  • 2017-09-08 17:56:48
    self.mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.frame))];
    self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.mapView.delegate = self;
    
    [self.view addSubview:self.mapView];
    
    self.mapView.userTrackingMode = MAUserTrackingModeFollowWithHeading;(核心)
    
    [self.mapView setCompassImage:[UIImage imageNamed:@"map_address_compass@2x.png"]];
    

    或者

        //地图懒加载
    - (MAMapView *)mapView{
           if (!_mapView) {
            _mapView =  [[MAMapView alloc] initWithFrame:CGRectMake(0, kH_SegmentOfCustomeHeight, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.frame) - kH_SegmentOfCustomeHeight)];
    
        _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        _mapView.delegate = self;
        _mapView.showsUserLocation = YES;    //YES 为打开定位,NO为关闭定位
    //    _mapView.desiredAccuracy = kCLLocationAccuracyKilometer;
    //    _mapView.distanceFilter = kCLLocationAccuracyKilometer;
    //    _mapView.headingFilter  = 90;
    
        _mapView.zoomLevel = 14;
        //自定义定位经度圈样式
        _mapView.customizeUserLocationAccuracyCircleRepresentation = YES;
    
              //地图跟踪模式
     //    _mapView.userTrackingMode = MAUserTrackingModeFollow;
         _mapView.userTrackingMode = MAUserTrackingModeFollowWithHeading;
         _mapView.showsCompass = YES;
         [_mapView setCompassImage:[UIImage imageNamed:@"map_address_compass@2x.png"]];
    
        //后台定位
        _mapView.pausesLocationUpdatesAutomatically = NO;
        _mapView.allowsBackgroundLocationUpdates = NO;//iOS9以上系统必须配置
        }
        return _mapView;
    }
    
    更多相关内容
  • 首先声明一下,这是我第一次写博客,有很多东西清楚 ,还请见谅。  昨天周末的时候,帮同事做一个安卓app里面的百度地图的东西。其实就是类似百度导航的东西,有一个箭头,可以转动。他的需求时,通过服务器传的...

                 首先声明一下,这是我第一次写博客,有很多东西不清楚 ,还请见谅。

                  昨天周末的时候,帮同事做一个安卓app里面的百度地图的东西。其实就是类似百度导航的东西,有一个箭头,可以转动。他的需求时,通过服务器传的参数来动态改变。我之前也没做过app,更没做过app百度地图。在网上找了很多都没有搞定,最后自己看来一个api,才搞定的。下面把demo附上去,希望能对一些人有所帮助,同时自己也能有所积累。

    需要的包我就不做解释了,大家应该比我更加清楚!

    Activity代码:




    import android.app.Activity;
    import android.os.Bundle;


    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.BaiduMap;
    import com.baidu.mapapi.map.BitmapDescriptor;
    import com.baidu.mapapi.map.BitmapDescriptorFactory;
    import com.baidu.mapapi.map.MapStatus;
    import com.baidu.mapapi.map.MapStatusUpdate;
    import com.baidu.mapapi.map.MapStatusUpdateFactory;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.mapapi.map.MarkerOptions;
    import com.baidu.mapapi.map.MyLocationData;
    import com.baidu.mapapi.map.OverlayOptions;
    import com.baidu.mapapi.model.LatLng;


    public class BaiDuMap  extends Activity{
    private MapView mMapView = null;  
    private BaiduMap mBaiduMap = null;
    MyLocationData.Builder builder = new MyLocationData.Builder();
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);   
            //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
            //注意该方法要再setContentView方法之前实现  
            SDKInitializer.initialize(getApplicationContext());  
            setContentView(R.layout.bmap);  
            //获取地图控件引用  
            mMapView = (MapView) findViewById(R.id.bmapView);  
            mBaiduMap = mMapView.getMap();
        // 构造定位数据
            //深圳中心点
            LatLng point = new LatLng(22.549525, 114.063918);
            BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.navigation);  
            //这里是按逆时针旋转的   这里是270度
            OverlayOptions options = new MarkerOptions().icon(icon).position(point).rotate(270);  
            
            mBaiduMap.addOverlay(options);  
            MapStatus mMapStatus = new MapStatus.Builder()  
            .target(point)  
            .zoom(18)  
            .build();  
            //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化  
            MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);  
            //改变地图状态  
            mBaiduMap.setMapStatus(mMapStatusUpdate);


        }  
        @Override  
        protected void onDestroy() {  
            super.onDestroy();  
            //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
            mMapView.onDestroy();  
        }  
        @Override  
        protected void onResume() {  
            super.onResume();  
            //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
            mMapView.onResume();  
            }  
        @Override  
        protected void onPause() {  
            super.onPause();  
            //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
            mMapView.onPause();  
            }  
    }

                     


        

    展开全文
  • 高德提供了SmoothMoveMarkerAPI的调用,用于平滑移动,只需要给point点就好了还有animation的封装,对RotateAnimation,AlphaAnimation,ScaleAnimation,TranslateAnimation,都有...比如,在地图上画一个车,让车沿着...

    高德提供了SmoothMoveMarkerAPI的调用,用于平滑移动,只需要给point点就好了

    还有animation的封装,对

    RotateAnimation,AlphaAnimation,ScaleAnimation,TranslateAnimation,都有基本的操作,对其还有AnimationSet进行组合操作

    但是,我们有时候对动画的要求有点多,不仅限于这些。

    比如,在地图上画一个车,让车沿着轨迹移动,车头向着前进方向

    如果只需要上面的要求,没有其他的。SmoothMoveMarker应该能满足你的要求。

    所以,我们这里就不仅限于这些,我们与android提供的属性动画相结合操作。(别问我属性动画是什么,百度,google,bing去)。

    ok,说了这么多。先看看效果图。

    车辆行驶沿着轨迹,并且根据行驶速度进行加速减速。

    emmmmm,因为数据都是我瞎弄得不是真实值,所以有点误差,拿到真实值后需要reset一下。

    下面开始操作吧,整个地图基于高德地图

    ###添加高德地图的依赖

    请百度百科

    ###绘制轨迹

    我们使用方法addPolyline就ok

    整个绘制代码

    /**

    * 添加轨迹线

    *

    * @param points

    */

    private void addPolylineInPlayGround(Listpoints) {

    Listlist = new ArrayList<>();

    for (int i = 0; i < points.size(); i++) {

    list.add(new LatLng(points.get(i).getLat(), points.get(i).getLon()));

    }

    ListcolorList = new ArrayList();

    ListbitmapDescriptors = new ArrayList();

    int[] colors = new int[]{Color.argb(255, 0, 255, 0), Color.argb(255, 255, 255, 0), Color.argb(255, 255, 0, 0)};

    //用一个数组来存放纹理

    ListtextureList = new ArrayList();

    textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.custtexture));

    ListtexIndexList = new ArrayList();

    texIndexList.add(0);//对应上面的第0个纹理

    texIndexList.add(1);

    texIndexList.add(2);

    Random random = new Random();

    for (int i = 0; i < list.size(); i++) {

    colorList.add(colors[random.nextInt(3)]);

    bitmapDescriptors.add(textureList.get(0));

    }

    mPolyline = mAMap.addPolyline(new PolylineOptions().setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.custtexture)) //setCustomTextureList(bitmapDescriptors)

    .addAll(list)

    .useGradient(true)

    .width(18));

    LatLngBounds.Builder builder = LatLngBounds.builder();

    for (int i = 0; i < list.size() - 1; i++) {

    builder.include(list.get(i));

    } mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 0));

    ok,线我们添加进去了

    这样操作的

    //RxJava+Retrofit 了解一下,空了在贴

    NetUtil.INSTANCE().create(new MySubscribe>() {

    @Override

    public void onNext(ListcarRoutes) {

    //网络请求添加线

    mList.addAll(carRoutes);

    }

    @Override

    public void onComplete() {

    addPolylineInPlayGround(mList);

    }

    }, id, true);

    接着我们通过属性动画里的ValueAnimator设置我们的值如何变化

    /**

    * 动画效果

    */

    public Animator setAnimation(final Marker marker, float duration) {

    ValueAnimator animator;

    Object[] objects = new Object[mList.size()];

    for (int i = 0; i < objects.length; i++) {

    objects[i] = mList.get(i);

    }

    animator = ValueAnimator.ofObject(new TypeEvaluator() {

    @Override

    public CarRoute evaluate(float fraction, CarRoute startValue, CarRoute endValue) {

    double lat = startValue.getLat() + fraction * (endValue.getLat() - startValue.getLat());

    double lon = startValue.getLon() + fraction * (endValue.getLon() - startValue.getLon());

    //注意这里的speed没有用到,我懒得改了

    return new CarRoute(lon, lat, speed, getAngle(startValue.getLatLng(), endValue.getLatLng()));

    }

    }, objects);

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

    @Override

    public void onAnimationUpdate(ValueAnimator animation) {

    CarRoute carRoute = (CarRoute) animation.getAnimatedValue();

    marker.setMarkerOptions(marker.getOptions().position(carRoute.getLatLng()).rotateAngle((float) carRoute.getBearing()));

    //默认无

    //mAMap.moveCamera(CameraUpdateFactory.changeLatLng(carRoute.getLatLng()));

    }

    });

    animator.setInterpolator(new SpeedInterpolator(mList, duration));

    animator.setDuration((long) duration);

    animator.start();

    return animator;

    }

    比较正常的操作,接下来我们就可以看看我们效果

    可以看到我们的marker点就在轨迹上平缓的移动,整体效果跟SmoothMoveMarker一样。

    接着,车辆行驶过程中肯定有速度,有速度就有加速,减速,匀速。

    那我们就可以根据这个来做一个加减速的行车动画,而不是全程匀速无聊。

    所以这里我们就要用到插值器。关于插值器,可以百度,谷歌等看看用法,这里我们自定义自己的插值器。

    public static class SpeedInterpolator implements TimeInterpolator {

    private ListmSpeedList;

    private double totalDistance;

    SpeedInterpolator(ListspeedList, float duration) {

    mSpeedList = speedList;

    //真实距离

    for (int i = 0; i < speedList.size() - 1; ++i) {

    double k = (double) AMapUtils.calculateLineDistance(speedList.get(i).getLatLng(), speedList.get(i + 1).getLatLng());

    this.totalDistance += k;

    }

    }

    /**

    * 完成度时间

    *这里的input是系统计算返回的

    * @param input 可看之为时间进行了多久

    * 单位km/h 换算 m/s

    * @return 可反映速度快慢的返回值

    */

    @Override

    public float getInterpolation(float input) {

    }

    }

    大概样子是这个,接着我们需要在

    getInterpolation() 里编写我们自己的逻辑

    编写之前我们先画点图了解并思考我们如何操作

    v-t 速度和时间

    a88a6df6a9177a103bc32e2b2d7d9f8d.png

    表示了v的变化,为了整个逻辑简洁,不考虑变加速,整个过程就是一个时间段内就是匀加速,匀减速或者匀速。所以可以看到6s内每1s,其加速度的值都是固定的

    比如0-1 加速度为1

    a-t 加速度和时间

    c0bcaf18cb7d3efc5e72f07941575eb7.png

    啊,用excel画布来这图,将就看吧

    s-t 路程和时间

    512a42ddd63ba01a789bb56a96affd98.png

    好了三张图上完了。我们在了解一下fraction这个值

    哪来的?

    public CarRoute evaluate(float fraction, CarRoute startValue, CarRoute endValue)

    这段话你忘了么。然后了解属性动画后知道这个值得范围是[0,1]

    这个就可以理解为我们的完成度,完成了百分之多少我们的动画就该进行到哪了

    那么这个值怎么来的?

    就是插值器里return来的了

    然后input这个值我们理解为系统返回的时间(系统按照duration比例转换的[0,1]时间)

    ok,就是说 input可以理解为我们上图的t这个值。那么上面哪张图与完成最相似。没错,就是S-T图我们的路径与时间关系的图

    在这里距离是9米,我们每行驶一段距离与总距离的比值就可以是我们返回的fraction这个值了。

    接下来我们按照图来编写我们的公式。这里会有坑,请注意

    首先回顾一下高中物理知识

    匀速情况下

    s=v*t

    匀变速情况下

    s=vt+at*t/2 a为加速度,为矢量值(问我矢量是什么的,棺材板压好了么)

    然后这里有一个问题,速度是变化的如何知道哪一段是哪个速度呢?

    所以我们加一个索引

    int index = (int) (input * (mSpeedList.size() - 1));

    if (index == mSpeedList.size() - 1) {

    return 1;

    }

    float start = (float) (mSpeedList.get(index).getSpeed() / 3.6f);

    ok,我们通过时间进行了多少判断出我们该取哪一个点的初始值

    接下来进行计算

    直接放代码吧

    @Override

    public float getInterpolation(float input) {

    index = (int) (input * (mSpeedList.size() - 1));

    if (index == mSpeedList.size() - 1) {

    return 1;

    }

    float start = (float) (mSpeedList.get(index).getSpeed() / 3600 * 1000);

    float end = (float) (mSpeedList.get(index + 1).getSpeed() / 3600 * 1000);

    double a = (end - start) / t;//加速度

    //通过一个temp指针得到现在的input的时候行进了多少距离

    double c = input - temp;

    temp = input;

    //重新指向input的位置

    s += v * c + a * c * c / 2;

    v = (float) (v + a * c);//当前速度

    //实际距离,真实距离 totalDistance

    return (float) (s / (1181.0176983519816 * multiples));

    }

    来个手绘图描述一下上诉代码

    f96f6177491616ca90bc80320b31eaa7.png

    不要介意

    V0是我们temp指向的速度,V1是我们input指向的速度

    v1 = v0 + a * t

    这就是计算公式,同时根据v0==>>v1的时间变化

    得出 > s = v0 * t + a * t * t / 2;

    然后加上我们行走过的距离就能得到我们到input的时候走过的距离了。

    末尾的1181.0176983519816是什么东西

    是logcat打印出来的距离值,因为这只是我随便弄得值(才不会说是在高德上面一个一个点的),所以跟真实距离(totalDistance)有差距。

    至于那个倍数,是针对于duration这个会翻倍的东东。(这个倍数请忽略,自我尝试才能知道最终结果)

    ok,有什么疑问留下吧,欢迎大家一起探讨。

    上面的插值器的代码有点问题(真的,不骗你们),我用另一种方式写了一下。需要的来这里

    展开全文
  • 地图 第十七周实验目的 接入百度地图API 掌握少量的百度地图API接口 二、实现内容 基于之前的应用,初始界面仍为摇一摇 跳转后的界面为百度地图 地图定位在目前的经纬度,需要可以动态改变 界面中心为...

    中山大学数据科学与计算机学院本科生实验报告

    (2018年秋季学期)

    项目源码:Github传送门


    第十七周任务

    一、实验题目

    地图

    第十七周实验目的

    1. 接入百度地图API
    2. 掌握少量的百度地图API接口

    二、实现内容

    基于之前的应用,初始界面仍为摇一摇

    img跳转后的界面为百度地图img地图定位在目前的经纬度,需要可以动态改变
    img界面中心为箭头,指向是目前的朝向,可以利用上周代码得到的朝向,也需要动态改变img左下角是一个按钮,当移动地图时需要变为空心,可以点击,点击后变为实心同时回到定位到目前位置
    img当拖动地图时,左下角会变为空心img点击左下角按钮,回到目前位置
    • 该项目属于选作项目
    • 需要理解一定的百度地图API
    • 基础内容是显示地图,定位到目前位置,显示目前朝向共计三项,其中后两项可以利用之前的代码
    • 加分项即为左下角的按钮以及相应的事件监听处理。对流程还不清晰的可以查看demo
    • 需要的图片资源在manual里

    三、课堂实验结果

    (1)实验截图

    1.地图初始页面

    1

    2.改变经纬度

    2

    3.移动地图,左下方图标变化

    3

    4.点击左下方图标,显示回原位置

    4

    5.摇动手机,marker改变方向

    5

    6

    (2)实验步骤以及关键代码

    a.引入百度地图的资源包

    网上教程一大把,这里也不再叙述。

    主要步骤

    • 下载开发包
    • 复制so文件至src/main/jniLibs目录
    • 复制jar包至libs目录
    • 增加sourceSets
    • 增加依赖
    • 添加密钥
    • 添加权限
    • 使用地图

    b.添加地图到xml布局

    这里的页面仅需要显示一个地图的组件加上自己的一张图片即可,后面通过点击这张图片来与地图进行交互。

    	<com.baidu.mapapi.map.MapView
            android:id="@+id/bmapView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true" />
    
        <ImageButton
            android:id="@+id/imaage_button"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:scaleType="fitXY"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:src="@drawable/centerdirection"
            />
    

    C.根据经纬度显示地图,并设置marker

    这里的经纬度利用的是上周的LocationManager所获得的地址,但是由于百度地图的api的地址计算并不与location的直接一致,故需要进行转换,这一点在百度的api手册也有说明。以下是设置我的当前位置信息,需要设置角度,经度,纬度。

    //获取地图控件引用
    BaiduMap mBaiduMap = mMapView.getMap();
    
    mBaiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener);
    //普通地图
    mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    mBaiduMap.setMyLocationEnabled(true);
    // 转换坐标
    CoordinateConverter converter = new CoordinateConverter();
    converter.from(CoordinateConverter.CoordType.GPS);
    converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude()));
    LatLng desLatLng = converter.convert();
    // LatLng就是当前的坐标
    degree = 90.0f;
    mMapView.getMap().setMyLocationEnabled(true);
    MyLocationData data = new MyLocationData.Builder()
        .latitude(desLatLng.latitude)
        .longitude(desLatLng.longitude)
        .direction(degree).build();
    mMapView.getMap().setMyLocationData(data);
    

    然后,设置marker的图片与位置

    Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.pointer), 100, 100, true);
    BitmapDescriptor bitmapD = BitmapDescriptorFactory.fromBitmap(bitmap);
    MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, bitmapD);
    mMapView.getMap().setMyLocationConfiguration(config);
    

    设置地图居中显示

    // 设置地图居中
    MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build();
    MapStatusUpdate mapStatusUpdate = 	 
        MapStatusUpdateFactory.newMapStatus(mapStatus);
    mMapView.getMap().setMapStatus(mapStatusUpdate);
    

    这一点很关键,没有设置居中显示,则地图默认显示中心在首都,这一点会导致我的marker看不到,误以为程序出问题,且不符合要求。

    d.判断手机转向时,改变marker的转向

    这一点与上一周的指针旋转类似,传感器不变,但是需要做的是改变marker的角度,即重新设置direction。

    MyLocationData data = new MyLocationData.Builder()
                    .latitude(desLatLng.latitude)
                    .longitude(desLatLng.longitude)
                    .direction(degree).build();
    

    里面的degree就是我通过之前传感器获取的转向角度。

    e.判断位置改变时,改变地图和marker所处位置

    与改变角度一样,只不过这次改变的是经纬度。同样经纬度也是通过上周传感器的改变监听函数中获取即可。

    MyLocationData data = new MyLocationData.Builder()
                    .latitude(desLatLng.latitude)
                    .longitude(desLatLng.longitude)
                    .direction(degree).build();
    

    f.判断地图的改变状态,以此改变左下角的图片

    这里利用的是百度地图的地图状态改变监听器。

    我设置当状态改变完毕后,若当前状态与经纬度的状态不一致,则证明偏离了中心,所以改变图片的样式。同样,当点击图片,仅需返回到原来的状态即可,并将图片设置回实心。

    // 设置imageButton的点击函数
    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 转换坐标
            CoordinateConverter converter = new CoordinateConverter();
            converter.from(CoordinateConverter.CoordType.GPS);
            converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude()));
            LatLng desLatLng = converter.convert();
            // 设置地图居中
            MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build();
            MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus);
            mMapView.getMap().setMapStatus(mapStatusUpdate);
    
            // 更改图片
            imageButton.setImageResource(R.drawable.centerdirection);
        }
    });
    

    以下是百度地图的状态监听器:

    // 地图改变的监听函数
    onMapStatusChangeListener = new BaiduMap.OnMapStatusChangeListener() {
        /**
                 * 手势操作地图,设置地图状态等操作导致地图状态开始改变。
                 * @param status 地图状态改变开始时的地图状态
                 */
        public void onMapStatusChangeStart(MapStatus status){
        }
    
        /** 因某种操作导致地图状态开始改变。
                 * @param status 地图状态改变开始时的地图状态
                 * @param reason表示地图状态改变的原因,取值有:
                 * 1:用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图
                 * 2:SDK导致的地图状态改变, 比如点击缩放控件、指南针图标
                 * 3:开发者调用,导致的地图状态改变
                 */
        public void onMapStatusChangeStart(MapStatus status, int reason){
        }
    
        /**
             * 地图状态变化中
             * @param status 当前地图状态
             */
        public void onMapStatusChange(MapStatus status){
        }
    
        /**
             * 地图状态改变结束
             * @param status 地图状态改变结束后的地图状态
             */
        public void onMapStatusChangeFinish(MapStatus status){
            // 转换坐标
            CoordinateConverter converter = new CoordinateConverter();
            converter.from(CoordinateConverter.CoordType.GPS);
            converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude()));
            LatLng desLatLng = converter.convert();
            // 判断两个状态是否一致
            MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build();
            Log.i("change","map has changed");
            if(!status.equals(mapStatus)){
                imageButton.setImageResource(R.drawable.definelocation);
            }
        }
    };
    

    在初始化地图的时候记得设置监听器即可。

    mBaiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener);
    

    (3)实验遇到的困难以及解决思路

    a.地图加载出来后,仅显示在首都,并未根据经纬度改变

    这一点是由于我只设置了MyLocationData,并没有设置地图的Status导致的。地图的位置信息已经在经纬度了,但是并没有居中显示。

    // 设置地图居中
    MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build();
    MapStatusUpdate mapStatusUpdate = 
        MapStatusUpdateFactory.newMapStatus(mapStatus);
    mMapView.getMap().setMapStatus(mapStatusUpdate);
    

    四、实验思考及感想

    这次的实验也是在之前传感器的基础上添加百度地图功能,传感器部分的功能可以继续使用,只是需要学习一些百度地图的SDK。个人感觉地图与传感器这两个功能在日常的android开发都是离不开的,而想用好别人的地图SDK就要先看懂官方的文档,这一点很重要。我在做实验过程一遇到缺少的功能或者函数,一般官方文档上也会有教程或者方法提供。

    最后一次安卓作业也做完了,虽然要求是选做,但是趁着自己有时间空余还是完成一下吧。安卓的学习并没有因此而终止,反而是另一种学习的开始,到此我已经基本掌握android的开发知识,要趁着寒假时间也加强一下自己的水平,期待在安卓开发能有更远的发展。Fighting!

    展开全文
  • ============问题描述============ 旋转手机的时候,指针会旋转,请问如何实现? ============解决方案1============ 我用的百度...
  • 百度地图自定义图标动画

    千次阅读 2016-01-05 09:46:22
    先讲一下原来的思路,因为安卓有一个动画效果是可以从底部上升的,当时就想着只要实现动画效果,放在地图上就是了,后来发现百度地图好像支持这种动画,自己提供的动画是需要一组图片组合的,总能设置100个图片...
  • 百度地图Marker的定位和方向

    千次阅读 2017-07-28 11:56:23
    原文: http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=83704 今天做百度地图需要在显示很多车辆的位置信息。并显示车辆的角度和行驶方向。 需要用到设置标注的方向。 资料多,特此记录,备忘。
  • 地图 范围 功能 多个返回值 可变函数 闭包 递归 指针 结构 方法 介面 失误 Goroutines 频道数 通道缓冲 频道同步 频道方向 选择 超时时间 非阻塞通道操作 关闭频道 通道范围 计时器 股票...
  • Android实现高德地图轨迹回放

    千次阅读 多人点赞 2020-10-30 14:13:53
    欢迎指正,喜勿喷,请你善良,谢谢!!! 准备 官方文档解读 首先去[官网](https://lbs.amap.com/api/android-sdk/summary)查看开发指南进行项目中需要的内容准备。 创建应用: 左上角头像位置指针划过出现如图...
  • 方法返回值说明poiOnAMAP(obj:Object)唤起高德地图客户端marker页其中Object里面包含有{ id: "B000A7BD6C",POIIDname:String, 必要参数location:LngLat|position属性 必须参数}detailOnAMAP(obj:Object)唤起高德地图...
  • 地图的制作网上其实有很多教程,最常见的就是MiniMap使用正交摄像机Render Texture制作,这种摄像机会实时在上空更新地图。但是使用摄像机无疑是耗费资源的,有时候需要的小功能其实只是需要标识自己所在的位置,...
  •   最新在玩一款 VR 游戏:一起来捉妖。为了省事(实在是没有时间出去瞎溜达,仅仅是...  本人并不是搞移动开发的,对于 Java 并熟悉,对于 Android 开发更是了解。所以从最基本的开始,边学变搞!其中,遇到
  • [导读]没有指南针的情况下户外辨别方向和位置的方法有哪些?野外迷路怎样确定方位?骑部落从4个方面给大家介绍下户外如何确定方位、夜间如何判断距离、地图与指北针的应用。参加户外运动必须要有正确的方向感,否则...
  • 百度地图地图API(常用)

    千次阅读 2020-01-05 18:58:27
    百度地图开发常用网站 1、百度地图开放平台 http://lbsyun.baidu.com/ 2、百度地图Javascript API JavaScript API v3.0http://lbsyun.baidu.com/index.php?title=jspopular3.0 JavaScript API v2.0...
  • 求链表中环的长度:只要相遇后一个不动,另一个前进直到相遇算一下走了多少步就好了 求链表倒数第k个元素:先让其中一个指针向前走k步,接着两个指针以同样的速度一起向前进,直到前面的指针走到尽头了,则后面的...
  • Map组件设计文档组件设计目的分析当前各业务方向(销售端、商城、数据可视化、TMS)内地图相关应用的地图功能使用情况,封装Map组件供给各业务向进行使用。将高德地图API进行二次封装,降低地图相关功能学习代价,方便...
  • 微信小程序地图与位置相关操作

    千次阅读 2022-03-20 18:24:47
    微信小程序地图与位置相关操作1、地图1.1 map的API1.2 简单地图示例1.3 MapContext对象常用操作1.4 地图操作示例2、位置2.1 位置API2.1.1 wx.getLocation(Object object)2.1.2 wx.openLocation(Object object)2.1.3 ...
  • 【机器人】 D*算法-动态路径规划

    千次阅读 2021-07-18 21:41:13
    以Y为中心构成8邻域的九宫格 当存在障碍物时,横向、竖向的连接/移动成本为1、斜向连接成本为1.4 当存在障碍物时,不管什么方向的连接/移动成本都设置为比较大的值,比如10000,以确保很难通过 虽然是有向图,...
  • 但是对于一些没有没有声明文件的第三方模块,用起来会比较麻烦,过程中,我们用到的高德地图就是其中之一,虽然官方推荐使用vue-amap,但是想追求粒度更细的操作,还是原生的api更为方便,下面来记录一下全程的配置...
  • 地图之美(地图制图)

    千次阅读 多人点赞 2019-07-14 15:18:08
    介绍地图的历史和制作方法
  • 高德地图实现展示多个规划的路线

    千次阅读 2021-12-03 15:34:46
    /**地图是否使用缓效果, 默认值为true。此属性可被setStatus/getStatus 方法控制**/ jogEnable?: boolean; /**地图是否可通过鼠标滚轮缩放浏览, 默认为true。此属性可被setStatus/getStatus 方法控制**/ ...
  • 栅格占用地图

    千次阅读 2021-08-02 21:16:25
    概率栅格法是一种近似描述,易于创建和维护,对某个栅格的感知信息可直接与环境中某个区域对应,机器人对所测得的障碍物具体形状敏感,特别适于处理超声、激光测量数据。但当在大型环境中或栅格单元划分比较细时,...
  • 动态场景SLAM相关论文总结

    千次阅读 2022-01-07 16:35:29
    (4)动态特征-局部地图动态点关联:动态特征与局部地图中的动态点匹配关联,通过两种方法:地图中目标速度已知,就用匀速假设投影地图动态目标上的动态点到当前帧来寻找匹配,如果匹配点对满足上边的实例匹配,...
  • 比如说天气预报程序可以根据用户所在的位置自动选择城市,发微博的时候我们可以向朋友晒一下自己的地理位置,认识路的时候随时打开地图就可以查询路线;如果你出门打车用滴滴或Uber打车,你可以看到
  • 或许跟手拖拽已经足够普遍,可是跟手沿着圆弧转动的罗盘指针,却依然足够挑战,先来看看我们要实现的小目标,查看效果(请用手机打开,或者用chrome的手机模式打开) 任务分解、分析 一、 跟手拖拽的一般套路 ...
  • 写在前面 准备 官方文档解读 创建应用: 地图api引入: 权限添加 ...地图初始化 ...本篇文章是对近期工作项目中集成高德地图轨迹回放和单/多点标记功能的一个总结。...欢迎指正,喜勿..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,581
精华内容 2,232
关键字:

地图指针方向不动