- 浏览: 262214 次
-
最新评论
文章列表
本地查询可以查询指定区域内诸如宾馆,邮局等用户感兴趣的地方。其使用方法和地址查询非常类似。
下面示例查询32.0616667, 118.7777778为中心点一定区域内宾馆的信息。
package com.pstreets.gisengine.demo.lwuit;
//--------------------------------- IMPORTS ------------------------------------
import com.mapdigit.gis.MapPoint;
import com.mapdigit.gis.geometry.GeoLa ...
- 2012-07-16 09:45
- 浏览 249
- 评论(0)
可以通过RasterMap的getDirection()方法来查询路径,和查询地址类似,路径查询的结果也是通过回调函数的方式来通知应用程序的,下面的例子返回南京到北京的路径。返回结果存放在MapDirection中,MapDirection包含了路径的详细信息,包括路径的每个步骤,长度,时间,方向等。
//--------------------------------- PACKAGE ------------------------------------
package com.pstreets.gisengine.demo.lwuit;
//----------------- ...
- 2012-07-16 09:27
- 浏览 163
- 评论(0)
对于简单的封闭图形(路径无相交的现象),图形的外部和内部和容易判断,但如果路径有相交的情况,对应重叠的部分,使用不同的填充模式,内部和外部的定义有所不同。填充模式可以分为两类:
EVEN_ODD 意味着如果用一条直线横贯图形时,外部和内部交替出现。
WINDING 对应一条曲线C和指定点P,创建一条由P出发的任意方向无限延伸的直线。找到曲线C和这条直线的所有交点。计算所有由顺时针方向和曲线相交的交点的个数,再计算由逆时针方向和曲线相交的个数,如果两个数相等,表示这个点在曲线内部,如果不等,表示这个点在曲线外部。
Android的Path.FillType除了支持上面两种模式外,还 ...
- 2012-07-16 09:20
- 浏览 190
- 评论(0)
android.graphics.Path允许使用线段,二次曲线,三次曲线构成路径(类似SVG),Canvas缺省绘制Path时为单色细实线,但在例Android ApiDemos示例解析(65):Graphics->Drawable->ShapeDrawable
我们看到使用PathEffect来修改路径的模式(使用DiscretePathEffect随机更改线段的粗细)。
本例更详细的介绍了其它几种PathEffect的显示效果:
CornerPathEffect 修改路径上线段连接处的显示模式(从尖角改为可以指定圆弧半径的圆角连接)。
DashPathEffect ...
- 2012-07-16 09:18
- 浏览 449
- 评论(0)
引路蜂地图API中同样提供了地址查询,路径查询,本地搜索,IP地址查询,地址反编码(通过经纬度查地名)等。
地址查询(或称为地址编码)是将输入的地名(如南京林业大学)转换成对应的经纬度坐标然后将其显示在地图上。
package com.pstreets.gisengine.demo.lwuit;
//--------------------------------- IMPORTS ------------------------------------
import com.mapdigit.gis.MapPoint;
import com.pstreets.gisen ...
- 2012-07-16 09:13
- 浏览 488
- 评论(0)
Canvas提供drawText,drawPostText在屏幕上显示文字,字体的类型和大小是通过设置paint 的属性来定义的。
Paint同时也提供了使用当前字体和大小绘制文字串时,文字在屏幕上占据的大小(宽度,高度,范围等)。
MeasureText 介绍了如何使用Paint提供的方法来测量文字的大小。
mPaint.setTextSize(64);
mPaint.setTypeface(Typeface.create(Typeface.SERIF,
Typeface.ITALIC));
...
int count = mPaint.getTextWidths(text, 0, ...
- 2012-07-15 14:25
- 浏览 404
- 评论(0)
Canvas 在一般的情况下可以看作是一张画布,所有的绘图操作如drawBitmap, drawCircle都发生在这张画布上,这张画板还定义了一些属性比如Matrix,颜色等等。
但是如果需要实现一些相对复杂的绘图操作,比如多层动画,地图(地图可以有多个地图层叠加而成,比如:政区层,道路层,兴趣点层)。
Canvas提供了图层(Layer)支持,缺省情况可以看作是只有一个图层Layer。如果需要按层次来绘图,Android的Canvas可以使用SaveLayerXXX, Restore 来创建一些中间层,对于这些Layer是按照“栈结构“来管理的:
创建一个新的Layer到“栈”中, ...
- 2012-07-15 14:24
- 浏览 487
- 评论(0)
RasterMap 有两个方法可以用于平移地图,panTo 将地图移动到指定经纬度坐标,panDirection(dx,dy) 将地图从当前位置平移dx,dy 个象素。
下列示例可以上,下,左,右平移地图。
package com.pstreets.gisengine.demo.lwuit;
//-------------------------- ...
- 2012-07-15 14:23
- 浏览 526
- 评论(0)
本例FingerPaint实现了使用手指在屏幕上任意涂鸦,支持颜色选择,多种画刷模式,并可以擦除部分绘图。
例子使用Path来通过onTouchEvent事件记录手指在屏幕上的绘制路线。
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
touch_start(x, y);
invalidate() ...
- 2012-07-15 14:21
- 浏览 514
- 评论(0)
创建RasterMap实例之后,可以对其进行放大,缩小,平移,设置地图类型等操作。
在第一个地图应用中,在调用RasterMap.setCenter 时可以指定地图类型,另外也可以使用RasterMap.setMapType来更改地图类型,地图开发包中定义了Google 地图,Google 中国地图,Bing 地图,Bing 卫星图等20多种地图类型,也就可设置自已定义地图类型。
下面的例子顺序显示Google 中国地图,MapAbc地图,Bing 中国地图
//--------------------------------- PACKAGE ---------------------- ...
- 2012-07-15 14:18
- 浏览 432
- 评论(0)
除了在XML中使用Shape Drawable 资源外(如上例),也可以使用代码来定义Shape Drawable,下图为Android中定义的Shape 类层次图:
如果熟悉二维图形开发,Path, Arc, Rect, Oval, RoundRect应该不陌生。 本例ShapeDrawable使用代码来创建各种ShapeDrawable 并自定义一个Shape :MyShapeDrawable.
Android 中的 Shader 类同于其它平台的画刷Brush (可以由单色画刷,线性渐变画刷,材质bitmap画刷等)。
ShapeDrawable 中的几个例子,只有第四个Roun ...
- 2012-07-14 12:04
- 浏览 404
- 评论(0)
Android平台的Drawable代表可以绘制在屏幕上的资源,可以使用getDrawable(int)从资源文件中获取Drawable 资源,或者在XML资源文件中采用 @drawable来引用一个drawable资源。
Drawable资源可以分为 Bitmap ,Nine-Patch, Layer List, State List, Level List, Transition ,Insert ,Clip ,Scale 和Shape 多种类型。
本例GradientDrawable 介绍了 Sharp Drawable资源的用法:
Shape资源可以定义一个矩形 (rectangle ...
- 2012-07-14 12:02
- 浏览 537
- 评论(0)
依旧采用NetBean作为开发IDE,创建一个LwuitGISEngineTutorial项目,将引路蜂地图开发包libgisengine.jar 和LWUIT开发包 LWUIT.jar复制到lib子目录下,并作为外部Jar库文件添加到项目中。将LWUITTheme.res 和 Licence文件guidebee.lic 放在res 子目录下,并将res目录添加到项目中。
为避免重复,就示例共用的代码设计一个基类,MapDemoLWUIT,并从LWUIT库的Form派生一个子类MapCanvas用来显示地图
//------------------------------------ ...
- 2012-07-14 08:27
- 浏览 224
- 评论(0)
支持Android系统的手机的种类很多,每种手机的屏幕大小和分辨率可能有所不同(屏幕像素密度),Android系统提供了方法在这些有着不同大小,屏幕像素密度的手机上自动调整显示界面的布局和大小,同时Android也提供了相关API允许开发者针对不同的屏幕大小和显示密度来控制UI以便应用在不同配置的设备屏幕上都有良好的显示效果。
尽管Android系统提供了屏幕自适应功能可以解决大部分不同屏幕UI显示的问题,应用还是需要做一些能支持不同屏幕配置的工作,这样可以给最终用户在不同屏幕配置下都取的很好的用户体验。
在介绍本例之前,先解释一些术语:
屏幕大小(Screen Size): 设备屏幕的物 ...
- 2012-07-13 08:31
- 浏览 279
- 评论(0)
LWUIT是Sun (现在是Oracle)推出的基于Java ME平台的一个UI开发包,类似于Swing的MVC构架,支持多种Layout,Theme,动画,3D过渡效果。个人认为是目前在Java ME上最好的UI工具包,而且是免费的。
引路蜂Java ME地图开发包,加上Gis.Drawing在LWUIT上的实现,可以开发出基于LWUIT的地图应用,支持多种地图类型,多图层管理,地理编码服务,地图位置匹配,查询路径以及电子导航等。
在Java ME平台上也可以直接使用javax.microedition.lcdui 开发MIDlet,Java ME引路蜂地图开发示例:第一个地图应用。由于L ...
- 2012-07-13 08:28
- 浏览 249
- 评论(0)