引路蜂地图API:图形子系统

399 篇文章 2 订阅
97 篇文章 0 订阅

如前文所述,引路蜂地图开发包中Gis.Drawing 类定义了几个抽象类或接口,对不同平台的图形系统进行了抽象。以Java ME平台为例,可以使用Sun的LWUIT 或是MIDP 自带的javax.microedition.lcudi  来绘制几何图形或是图象。这些绘图的接口不同,如果在引路蜂地图开发包直接引用这些类方法,这样不同平台就会需要编译不同的开发包。通过抽象处理,引路蜂地图开发包并直接调用平台相关的图形类方法。而是通过 开发包 + 平台相关图形系统实现的方法,就可以实现跨平台。下面是Java ME平台的一个例子。

通过对LWUIT 和 MIDP 图形系统接口的实现,同一个库可以用于不同的平台。

实际上Java ME 平台上同一个库也可以用于Blackberry 应用,Blackberry除了支持MIDP之外,还定义自已的UI Framework ,这是只要实现在 Blackberry 的UI Framework上的Gis.Drawing接口就可以开发Blackberry应用(非 Java ME Midlet 应用)。
      Gis.Drawing 定义了地图开发包中所需要的最小功能集,如果你开发的应用中不需要使用矢量地图,则与矢量地图相关的一些类或方法则可以为空。
这里给出Gis.Drawing中定义的类或方法详细列表,是一个非常小的功能集合,也就是说如果想支持新的平台,实现这些方法是一个非常简单的任务。

前面定义了:

AbstractGraphcsFactory抽象图形类工厂,主要用于创建新的图象对象.
IGraphicsGraphics接口定义,定义了用于图形绘制的一些方法。
IFontFont 定义,如果不使用矢量地图,可以不实现该类。
IImageImage 图象接口,定义了取得图象大小等方法。

类AbstractGraphcsFactory定义

Java 定义

方法名 描述
abstract public IImage createImage

(int[] rgb, int width, int height);

根据int []数组创建IImage 对象。

Rgb为一个存取每个像素值的整数数组。

为ARGB 格式。

Width,height 为要创建图形的大小。

abstract public IImage createImage

(byte[] bytes, int offset, int len);

从一个字节数组中创建IImage 对象。这引数组为一般为图象的png 文件数据。
abstract public IImage createImage(int width, int height);创建一个大小为width ,height 的空IImage 对象。

C# 定义

方法名 描述
public abstract IImage CreateImage(int[] rgb, int width, int height);根据int []数组创建IImage 对象。

Rgb为一个存取每个像素值的整数数组。

为ARGB 格式。

Width,height 为要创建图形的大小。

public abstract IImage CreateImage(byte[] bytes, int offset, int len);从一个字节数组中创建IImage 对象。这引数组为一般为图象的png 文件数据。
public abstract IImage CreateImage(int width, int height);创建一个大小为width ,height 的空IImage 对象。

接口 IGraphics定义

Java 定义

方法名描述
public void setClip(int x, int y,int width,int height)设置绘制剪裁区域,可以空实现。
public void drawImage(IImage img, int x, int y);在位置(x,y)处绘制img。
public void drawLine(int x1, int y1, int x2, int y2)绘制一条线段
public void setColor(int RGB);设置颜色
public void fillRect(int x, int y, int width, int height);填充矩形
public void drawRect(int x,int y,int width, int height);绘制矩形
public void drawString(String str,int x,int y);显示字符串,只在矢量地图时需要。
public void setFont(IFont font);设置字体,只在矢量地图时需要。
public void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3);填充三角形,只在矢量地图时需要。

C# 定义

方法名描述
void SetClip(int x, int y, int width, int height);设置绘制剪裁区域,可以空实现。
void DrawImage(IImage img, int x, int y);在位置(x,y)处绘制img。
void DrawImage(IImage img, int x, int y,int transparentColor);在位置(x,y)处绘制img,只在windows mobile 时需要,transparentColor为透明色。其它时候,调用void DrawImage(IImage img, int x, int y)即可。
void DrawLine(int x1, int y1, int x2, int y2);绘制一条线段
void SetColor(int rgb);设置颜色
void FillRect(int x, int y, int width, int height);填充矩形
void DrawRect(int x, int y, int width, int height);绘制矩形
void DrawString(string str, int x, int y);显示字符串,只在矢量地图时需要。
void SetFont(IFont font);设置字体,只在矢量地图时需要。

IFont 类定义,IFont 只在使用矢量地图时需要定义,其它情况可以使用空实现。

Java定义

方法名描述
public Object getNativeFont();返回平台相关字体对象。
public int charsWidth(char[] ch,

                      int offset,

                      int length);

返回指定字符串宽度。

C#定义

方法名描述
object GetNativeFont();返回平台相关字体对象。
int CharsWidth(char[] ch, int offset, int length);返回指定字符串宽度。

IImage 类定义

Java定义

方法名描述
public IGraphics getGraphics();取得该图象对象的相关画板类,用于在该图象上绘制图形。
public int[] getRGB();返回该图象的int[]数组,只在矢量地图时需要
public int getHeight()返回图象高度
public int getWidth();返回图象宽度
public Object getNativeImage();返回平台相关图象对象

C#定义

方法名描述
IGraphics GetGraphics();取得该图象对象的相关画板类,用于在该图象上绘制图形。
int[] GetRGB();返回该图象的int[]数组,只在矢量地图时需要
int GetHeight();返回图象高度
int GetWidth();返回图象宽度
object GetNativeImage();返回平台相关图象对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值