因为有些原因,App Inventer2中的(谷歌)地图在国内不好用。本扩展可以让你在app inventor应用中使用微软必应地图。

更新记录

v1 - 20230227

  1. 第一次发布

所有属性

2023-02-27-14-11-17-image.png

参数类型意义
CenterjsonArray中心坐标 [纬度,经度]
EnablePanning逻辑允许平移
EnableZooming逻辑允许缩放
Key文本从必应地图申请的key。到这里申请
MapType文本地图类型
MaxZoom数字最大允许缩放等级1-19
MinZoom数字最小允许缩放等级1-19
ShowLocateMeButton逻辑是否显示‘我的位置’按钮
ShowMapTypeSelector逻辑是否显示地图类型选择器
ShowScalebar逻辑是否显示比例尺
ShowZoomButtons逻辑是否显示缩放按钮
Zoom数字初始缩放等级1-19

相关代码块

地图初始化

将地图载入到垂直(或者水平)布局中。初始化之前,在设计窗口设置好所有初始参数。

导入后效果如图:
2023-02-27-13-01-14-image.png

在地图被点击时,会触发MapClicked事件。
2023-02-27-14-12-03-image.png

参数类型意义
location列表点击位置坐标

平移地图和缩放地图

Snipaste_2023-02-26_13-03-56.png

参数类型意义
center列表地图中心位置坐标
zoom数字 (1-19)缩放级别

在地图被平移或者缩放时,会触发MapViewChanged事件
2023-02-27-12-16-12-image.png

参数类型意义
location列表点击位置坐标
center列表视图中心坐标
bounds列表视图左上坐标和右下坐标
zoom数字当前缩放级别

图钉按钮

2023-02-27-13-03-36-image.png
Snipaste_2023-02-26_13-15-02.png

参数类型意义
id文本每个图钉的id
location列表图钉位置
options字典图钉属性设置
--title文本主文本
--subTitle文本副文本
--text文本显示在图钉上
--color文本图钉颜色
--draggable逻辑是否可以拖动
--icon文本图标文件,可以是base64

options都是可选的,甚至可以是空字典。

图钉按钮可能引发被点击事件和被拖动事件
Snipaste_2023-02-27_20-27-45.png

参数类型意义
id文本图钉id
location列表图钉坐标 [纬度,经度]
point列表图钉坐标 [屏幕x,屏幕Y]

线段

2023-02-27-13-04-47-image.png

2023-02-27-12-25-25-image.png

id文本线段的id
locations列表线段顶点坐标的列表,长度最小为2
options字典线段属性设置
--strokeColor文本线段颜色
--strokeThickness数字线宽
--strokeDashArray列表虚实线画法 [实线,虚线,实线,虚线,...]

线段被点击会引发点击事件
2023-02-27-12-28-33-image.png

参数意义同图钉按钮。

多边形

2023-02-27-13-09-14-image.png

2023-02-27-12-31-39-image.png

id文本多边形的id
locations列表多边形顶点坐标的列表,长度最小为3
options字典多边形属性设置
--fillColor文本填充色
--strokeColor文本边线颜色
--strokeThickness数字边线线宽
--strokeDashArray列表虚实线画法 [实线,虚线,实线,虚线,...]

多边形点击会引发点击事件:
2023-02-27-12-34-35-image.png

参数意义同线段

规则多边形

2023-02-27-13-10-24-image.png

2023-02-27-12-36-22-image.png

id文本多边形的id
center列表外切圆的中心坐标
radius数字外切圆的半径,单位km
sides整数边数
angle整数旋转度数
options字典同多边形

点击会引发多边形点击事件(同上)

删除形状

2023-02-27-12-40-52-image.png

根据id删除图钉、线段、多边形,或者全部删除。

信息窗

2023-02-27-13-12-02-image.png

2023-02-27-12-45-52-image.png

ShowInfobox: 显示信息窗口

HideInfobox: 隐藏信息窗口

参数类型意义
location列表坐标
title文本信息窗标题
description文本信息窗主要文本 (可以是html文本)
actions列表按钮文本列表。可以是空列表

点击按钮文本会引发点击事件:
2023-02-27-12-46-46-image.png

路线规划

2023-02-27-13-15-14-image.png

2023-02-27-13-19-09-image.png

CalculateRoute: 计算路线。计算成功会在地图上绘制路线,并引发RouteUpdated事件。

RemoveRoute:从地图上清除路线

locations列表坐标列表,长度至少为2,中间的坐标是途经点位置
mode文本行进方式:driving(开车), transit(公共交通),truck(货车),walking(步行)
total数字查找到的路线数量
index数字当前选中路线序号
routejson型文本线路详情。原始数据,里面包含线路上的点坐标,行进文本指示等。需要用字典自己解析。

位置和坐标转换

2023-02-27-13-25-50-image.png

GetAddressFrom: 坐标 [纬度,经度] 转为地址。

GetLocationsFrom: 地址转为坐标。(可能会返回多个坐标)
2023-02-27-13-28-56-image.png

计算距离

2023-02-27-13-29-40-image.png

计算两点之间的距离。

常见问题

  1. 如何知道地图加载完成?

    可以使用MapViewChanged事件。他第一次被调用时,作为加载完成事件。

  2. 如何画圆?

    使用CreatePolygonRegular方法,适当增加边数,可以得到一个近似圆。

下载连接:

cn.kevinkun.BingMap-v1.aix

标签: map

仅有一条评论

  1. +35699870788

    Hi Kevin, can you check if the api containes a method to rotate the map? I mean, it is very strange to have such an api and then the rotate feature is not availabe.

添加新评论