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

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

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

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

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

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

前面定义了:

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

类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(); 返回平台相关图象对象

你可能感兴趣的:(api)