Android中Google地图标记(Marker)
2010-07-15 20:05:00 来源:WEB开发网同Polyline一样,地图标记Marker依旧没有出现在Android中的Map API中。自己动手实现了一个极其简单的Marker类,别的不多述,直接上代码。
package com.blogbus.westyi.overlay;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Point;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;
/**
* 地图标记层
*
* @author westyi
*
*/
public class Marker extends Overlay {
private GeoPoint point = null;// 要插入标记的经纬度位置
private Bitmap bmp = null; // 标记使用的图标
private Point deviation = null; // 图标绘制偏移量
/**
* 指定GeoPoint,图标Bitmap及图标偏移量Point构造Marker.
*
* @param point
* 放置图标的GeoPoint
* @param bmp
* 图标Bitmap
* @param deviation
* 图标位置偏移量,canvas画图从左向右,从上到下计算坐标,所以偏移值一般是负值
*/
public Marker(GeoPoint point, Bitmap bmp, Point deviation) {
this.point = point;
this.bmp = bmp;
this.deviation = deviation;
}
/**
* 绘制图标,注意图标位置偏移量及地图坐标转换
*/
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (!shadow) {// 不是绘制shadow层
Projection projection = mapView.getProjection();
if (point != null && bmp != null) {
Point pos = projection.toPixels(point, null);
//需要添加偏移量
canvas.drawBitmap(bmp, pos.x + deviation.x, pos.y + deviation.y, null);
}
}
}
}
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接