地图 Map


概述

        Map 用于装载各类图层数据,负责完成用户通过鼠标或键盘与地图的交互操作,如缩放、平移、绘制等操作;与地图浏览辅助控件相关联,如鹰眼控件、罗盘、放大镜等。

Map 地图控件结构图

图1 Map 地图控件结构图

(虚线框表示抽象类,实线框表示可创建类)

如上图所示:

        总之,Map 是地理信息系统数据和操作的承载平台,要实现一个地理信息系统首先必须加载一个 Map。

        Map 本身有一些重要属性,它们的设置会影响地图数据的显示状态,下表列出了 Map 的常用属性,其他属性请参见程序员参考 Map 对象。

表1 Map 常用属性

  接口 说明
公共属性 action 获取或者设置地图当前的操作,默认值为平移 Pan。
地图操作用于完成通过鼠标或键盘与地图进行交互的操作,它们都继承 MapAcion,如平移(Pan)、放大(ZoomIn)、绘制点/线/面等。
公共属性 CRS 获取或设置地图的坐标参考系。坐标参考系使用 EPSG 发布的代表特定椭球体、单位、地理坐标系或投影坐标系的 Well Konwn ID 值(简称 WKID),例如 “EPSG:4326” 代表 WGS 84 地理坐标系,其中 WKID=4326。
公共属性 bounds 获取地图的地理范围。该属性等于 Map 中加载的所有图层的地理范围的并集。
公共属性 viewBounds 获取或设置地图的可视地理范围。例如现有一幅世界地图的 Bounds 为 (-180,-90,180,90),在地图控设置 ViewBounds 属性为 (0,0,180,90),则这时呈现出的世界地图为东经0-180度、北纬0-90度的地理范围。
公共属性 scales 获取或设置地图比例尺数组。当地图控件设置了该属性后,地图可缩放的范围与比例尺数组中设置的比例尺一一对应。
公共属性 resolutions

获取或设置地图分辨率数组。

1.对于分块缓存图层也拥有 Resolutions 属性,它们之间的关系是:当分块缓存图层和 Map 的分辨率数组 Resolutions 中存在相等的分辨率值时以该分辨率出图,否则不显示。当没有设置 Map 的分辨率数组 Resolutions 时,以图层的 Resolutions 显示。
2.对于动态方式获取的图层,当不设置 Map 的分辨率数组 Resolutions 时,地图为无极缩放。

有关分块缓存图层与动态图层请参见《分块图层与动态图层》

公共属性 level 获取地图的缩放级别。该值等于当前地图控件的Resolution 或 Scale 在 Resolutions 或 Scales 数组中的索引值。如果 Resolutions 和 Scales 都为空,则该属性为默认值-1,即无限制缩放。
公共属性 layers 获取或设置当前地图中的所有图层。此处获取的 layers 是一个 layer (《图层》)数组对象。

         地图控件中同时拥有比例尺和分辨率是因为有些服务能够直接提供地图比例尺(例如 SuperMap 图层),而有些服务并未涉及比例尺,则建议使用分辨率属性。有关比例尺和分辨的内容请参见 《分辨率和比例尺》

加载地图

  1. 要使用 Map 需添加 Map 所在包 com.supermap.web.mapping 的引用。如下表所示在 <s> 标签中添加对包的引用(红色代码部分)。其中 mapping 为这个包的别名,用户可自定义。
    MXML 拷贝代码
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"                      
                  xmlns:s="library://ns.adobe.com/flex/spark"                        
                  xmlns:mx="library://ns.adobe.com/flex/mx" 
                  xmlns:mapping="com.supermap.web.mapping.*"   
                  minWidth="955" minHeight="600">       
    </s:Application>
    
  2. 添加地图 Map。如下表所示,设置了地图的比例尺数组,因此地图只能在这几个比例尺间缩放。这里使用的 mapping 要与引用时定义的别名一致:
    MXML 拷贝代码
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"                      
                  xmlns:s="library://ns.adobe.com/flex/spark"                        
                  xmlns:mx="library://ns.adobe.com/flex/mx" 
                  xmlns:mapping="com.supermap.web.mapping.*"   
                  minWidth="955" minHeight="600">
            <mapping:Map> 
            </mapping:Map>
    </s:Application>
    

版权所有© 2000-2015 北京超图软件股份有限公司 保留所有权利。