2024年4月16日发(作者:)
覆盖是用来向MapView中添加注释和单击处理的方法。每一个覆盖都可以直接在画
布上绘制2D原语,包括文本、直线、图片和各种形状,之后它们会被用来覆盖到Map View
之上。
可以向一个地图中添加多个覆盖。分配给一个Map View的所有覆盖都是作为层而
添加的,较新的层可能会模糊较旧的层。用户单击是通过栈进行传递的,直到它们被覆盖
处理,或者作为Map View本身的单击进行注册为止。
1. 创建新的覆盖
每一个覆盖都是一块具有透明背景的画布,可以把它作为一个图层放在Map View
的上面,并用它来处理地图触摸事件。
要添加新的覆盖,需要通过扩展Overlay来创建一个新的类。然后重写draw方法
来绘制希望添加的注释,并重写onTap方法来对用户的单击做出反应(通常是当用户单击
由这个覆盖所添加的注释时)。
下面的代码段显示了创建新的覆盖的框架,它可以用来绘制注释和处理用户单击:
Java代码:
1. import ;
2. import w;
3. import y;
4. public class MyOverlay extends Overlay {
5. @Override
6. public void draw(Canvas canvas, MapView mapView, boolean shadow) {
7. if (shadow == false)
8. { [ ... Draw annotations on main map layer ... ] }
9. else { [ ... Draw annotations on the shadow layer ... ] }
10. }
11. @Override
12. public boolean onTap(GeoPoint point, MapView mapView) {
13. // 如果这个覆盖处理了屏幕接触,就返回true return false;
14. }
15. }
复制代码


发布评论