public class MapView
extends ViewGroup
显示地图的视图。
一个显示地图的视图,当被焦点选中时,它能捕获按键事件和触摸手势去完成地图的基本操作,如平移、缩放等。
限定符和类型 | 类和说明 |
---|---|
static class |
MapView.LayoutParams
每个子视图与MapView关联的布局信息。
|
static interface |
MapView.MapViewEventListener
MapView 事件的监听器接口。
|
限定符和类型 | 字段和说明 |
---|---|
boolean |
fixedLevelsEnabled
是否开启固定比例尺可视化效果(即是否关闭任意比例尺缩放) true代表开启固定比例尺可视化效果,false代表任意比例尺缩放效果,默认为false
|
boolean |
isDetroy |
构造器和说明 |
---|
MapView(Context context)
构造函数。
|
MapView(Context context, AttributeSet attrs)
构造函数。
|
MapView(Context context, AttributeSet attrs, int defStyle)
构造函数。
|
限定符和类型 | 方法和说明 |
---|---|
void |
addLayer(AbstractTileLayerView layerView)
向 MapView 视图中添加一个图层视图子项。
|
void |
addLayer(AbstractTileLayerView layerView, int index)
向 MapView 视图的指定位置添加一个图层视图子项.
|
void |
addLayers(AbstractTileLayerView[] layerViews)
向 MapView 视图中添加一组图层视图子项.
|
void |
addMapViewEventListener(MapView.MapViewEventListener eventListener)
添加一个 MapView 事件监听器。
|
protected boolean |
checkLayoutParams(ViewGroup.LayoutParams p)
检查布局参数。
|
void |
clearTilesInDB()
清除运行时手机端的SD卡中所有图层的缓存瓦片。
|
void |
clearTilesInMemory()
清除运行时内存中缓存瓦片。
|
void |
destroy()
销毁 MapView 对象,退出前调用。
|
protected void |
dispatchDraw(Canvas canvasParam)
分发给子组件进行绘制。
|
void |
displayZoomControls(boolean takeFocus)
设置是否显示缩放的控件按钮。
|
protected MapView.LayoutParams |
generateDefaultLayoutParams()
获取一个Layout的默认参数的集合。
|
ViewGroup.LayoutParams |
generateLayoutParams(AttributeSet attrs)
获取一个Layout参数的集合,其中参数带有ViewGroup.LayoutParams.WRAP_CONTENT的宽度, ViewGroup.LayoutParams.WRAP_CONTENT的高度和坐标(0,0).
|
protected ViewGroup.LayoutParams |
generateLayoutParams(ViewGroup.LayoutParams p)
获取一个Layout参数的集合。
|
AbstractTileLayerView |
getBaseLayer()
返回地图视图的第一个子项图层视图。
|
BoundingBox |
getBounds()
返回地图地理范围。
|
Point2D |
getCenter()
返回地图中心点坐标。
|
MapController |
getController()
返回地图的 MapController对象,可用于控制和驱动平移和缩放。
|
CoordinateReferenceSystem |
getCRS()
返回地图坐标参考系。
|
double |
getDefResolution()
返回全幅显示的分辨率
|
AbstractTileLayerView |
getLayerById(int resourceId)
返回地图视图中指定的图层视图。
|
AbstractTileLayerView[] |
getLayers()
返回地图视图中的所有图层视图数组。
|
Map |
getMap()
获取 Map 对象,可以通过它对当前地图进行距离查询、SQL查询、地图量算等操作,这些操作均使用iServer的接口。
|
int |
getMaxZoomLevel()
返回地图的最大缩放级别。
|
Overlay |
getOverlayByKey(java.lang.String key)
通过 Overlay 对象的 key 获取该 Overlay 对象。
|
java.util.List<Overlay> |
getOverlays()
返回 Overlay列表。
|
Projection |
getProjection()
返回地图视图对应的投影工具类对象。
|
double |
getRealResolution()
返回地图当前真实的分辨率。
|
double |
getResolution()
返回地图当前视窗的分辨率。
|
double[] |
getResolutions()
返回地图的分辨率数组。
|
double |
getScale()
返回地图当前比例尺。
|
double[] |
getScales()
返回地图的比例尺数组。
|
BoundingBox |
getViewBounds()
获取屏幕范围所对应的地理范围(视图范围)
|
int |
getZoomLevel()
返回当前的缩放级别
|
protected void |
onAttachedToWindow()
将地图加载到当前屏幕。
|
void |
onChildViewAdded(View parent, View child)
添加子视图。
|
void |
onChildViewRemoved(View parent, View child)
删除子视图。
|
protected void |
onDetachedFromWindow()
当视图从窗口分离时调用,用于清除缩放控件。
|
void |
onFocusChanged(boolean hasFocus, int direction, Rect unused)
改变地图的焦点
|
boolean |
onKeyDown(int keyCode, KeyEvent event)
相应按键按下事件
|
boolean |
onKeyUp(int keyCode, KeyEvent event)
相应按键抬起事件
|
protected void |
onLayout(boolean changed, int l, int t, int r, int b)
分配所有的子元素的大小和位置。
|
protected void |
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
确定所有子元素的大小。
|
protected void |
onSizeChanged(int w, int h, int oldw, int oldh)
重新调整地图对象的尺寸。
|
boolean |
onTouchEvent(MotionEvent event)
响应所有触屏事件。
|
boolean |
onTrackballEvent(MotionEvent event)
响应跟踪球事件。
|
void |
refresh()
刷新地图窗口。
|
void |
removeAllLayers()
移除地图视图中的所有图层视图。
|
void |
removeLayer(AbstractTileLayerView layerView)
移除指定的图层视图。
|
void |
removeLayer(int index)
移除指定的图层视图
|
void |
removeMapViewEventListener(MapView.MapViewEventListener eventListener)
移除指定的 MapView 事件监听器。
|
void |
removeOverlayByKey(java.lang.String key)
通过Overlay名称删除该Overlay对象
|
void |
setBuiltInZoomControls(boolean on)
设置是否启用内置的缩放控件。
|
void |
setCacheSize(int size)
设置缓存大小,单位是张,指明最多缓存多少瓦片,每张约占256KB内存计算
|
protected void |
setScaleByZoom(float zoomScale, int focusX, int focusY)
专门为ZoomAnimator进行缩放动画时每一步动画时设置相应的缩放大小和缩放中心点
|
void |
setScaleControlPosition(int positionX, int positionY)
用户自定义比例尺控件在屏幕上的布局位置
|
void |
setUseDoubleTapEvent(boolean useDoubleTapEvent)
设置是否开启响应双击事件,交互的时候可以灵活使用
|
void |
setUseScrollEvent(boolean on)
设置是否开启响应平移事件,绘制点线面的时候需要关闭平移事件才能绘制成功。
|
void |
setViewBounds(BoundingBox boundingBox)
设置当前屏幕范围所展示的地理范围,其中必须left
|
void |
showScaleControl(boolean show)
设置是否显示比例尺控件
|
void |
startClearCacheTimer(int minute)
启动定时清除缓存定时器,清楚缓存时也清除服务器中的缓存。
|
void |
startClearCacheTimer(int minute, boolean clearServerCache)
启动定时清除缓存定时器,并根据 clearServerCache 的值判断是否定时清除服务器中的缓存。
|
void |
stopClearCacheTimer()
停止和销毁清除缓存的定时器。
|
Point2D |
toMapPoint(int screenX, int screenY)
将屏幕上的像素点坐标转化为对应的地理坐标。
|
Point2D |
toMapPoint(Point point)
将屏幕坐标转化为对应的地理坐标。
|
Point |
toScreenPoint(Point2D point2D)
将一个地理点坐标转化为屏幕点坐标。
|
void |
zoomIn()
地图放大。
|
void |
zoomOut()
地图缩小。
|
public boolean isDetroy
public boolean fixedLevelsEnabled
是否开启固定比例尺可视化效果(即是否关闭任意比例尺缩放) true代表开启固定比例尺可视化效果,false代表任意比例尺缩放效果,默认为false
public MapView(Context context)
构造函数。
context
- 一个 Activity 对象。public MapView(Context context, AttributeSet attrs)
构造函数。
context
- 一个 Activity 对象。attrs
- 属性信息。public MapView(Context context, AttributeSet attrs, int defStyle)
构造函数。
context
- 一个 Activity 对象。attrs
- 属性信息。defStyle
- 风格标识。public Map getMap()
获取 Map 对象,可以通过它对当前地图进行距离查询、SQL查询、地图量算等操作,这些操作均使用iServer的接口。
public CoordinateReferenceSystem getCRS()
返回地图坐标参考系。
public Point2D getCenter()
返回地图中心点坐标。
public double getResolution()
返回地图当前视窗的分辨率。
public double getRealResolution()
返回地图当前真实的分辨率。
public double getDefResolution()
返回全幅显示的分辨率
public double getScale()
返回地图当前比例尺。
public BoundingBox getBounds()
返回地图地理范围。该属性等于 MapView 中加载的所有图层的地理范围的并集。
public double[] getResolutions()
返回地图的分辨率数组。该属性与比例尺数组 scales 属性只需设置其一即可,系统内部会自动进行转换(map包含非动态图层就可能不等同)。
public double[] getScales()
返回地图的比例尺数组。该属性与分辨率数组 resolutions 属性只需设置其一即可(map包含非动态图层就可能不等同)。
public Point2D toMapPoint(Point point)
point
- 屏幕坐标。public Point2D toMapPoint(int screenX, int screenY)
将屏幕上的像素点坐标转化为对应的地理坐标。如果没有添加任何地图时则返回空。
screenX
- 当前点离屏幕左侧的坐标的长度。screenY
- 当前点离屏幕顶部的坐标的长度。public Point toScreenPoint(Point2D point2D)
将一个地理点坐标转化为屏幕点坐标。
point2D
- 地理点坐标。public void setCacheSize(int size)
设置缓存大小,单位是张,指明最多缓存多少瓦片,每张约占256KB内存计算
size
- 缓存张数public BoundingBox getViewBounds()
获取屏幕范围所对应的地理范围(视图范围)
public void setViewBounds(BoundingBox boundingBox)
设置当前屏幕范围所展示的地理范围,其中必须left
boundingBox
- 地理范围左上右下protected void onSizeChanged(int w, int h, int oldw, int oldh)
重新调整地图对象的尺寸。如果覆盖该方法,一定要通过调用super.onSizeChanged()。
w
-h
-oldw
-oldh
-public void zoomIn()
地图放大。
public void zoomOut()
地图缩小。
public Overlay getOverlayByKey(java.lang.String key)
key
- Overlay 对象的 key。public void removeOverlayByKey(java.lang.String key)
key
-protected boolean checkLayoutParams(ViewGroup.LayoutParams p)
检查布局参数。
p
- 布局参数。public void displayZoomControls(boolean takeFocus)
设置是否显示缩放的控件按钮。
takeFocus
- 是否显示缩放的控件按钮。protected MapView.LayoutParams generateDefaultLayoutParams()
获取一个Layout的默认参数的集合。
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs)
获取一个Layout参数的集合,其中参数带有ViewGroup.LayoutParams.WRAP_CONTENT的宽度, ViewGroup.LayoutParams.WRAP_CONTENT的高度和坐标(0,0).
attrs
-protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p)
获取一个Layout参数的集合。
p
- Layout参数的集合。public MapController getController()
返回地图的 MapController对象,可用于控制和驱动平移和缩放。
public java.util.List<Overlay> getOverlays()
返回 Overlay列表。
public int getMaxZoomLevel()
返回地图的最大缩放级别。
public Projection getProjection()
返回地图视图对应的投影工具类对象。
public int getZoomLevel()
返回当前的缩放级别
protected void onAttachedToWindow()
将地图加载到当前屏幕。
protected void onDetachedFromWindow()
当视图从窗口分离时调用,用于清除缩放控件。
protected void dispatchDraw(Canvas canvasParam)
canvasParam
- 画布protected void onLayout(boolean changed, int l, int t, int r, int b)
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
public void onFocusChanged(boolean hasFocus, int direction, Rect unused)
public boolean onKeyDown(int keyCode, KeyEvent event)
public boolean onKeyUp(int keyCode, KeyEvent event)
public boolean onTouchEvent(MotionEvent event)
响应所有触屏事件。
event
- 事件。public boolean onTrackballEvent(MotionEvent event)
响应跟踪球事件。
event
- 事件。public void setBuiltInZoomControls(boolean on)
设置是否启用内置的缩放控件。
on
- 是否启用内置的缩放控件。public void setUseScrollEvent(boolean on)
设置是否开启响应平移事件,绘制点线面的时候需要关闭平移事件才能绘制成功。
on
- 是否开启响应平移事件。public void setUseDoubleTapEvent(boolean useDoubleTapEvent)
设置是否开启响应双击事件,交互的时候可以灵活使用
useDoubleTapEvent
- 是否开启响应双击事件public void destroy()
销毁 MapView 对象,退出前调用。
public void clearTilesInMemory()
清除运行时内存中缓存瓦片。
public void clearTilesInDB()
清除运行时手机端的SD卡中所有图层的缓存瓦片。
public void startClearCacheTimer(int minute)
启动定时清除缓存定时器,清楚缓存时也清除服务器中的缓存。
minute
- 清除缓存的时间间隔,单位为分钟。public void startClearCacheTimer(int minute, boolean clearServerCache)
启动定时清除缓存定时器,并根据 clearServerCache 的值判断是否定时清除服务器中的缓存。
minute
- 清除缓存的时间间隔,单位为分钟。clearServerCache
- 是否定时清除服务器中的缓存。public void stopClearCacheTimer()
停止和销毁清除缓存的定时器。
public void addMapViewEventListener(MapView.MapViewEventListener eventListener)
添加一个 MapView 事件监听器。
eventListener
- MapView 事件的监听器对象。public void removeMapViewEventListener(MapView.MapViewEventListener eventListener)
移除指定的 MapView 事件监听器。
eventListener
- 要移除的 MapView 事件监听器。public void addLayers(AbstractTileLayerView[] layerViews)
向 MapView 视图中添加一组图层视图子项.
layerViews
- 图层视图数组。public void addLayer(AbstractTileLayerView layerView)
向 MapView 视图中添加一个图层视图子项。
layerView
- 要添加的图层视图。public void addLayer(AbstractTileLayerView layerView, int index)
向 MapView 视图的指定位置添加一个图层视图子项.
layerView
- 要添加的图层视图index
- 图层添加的位置索引。public AbstractTileLayerView getLayerById(int resourceId)
返回地图视图中指定的图层视图。
resourceId
- 图层标识。public AbstractTileLayerView[] getLayers()
返回地图视图中的所有图层视图数组。
public void removeAllLayers()
移除地图视图中的所有图层视图。
public void removeLayer(AbstractTileLayerView layerView)
移除指定的图层视图。
layerView
- 要移除的图层视图。public void removeLayer(int index)
index
-public void refresh()
刷新地图窗口。
public void onChildViewAdded(View parent, View child)
添加子视图。
parent
- 父视图。child
- 子视图。public void onChildViewRemoved(View parent, View child)
删除子视图。
parent
- 父视图。child
- 子视图。public AbstractTileLayerView getBaseLayer()
返回地图视图的第一个子项图层视图。
public void showScaleControl(boolean show)
设置是否显示比例尺控件
show
-public void setScaleControlPosition(int positionX, int positionY)
用户自定义比例尺控件在屏幕上的布局位置
positionX
- 屏幕位置xpositionY
- 屏幕位置yprotected void setScaleByZoom(float zoomScale, int focusX, int focusY)
专门为ZoomAnimator进行缩放动画时每一步动画时设置相应的缩放大小和缩放中心点
zoomScale
- 缩放大小focusX
- 缩放中心点x值focusY
- 缩放中心点y值