当前位置: 代码迷 >> Android >> 百度android地图例子里的LocationOverlay,如何改变圈的大小
  详细解决方案

百度android地图例子里的LocationOverlay,如何改变圈的大小

热度:36   发布时间:2016-05-01 21:46:05.0
百度android地图例子里的LocationOverlay,怎么改变圈的大小
那个例子有个蓝色的圆圈,不知怎么改变大小,比如改成200米的半径
Java code
package com.baidu.mapapi.demo;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Point;import android.graphics.drawable.Drawable;import android.location.Location;import android.os.Bundle;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.Toast;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.GeoPoint;import com.baidu.mapapi.ItemizedOverlay;import com.baidu.mapapi.LocationListener;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapView;import com.baidu.mapapi.MyLocationOverlay;import com.baidu.mapapi.OverlayItem;import com.baidu.mapapi.Projection;public class LocationOverlay extends MapActivity {    static View mPopView = null;    // 点击mark时弹出的气泡View    MapView mMapView = null;    LocationListener mLocationListener = null;//onResume时注册此listener,onPause时需要Remove    MyLocationOverlay mLocationOverlay = null;    //定位图层        protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);        setContentView(R.layout.mapviewdemo);                BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();        if (app.mBMapMan == null) {            app.mBMapMan = new BMapManager(getApplication());            app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());        }        app.mBMapMan.start();        // 如果使用地图SDK,请初始化地图Activity        super.initMapActivity(app.mBMapMan);                mMapView = (MapView)findViewById(R.id.bmapView);        mMapView.setBuiltInZoomControls(true);        //设置在缩放动画过程中也显示overlay,默认为不绘制        mMapView.setDrawOverlayWhenZooming(true);                // 添加定位图层        mLocationOverlay = new MyLocationOverlay(this, mMapView);        mMapView.getOverlays().add(mLocationOverlay);                // 注册定位事件        mLocationListener = new LocationListener(){                        public void onLocationChanged(Location location) {                if (location != null){                    GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),                            (int)(location.getLongitude()*1e6));                    mMapView.getController().animateTo(pt);                }            }        };    }        protected void onPause() {        BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();        app.mBMapMan.getLocationManager().removeUpdates(mLocationListener);        mLocationOverlay.disableMyLocation();        mLocationOverlay.disableCompass(); // 关闭指南针        app.mBMapMan.stop();        super.onPause();    }    @Override    protected void onResume() {        BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();        // 注册定位事件,定位后将地图移动到定位点        app.mBMapMan.getLocationManager().requestLocationUpdates(mLocationListener);        mLocationOverlay.enableMyLocation();        mLocationOverlay.enableCompass(); // 打开指南针        app.mBMapMan.start();        super.onResume();    }    @Override    protected boolean isRouteDisplayed() {        // TODO Auto-generated method stub        return false;    }}


------解决方案--------------------
那个是坐标的精度,需要动态调整的。
如果真要动态调整的话,是在图层的draw里面画的
------解决方案--------------------
那个好像没法改,,它的大小和你当前地图缩放大小成比例的
------解决方案--------------------
探讨

如果我要在当前手机所在位置画个半径200米的圆圈怎么画?能否提供代码?
  相关解决方案