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;
        }
    
    }

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

    贴图

  • 相关阅读:
    【转】[行业透视] 外企九年-我最终选择放弃
    【转】Win7下有线与无线网络使用优先级
    【转】POJ 1177 Picture(1)
    【转】POJ 1151 Atlantis
    POJ1151Atlantis(扫描线求面积并+线段树+离散化)
    【转】poj_1151(Atlantis)
    【转】poj pku 线段树题目20道汇总+简要算法+分类+难度
    【转】POJ 1151 Atlantis(AC)
    【转】线段树(segment tree)
    【转】poj 1177 pictures(2)
  • 原文地址:https://www.cnblogs.com/lihaolihao/p/3239757.html
Copyright © 2011-2022 走看看