App Inventor2018地图组件参考手册(1)
App Inventor2018新增了一组与地图应用相关的组件,其中包括7个功能组件,本文首先介绍作为容器的地图(Map)组件。
概述:
地图组件是一个二维容器,背景显示为地图,可以在地图中添加多种标记,来标定某些特殊的点。地图服务由OpenStreetMap及美国地质调查局提供。
地图组件提供了三种改变地图视野的方法。首先,当不允许平移地图时,可以通过改变缩放等级改变地图视野;其次,当“启用平移功能”时,用户可以随意移动地图,查看任意位置的地图,对于新位置,可以点击“初始边界”按钮保存当前地图的坐标属性;最后,如果地图移动到其他位置,如,为了标记屏幕之外的某一点而偏离了原来的中心点,此时,可以点击“重置中心点”按钮,将地图中心点定位到当前位置。(斜体部分有待求证——译者注)。
属性
边界范围(BoundingBox):
设置或读取当前地图视窗的边界。该属性的值为列表,其列表项也是列表,其中包含了地图西北角及东南角的坐标(纬度 经度),其格式为((39.92186 116.38419) (39.90645 116.39807))(故宫的坐标)。
中心坐标(CenterFromString):
用于设置地图中心点坐标,其值为纬度、经度组成的字串,主要用于在设计视图中设置地图的中心点,也可以用平移内置过程动态设置中心点的位置。
启用平移功能(EnablePan):
决定用户是否可以在地图视窗中移动地图。
允许旋转(EnableRotation):
当启用旋转功能时,用户可以用两个手指旋转地图。
启用缩放功能(EnableZoom):
当启用缩放功能时,用户可以用两个手指放大或缩小地图。
特性点(Features):
设置或读取地图上的标记点的列表,如果设特性点为空列表,则会清空地图。
高度(Height):
设置或读取地图的高度。
高度百分数(HeightPercent):
设置地图的高度百分数(占屏幕高度的百分比)。
纬度(Latitude):
读取地图中心点的纬度值。用平移内置过程设置中心点的经纬度。
位置传感器(LocationSensor):
用位置传感器获得用户的位置信息,替代位置的设定值。
经度(Longitude):
读取地图中心点的经度值。用平移内置过程设置中心点的经纬度。
地图类型(MapType):
设置或读取地图背景层的图像类型,默认为路网格式,有效值为1(路网格式)、2(航线格式)或3(地形格式)。路网地图由OpenStreetMap提供,航线地图及地形地图由美国地质调查局提供。
显示指南针(ShowCompass):
是否在地图上显示指南针。指南针的方向取决于设备内置的方向传感器(如果设备含有此传感器)。
显示用户位置(ShowUser):
显示或隐藏表示用户当前位置的标记。这一功能的实现以及位置的精确度取决于用户是否打开了设备的定位功能,以及是否可以取得位置服务。
显示缩放控件(ShowZoom):
显示或隐藏缩放按钮,该功能可以用两个手指的移动取代。
用户纬度(UserLatitude):
当允许显示用户位置时,返回用户当前位置的纬度值。
用户经度(UserLongitude):
当允许显示用户位置时,返回用户当前位置的经度值。
允许显示(Visible):
设置或读取地图组件的允许显示属性。
宽度(Width):
设置或读取地图组件的宽度。
宽度百分数(WidthPercent):
设置地图的宽度百分数(占屏幕宽度的百分比)。
缩放等级(ZoomLevel):
设置或读取地图的缩放等级,有效值为1~20。并非所有地图类型及位置都支持这个有效值范围,例如,在航线图中,海洋中心或两极附近不支持高等级缩放(对应于细节图),城市地图的最高缩放等级的依赖于该城市的地图数据。
事件:
边界改变(BoundsChange):
当用户改变地图边界时,触发该事件,包括缩放、平移或旋转地图等。
位置点被双击(纬度,经度)[DoubleTapAtPoint(number latitude, number longitude)]:
当地图上某一点被双击时,触发该事件。参数 纬度及经度表示双击点的位置。 当启用缩放功能,且地图不在最高缩放等级时,该事件将继而引发缩放等级改变(ZoomChange)事件。
特征点被点击(特征点)[FeatureClick(component feature)]:
当特征点被点击时,其所属的地图会同时收到 特征点被点击事件,参数特征点表示被点击的特征点。
特征点被拖拽(特征点)[FeatureDrag(component feature)]:
当特征点被拖拽时,其所属的地图会同时收到 特征点被拖拽事件,参数特征点表示被拖拽的特征点。
特征点被长按(特征点)[FeatureLongClick(component feature)]:
当特征点被长按时,其所属的地图会同时收到 特征点被长按事件,参数特征点表示被长按的特征点。
开始拖拽特征点(特征点)[FeatureStartDrag(component feature)]:
当用户开始拖拽特征点时,其所属的地图会同时收到 开始拖拽特征点事件,参数特征点表示被拖拽的特征点。
停止拖拽特征点(特征点)[FeatureStopDrag(component feature)]:
当用户停止拖拽特征点时,其所属的地图会同时收到 停止拖拽特征点事件,参数特征点表示被拖拽的特征点。
获取特征点(网址,特征点)[GotFeatures(text url, list features)]:
当调用LoadFromURL The GotFeatures event runs after a call to 从网址加载数据(LoadFromURL)内置过程,并从网络成功获取特征点信息时,触发获取特征点事件。参数特征点是一个特征点列表,利用FeatureFromDescription内置过程可以将其转化为特征点组件。
存在无效点(消息)[InvalidPoint(text message)]:
在处理地图数据过程中,如果遇到无效的点时,触发该事件,通常当经度或纬度的值超出有效范围 (纬度范围:[-90,90],经度范围[-180, 180])时,将被判为无效点。参数消息中包含了对错误的解释。
加载失败(网址,响应代码,错误信息)[LoadError(text url, number responseCode, text errorMessage)]:
在从指定网址获取特征点群文档,并在处理文档是发生错误时,触发该事件。 参数响应代码为http状态码,参数错误信息包含了对错误的描述。
位置点被长按(纬度,经度)[LongPressAtPoint(number latitude, number longitude)]:
当用户长按地图上的某一点时,触发该事件。参数纬度、经度表示被长按的点。注意,当启用平移功能属性值为真时,长按动作将触发平移事件,而非长按事件。
就绪(Ready):
当地图完成初始化,并可付诸使用时,触发该事件。
位置点被点击(纬度,经度)[TapAtPoint(number latitude, number longitude)]:
当用户点击地图上的某一点时,触发该事件。参数纬度及经度将报告被触摸的点。
缩放等级改变[ZoomChange]:
当用户用手势或双击改变地图的缩放等级时,触发该事件。
内置过程
创建标记(纬度,经度)[CreateMarker(number latitude, number longitude)]:
在给定经纬度的位置创建一个新标记,由此命令创建的标记可以用“组件类”代码块访问。
获得特征点(说明:列表类型)[FeatureFromDescription(list description)]:
根据说明列表返回一个新的组件,如果描述中存在错误,如数据格式错误,则返回错误信息。使用为字符串块可以判断是否返回了错误信息。说明列表中的属性值按照下述规则(大小写敏感)转换成App Inventor组件的属性:
-
description → Description(说明)
-
draggable → Draggable(允许拖拽)
-
infobox → EnableInfobox(启用信息框)
-
fill → FillColor(填充色)
-
image → ImageAsset(图片)
-
stroke → StrokeColor(线色)
-
stroke-width → StrokeWidth(线宽)
-
title → Title(标题)
-
visible → Visible(允许显示)
从网址加载数据(网址)[LoadFromURL(text url)]:
从给定的网址获取特征点群(包括文件地址), 如果加载数据成功,则会触发获得特征点 事件,并在事件中传递说明列表参数。如果加载数据失败,则会触发加载错误事件。传递的参数只支持GeoJSON格式。
平移(纬度,经度,缩放等级)[PanTo(number latitude, number longitude, number zoom)]:
按照给定的缩放等级,自动地将地图的中心点移动到指定的经纬度位置。
保存(路径)[Save(text path)]:
将地图说明保存到指定的位置,保存特征点的信息目前只支持GeoJSON格式。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com