地图上那个腾讯地图 自定义标记的蓝色标记怎么消除

后使用快捷导航没有帐号?
查看: 3127|回复: 4
新人欢迎积分1 阅读权限50积分1397精华0UID1600692帖子金钱1753 威望0
Lv.5, 积分 1397, 距离下一级还需 1103 积分
UID1600692帖子威望0 多玩草78 草
问个弱弱的问题:地图提示蓝色骷髅头是什么怪,为什么地图上找不到? 这些都是些什么怪?稀有精英?定时刷的?还是任务怪,还是人物流程才能遇到?
在线求解答。
14:28:55 上传
艾玛什之爪
Lv.4, 积分 815, 距离下一级还需 185 积分
UID帖子威望0 多玩草0 草
满级稀有,因为没刷
Lv.3, 积分 98, 距离下一级还需 152 积分
UID帖子威望0 多玩草0 草
LZ用的什么插件
新人欢迎积分0 阅读权限70积分8655精华0UID1310448帖子金钱7187 威望0
Lv.7, 积分 8655, 距离下一级还需 1345 积分
UID1310448帖子威望0 多玩草31 草
每日水晶任务的稀有怪&&好像现在只是做任务的区域刷。。。每天每个boss可以打一次。。。
仗剑红尘已是癫,有酒平步上青天;游星戏斗弄日月,醉卧云端笑人间。
终于水到LV7了 感谢CCTV BTV 所有的TV。。。。
Lv.3, 积分 98, 距离下一级还需 152 积分
UID帖子威望0 多玩草0 草
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered by1848人阅读
&& Android(34)
如何改变百度地图在定位自己时的默认蓝色圆圈?
Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示。
MyLocationOverlay:一个负责显示用户当前位置的Overlay。
第一种方法很简单,我们只需要创建一个继承MyLocationOverlay的类重写其drawMyLocation方法即可.
protected void drawMyLocation(android.graphics.Canvas canvas,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MapView mapView,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& android.location.Location lastFix,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& GeoPoint myLocation,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& long when)
绘制“我的位置”点。默认情况下,绘制一个动画的“蓝色点”,可能由一个蓝色圆盘所围绕来标识精度。而且, 如果用户的位置移动到屏幕的边缘,我们已经在构造函数力提供了一个 MapController , 将使用滚动来重新确定地图的中心。
Parameters:
canvas - 待绘制的画布。
mapView - 调用绘制方法的mapView。
lastFix - 最后一个收到的位置信息。
myLocation - 最后一个位置的坐标,萃取成为一个方便的GeoPoint 。
when - 绘制的时间,毫秒。
@Override&
&&& protected void drawMyLocation(Canvas canvas, MapView mapView,&
&&&&&&&&&&& Location lastFix, GeoPoint myLocation, long when) {&
&&&&&&& try {&
&&&&&&&&&&& Projection projection = mapView.getProjection();&
&&&&&&&&&&& Point point = new Point();&
&&&&&&&&&&& projection.toPixels(myLocation, point);&
&&&&&&&&&&& int x = point.x - bitmap.getWidth() / 2;&
&&&&&&&&&&& int y = point.y - bitmap.getHeight();&
&&&&&&&&&&& canvas.drawBitmap(bitmap, x, y, new Paint());&
&&&&&&& } catch (Exception e) {&
&&&&&&&&&&& super.drawMyLocation(canvas, mapView, lastFix, myLocation, when);&
&&&&&&& }&
这里简单说明一下:point获取到的是我们在屏幕上的点.而我们要显示的图标应该在这个点的正上方,因此x,y的计算大家都不难理解了.
接下来的操作和原来的一样,只需要调用即可.
&&&& * 初始化map
&&& void InitMap() {&
&&&&&&& bMapManager = new BMapManager(this);&
&&&&&&& bMapManager.init(Key, this);&
&&&&&&& super.initMapActivity(bMapManager);&
&&&&&&& mMapView = (MapView) findViewById(R.id.bmapsView);&
&&&&&&& mMapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件&
&&&&&&& mMapView.setDrawOverlayWhenZooming(true);// 缩放图标仍然show&
&&&&&&& mMapController = mMapView.getController();&
&&&&&&& mMapController.setZoom(16); // 设置地图zoom级别&
&&&& * 添加自己的overlay
&&& void addMyOverLay() {&
&&&&&&& locationOverlay = new LocationOverLay(MainActivity.this, mMapView);&
&&&&&&& overlays = mMapView.getOverlays();&
&&&&&&& Bitmap bitmap = BitmapFactory.decodeResource(getResources(),&
&&&&&&&&&&&&&&& R.drawable.location);&
&&&&&&& locationOverlay.setBitmap(bitmap);&
&&&&&&& overlays.add(locationOverlay);&
@Override&
&&& public void onCreate(Bundle savedInstanceState) {&
&&&&&&& super.onCreate(savedInstanceState);&
&&&&&&& setContentView(R.layout.main);&
&&&&&&& setTitle(&jjhappyforever...&);&
&&&&&&& InitMap();&
&&&&&&& addMyOverLay();&
&&& @Override&
&&& protected void onDestroy() {&
&&&&&&& if (bMapManager != null) {&
&&&&&&&&&&& bMapManager.destroy();&
&&&&&&&&&&& bMapManager =&
&&&&&&& }&
&&&&&&& super.onDestroy();&
&&& @Override&
&&& protected void onPause() {&
&&&&&&& if (bMapManager != null) {&
&&&&&&&&&&& bMapManager.getLocationManager().removeUpdates(this);&
&&&&&&&&&&& locationOverlay.disableMyLocation();&
&&&&&&&&&&& locationOverlay.disableCompass(); // 打开指南针&
&&&&&&&&&&& bMapManager.stop();&
&&&&&&& }&
&&&&&&& super.onPause();&
&&& @Override&
&&& protected void onResume() {&
&&&&&&& if (bMapManager != null) {&
&&&&&&&&&&& bMapManager.getLocationManager().requestLocationUpdates(this);&
&&&&&&&&&&& locationOverlay.enableMyLocation();&
&&&&&&&&&&& locationOverlay.enableCompass(); // 打开指南针&
&&&&&&&&&&& bMapManager.start();&
&&&&&&& }&
&&&&&&& super.onResume();&
&&&& * Location 监听
&&&& * @param arg0
&&& @Override&
&&& public void onLocationChanged(Location location) {&
&&&&&&& // 获取自己的经纬度点&
&&&&&&& GeoPoint geoPoint = new GeoPoint((int) (location.getLatitude() * 1e6),&
&&&&&&&&&&&&&&& (int) (location.getLongitude() * 1e6));&
&&&&&&& mMapController.setCenter(geoPoint);&
定位居中显示.
示例显示:
第二种方案:
我们bMapManager.getLocationManager().requestLocationUpdates(this);获取自身的GeoPoint.那么我们可以根据该GeoPoint创建一个Overlay.其实MyLocationOverlay是Overlay的一个子类,这样我们就不难理解了。发话不多说了,
在这里我们根据自身的GeoPoint添加一个Overlay
&&&& * Location 监听
&&&& * @param arg0
&&& @Override&
&&& public void onLocationChanged(Location location) {&
&&&&&&& // 获取自己的经纬度点&
&&&&&&& GeoPoint geoPoint = new GeoPoint((int) (location.getLatitude() * 1e6),&
&&&&&&&&&&&&&&& (int) (location.getLongitude() * 1e6));&
&&&&&&& mMapController.setCenter(geoPoint);&
&&&&&&&& addOverLay(geoPoint);&
&&&& * 添加overlay
&&& void addOverLay(GeoPoint geoPoint) {&
&&&&&&& overlays = mMapView.getOverlays();&
&&&&&&& Bitmap bitmap = BitmapFactory.decodeResource(getResources(),&
&&&&&&&&&&&&&&& R.drawable.location);&
&&&&&&& overlay = new MyOverlay(mMapView, bitmap);&
&&&&&&& overlay.setGeoPoint(geoPoint);&
&&&&&&& overlays.add(overlay);//添加自定义overlay&
public class MyOverlay extends Overlay {&
&&& private MapView mapV&
&&& private P&
&&& private P// 屏幕对象的点&
&&& private B&
&&& private GeoPoint geoP// 经纬度点&
&&& public void setGeoPoint(GeoPoint geoPoint) {&
&&&&&&& this.geoPoint = geoP&
&&& public MyOverlay(MapView mapView, Bitmap bitmap) {&
&&&&&&& super();&
&&&&&&& this.mapView = mapV&
&&&&&&& this.bitmap =&
&&& @Override&
&&& public void draw(Canvas canvas, MapView arg1, boolean arg2) {&
&&&&&&& projection = mapView.getProjection();&
&&&&&&& point = new Point();&
&&&&&&& projection.toPixels(geoPoint, point);// 将GeoPoint 转换成point.&
&&&&&&& int x = point.x - bitmap.getWidth() / 2;&
&&&&&&& int y = point.y - bitmap.getHeight();&
&&&&&&& canvas.drawBitmap(bitmap, x, y, new Paint());&
示例显示:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:74614次
积分:1355
积分:1355
排名:千里之外
原创:46篇
转载:67篇
(1)(1)(1)(1)(1)(2)(4)(2)(3)(3)(3)(3)(3)(2)(11)(12)(33)(1)(1)(1)(2)(8)(1)(2)(1)(1)(1)(2)(5)(1)13342人阅读
学习-android(3)
开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.。
下面我简单介绍下百度地图的应用.首先地图所需要的key就不多说了.。
在这里我要说明一点:大家在加入jar包的时候一定要加入到libs文件夹中,(不可以是lib),不然运行会出现下面这个错误,我也为此纠结过.希望对你们有帮助,在此write it for you.
大家可以参考官方文档和给出的DEMO进行学习,有问题大家一起研究.
在这里我重点说明一下如何改变百度地图在定位自己时的默认蓝色圆圈.
Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示。
MyLocationOverlay:一个负责显示用户当前位置的Overlay。
第一种方法很简单,我们只需要创建一个继承MyLocationOverlay的类重写其drawMyLocation方法即可.
protected void drawMyLocation(android.graphics.Canvas canvas,
MapView mapView,
android.location.Location lastFix,
GeoPoint myLocation,
long when)
绘制“我的位置”点。默认情况下,绘制一个动画的“蓝色点”,可能由一个蓝色圆盘所围绕来标识精度。而且, 如果用户的位置移动到屏幕的边缘,我们已经在构造函数力提供了一个 MapController , 将使用滚动来重新确定地图的中心。
Parameters:
canvas - 待绘制的画布。
mapView - 调用绘制方法的mapView。
lastFix - 最后一个收到的位置信息。
myLocation - 最后一个位置的坐标,萃取成为一个方便的GeoPoint 。
when - 绘制的时间,毫秒。
protected void drawMyLocation(Canvas canvas, MapView mapView,
Location lastFix, GeoPoint myLocation, long when) {
Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(myLocation, point);
int x = point.x - bitmap.getWidth() / 2;
int y = point.y - bitmap.getHeight();
canvas.drawBitmap(bitmap, x, y, new Paint());
} catch (Exception e) {
super.drawMyLocation(canvas, mapView, lastFix, myLocation, when);
这里简单说明一下:point获取到的是我们在屏幕上的点.而我们要显示的图标应该在这个点的正上方,因此x,y的计算大家都不难理解了.
接下来的操作和原来的一样,只需要调用即可.
void InitMap() {
bMapManager = new BMapManager(this);
bMapManager.init(Key, this);
super.initMapActivity(bMapManager);
mMapView = (MapView) findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件
mMapView.setDrawOverlayWhenZooming(true);// 缩放图标仍然show
mMapController = mMapView.getController();
mMapController.setZoom(16); // 设置地图zoom级别
void addMyOverLay() {
locationOverlay = new LocationOverLay(MainActivity.this, mMapView);
overlays = mMapView.getOverlays();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.location);
locationOverlay.setBitmap(bitmap);
overlays.add(locationOverlay);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle(&jjhappyforever...&);
InitMap();
addMyOverLay();
protected void onDestroy() {
if (bMapManager != null) {
bMapManager.destroy();
bMapManager =
super.onDestroy();
protected void onPause() {
if (bMapManager != null) {
bMapManager.getLocationManager().removeUpdates(this);
locationOverlay.disableMyLocation();
locationOverlay.disableCompass(); // 打开指南针
bMapManager.stop();
super.onPause();
protected void onResume() {
if (bMapManager != null) {
bMapManager.getLocationManager().requestLocationUpdates(this);
locationOverlay.enableMyLocation();
locationOverlay.enableCompass(); // 打开指南针
bMapManager.start();
super.onResume();
* Location 监听
* @param arg0
public void onLocationChanged(Location location) {
// 获取自己的经纬度点
GeoPoint geoPoint = new GeoPoint((int) (location.getLatitude() * 1e6),
(int) (location.getLongitude() * 1e6));
mMapController.setCenter(geoPoint);
}定位居中显示.
示例显示:
第二种方案:
我们bMapManager.getLocationManager().requestLocationUpdates(this);获取自身的GeoPoint.那么我们可以根据该GeoPoint创建一个Overlay.其实MyLocationOverlay是Overlay的一个子类,这样我们就不难理解了。发话不多说了,
在这里我们根据自身的GeoPoint添加一个Overlay
* Location 监听
* @param arg0
public void onLocationChanged(Location location) {
// 获取自己的经纬度点
GeoPoint geoPoint = new GeoPoint((int) (location.getLatitude() * 1e6),
(int) (location.getLongitude() * 1e6));
mMapController.setCenter(geoPoint);
addOverLay(geoPoint);
* 添加overlay
void addOverLay(GeoPoint geoPoint) {
overlays = mMapView.getOverlays();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.location);
overlay = new MyOverlay(mMapView, bitmap);
overlay.setGeoPoint(geoPoint);
overlays.add(overlay);//添加自定义overlay
public class MyOverlay extends Overlay {
private MapView mapV
private P// 屏幕对象的点
private GeoPoint geoP// 经纬度点
public void setGeoPoint(GeoPoint geoPoint) {
this.geoPoint = geoP
public MyOverlay(MapView mapView, Bitmap bitmap) {
this.mapView = mapV
this.bitmap =
public void draw(Canvas canvas, MapView arg1, boolean arg2) {
projection = mapView.getProjection();
point = new Point();
projection.toPixels(geoPoint, point);// 将GeoPoint 转换成point.
int x = point.x - bitmap.getWidth() / 2;
int y = point.y - bitmap.getHeight();
canvas.drawBitmap(bitmap, x, y, new Paint());
}示例显示:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24950次
排名:千里之外
(1)(2)(2)(4)

我要回帖

更多关于 如何消除段落标记 的文章

 

随机推荐