zoukankan      html  css  js  c++  java
  • android 百度地图学习之旅(2) 设置标志

    在百度地图设置一个标志

    百度地图的环境搭建参照百度地图学习之旅(1)环境代码

    废话不多讲 上代码

    1.前端代码

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    <!-- 添加百度控件 -->
        <com.baidu.mapapi.MapView android:id="@+id/bmapView"
        android:layout_width="fill_parent" android:layout_height="fill_parent" 
        android:clickable="true"     
    />
    
    </RelativeLayout>

    2.java代码

    package com.lihao.mymap;
    
    import com.baidu.mapapi.BMapManager;
    import com.baidu.mapapi.GeoPoint;
    import com.baidu.mapapi.MKGeneralListener;
    import com.baidu.mapapi.MapActivity;
    import com.baidu.mapapi.MapController;
    import com.baidu.mapapi.MapView;
    import com.baidu.mapapi.Overlay;
    
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.Point;
    import android.graphics.drawable.Drawable;
    import android.view.Menu;
    import android.widget.Toast;
    
    public class MainActivity extends MapActivity {
    
        private MapView mapView;    //控件
        private BMapManager bMapManager;  //百度引擎
        private String Key = "7D575D3847EDC292EEFAB78DBE43C5ED1B5B14A9"; //申请的百度key值
        private MapController mapController;    //百度控制器
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mapView = (MapView)findViewById(R.id.bmapView);
            bMapManager = new BMapManager(MainActivity.this);
            //百度地图初始化验证key值是否正确
            bMapManager.init(Key, new MKGeneralListener() {
                
                @Override
                public void onGetPermissionState(int arg0) {
                    // TODO Auto-generated method stub
                    if(arg0 == 300)
                    {
                        Toast.makeText(MainActivity.this, "请验证key值", 3).show();
                    }
                }
                
                @Override
                public void onGetNetworkState(int arg0) {
                    // TODO Auto-generated method stub
                    
                }
            });
            this.initMapActivity(bMapManager);
            //获取控制器
            mapController = mapView.getController();
            //设置可以缩放
            mapView.setBuiltInZoomControls(true);
            //缩放级别 也可以为12
            mapController.setZoom(15);
            Drawable drawable  = getResources().getDrawable(R.drawable.ic_launcher);
            mapView.getOverlays().add(new myoverlay());
        }
        
        class myoverlay extends Overlay{        
            
            Paint paint = new Paint();        
            //117.211204,31.860316 117.21568,31.86027
            //表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储
            GeoPoint geoPoint2 = new GeoPoint((int)(31.86027*1E6), (int)(117.21568 * 1E6));        
        
            public void draw(Canvas arg0, MapView arg1, boolean arg2) {
                // TODO Auto-generated method stub
                super.draw(arg0, arg1, arg2);            
                Point point = mapView.getProjection().toPixels(geoPoint2, null);
                mapController.setCenter(geoPoint2);
                arg0.drawText("你在哪里", point.x, point.y, paint);
            }
        }
        //关闭
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            if(bMapManager != null)
            {
                bMapManager.destroy();
                bMapManager = null;
            }
        }
        @Override
        //当Actitity开始准备与用户交互式调用该方法
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            if(bMapManager != null)
            {
                bMapManager.start();
            }
        }
        @Override
        //当系统即将启动另外一个Activity之前调用该方法
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            if(bMapManager != null)
            {
                bMapManager.stop();
                
            }
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        protected boolean isRouteDisplayed() {
            // TODO Auto-generated method stub
            return false;
        }
    
    }

    总结  标志物可以有各种形式(圆,多边形,设置颜色。。。。)

    贴图

  • 相关阅读:
    bootstrap class sr-only 什么意思?
    PHP 中的文本截取分析之效率
    FastAdmin 升级后出现 is already in use
    FastAdmin 环境变量 env 配置
    Nginx 服务器伪静态配置不当造成 Access denied
    笔记:明确认识
    进程通信(socket)
    进程间通信(了解)
    c++ 继承,组合
    c++ 类初始化
  • 原文地址:https://www.cnblogs.com/lihaolihao/p/3239757.html
Copyright © 2011-2022 走看看