• map
    • FAQ

    map

    地图。

    平台差异说明

    5+AppH5微信小程序支付宝小程序百度小程序头条小程序
    x

    属性说明

    属性名类型默认值说明平台差异说明
    longitudeNumber中心经度
    latitudeNumber中心纬度
    scaleNumber16缩放级别,取值范围为5-18
    markersArray标记点
    polylineArray路线
    circlesArray
    controlsArray控件
    include-pointsArray缩放视野以包含所有给定的坐标点App-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序
    show-locationBoolean显示带有方向的当前定位点微信小程序、H5、百度小程序、支付宝小程序
    @markertapEventHandle点击标记点时触发App平台需要指定 marker 对象属性 id
    @callouttapEventHandle点击标记点对应的气泡时触发
    @controltapEventHandle点击控件时触发
    @regionchangeEventHandle视野发生变化时触发微信小程序、H5、百度小程序、支付宝小程序
    @tapEventHandle点击地图时触发
    @updatedEventHandle在地图渲染更新完成时触发微信小程序、H5、百度小程序

    注意

    • <map> 组件的宽/高推荐写直接量,比如:750rpx,不要设置百分比值。
    • uni-app 只支持 gcj02 坐标markers

    标记点用于在地图上显示标记的位置

    属性说明类型必填备注平台差异说明
    id标记点idNumbermarker点击事件回调会返回此id。建议为每个marker设置上Number类型id,保证更新marker时有更好的性能。
    latitude纬度Number浮点数,范围 -90 ~ 90
    longitude经度Number浮点数,范围 -180 ~ 180
    title标注点名String点击时显示,callout存在时将被忽略App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序
    iconPath显示的图标String项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对小程序根目录;也支持临时路径
    rotate旋转角度Number顺时针旋转的角度,范围 0 ~ 360,默认为 0App-nvue 2.1.5+、微信小程序、支付宝小程序、百度小程序
    alpha标注的透明度Number默认1,无透明,范围 0 ~ 1App-nvue 2.1.5+、微信小程序、支付宝小程序、百度小程序
    width标注图标宽度Number默认为图片实际宽度App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序
    height标注图标高度Number默认为图片实际高度App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序
    callout自定义标记点上方的气泡窗口Object支持的属性见下表,可识别换行符。App-nvue 2.1.5+
    label为标记点旁边增加标签Object支持的属性见下表,可识别换行符。App-nvue 2.1.5+、微信小程序、H5、5+APP、百度小程序
    anchor经纬度在标注图标的锚点,默认底边中点Object{x, y},x表示横向(0-1),y表示竖向(0-1)。{x: .5, y: 1} 表示底边中点App-nvue 2.1.5+、微信小程序、H5、百度小程序

    marker 上的气泡 callout

    属性说明类型平台差异说明
    content文本String
    color文本颜色StringApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    fontSize文字大小NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    borderRadiuscallout边框圆角NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    bgColor背景色StringApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    padding文本边缘留白NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    display'BYCLICK':点击显示; 'ALWAYS':常显String微信小程序、H5、百度小程序
    textAlign文本对齐方式。有效值: left, right, centerStringApp-nvue 2.1.5+、微信小程序、百度小程序

    marker 上的标签 label

    属性说明类型平台差异说明
    content文本String
    color文本颜色StringApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    fontSize文字大小NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    xlabel的坐标,原点是 marker 对应的经纬度NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    ylabel的坐标,原点是 marker 对应的经纬度NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    borderWidth边框宽度NumberApp-nvue 2.1.5+、微信小程序、百度小程序
    borderColor边框颜色StringApp-nvue 2.1.5+、微信小程序、百度小程序
    borderRadius边框圆角NumberApp-nvue 2.1.5+、微信小程序、百度小程序
    bgColor背景色StringApp-nvue 2.1.5+、微信小程序、百度小程序
    padding文本边缘留白NumberApp-nvue 2.1.5+、微信小程序、百度小程序
    textAlign文本对齐方式。有效值: left, right, centerStringApp-nvue 2.1.5+、微信小程序、百度小程序

    polyline

    指定一系列坐标点,从数组第一项连线至最后一项

    属性说明类型必填备注平台差异说明
    points经纬度数组Array[{latitude: 0, longitude: 0}]
    color线的颜色String8位十六进制表示,后两位表示alpha值,如:#0000AA
    width线的宽度Number
    dottedLine是否虚线Boolean默认falseApp-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序
    arrowLine带箭头的线Boolean默认false,微信小程序开发者工具暂不支持该属性App-nvue 2.1.5+、微信小程序、百度小程序
    arrowIconPath更换箭头图标String在arrowLine为true时生效App-nvue 2.1.5+、微信小程序、百度小程序
    borderColor线的边框颜色StringApp-nvue 2.1.5+、微信小程序、H5、百度小程序
    borderWidth线的厚度NumberApp-nvue 2.1.5+、微信小程序、H5、百度小程序

    circles

    在地图上显示圆

    属性说明类型必填备注
    latitude纬度Number浮点数,范围 -90 ~ 90
    longitude经度Number浮点数,范围 -180 ~ 180
    color描边的颜色String8位十六进制表示,后两位表示alpha值,如:#0000AA
    fillColor填充颜色String8位十六进制表示,后两位表示alpha值,如:#0000AA
    radius半径Number
    strokeWidth描边的宽度Number

    controls

    在地图上显示控件,控件不随着地图移动

    属性说明类型必填备注
    id控件idNumber在控件点击事件回调会返回此id
    position控件在地图的位置Object控件相对地图位置
    iconPath显示的图标String项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对项目根目录;也支持临时路径
    clickable是否可点击Boolean默认不可点击

    position

    属性说明类型必填备注
    left距离地图的左边界多远Number默认为0
    top距离地图的上边界多远Number默认为0
    width控件宽度Number默认为图片宽度
    height控件高度Number默认为图片高度

    地图组件的经纬度必填,如果不填经纬度则默认值是北京的经纬度。

    示例

    1. <template>
    2. <view>
    3. <view class="page-body">
    4. <view class="page-section page-section-gap">
    5. <map style="width: 100%; height: 300px;" :latitude="latitude" :longitude="longitude" :markers="covers">
    6. </map>
    7. </view>
    8. </view>
    9. </view>
    10. </template>
    1. export default {
    2. data() {
    3. return {
    4. title: 'map',
    5. latitude: 39.909,
    6. longitude: 116.39742,
    7. covers: [{
    8. latitude: 39.909,
    9. longitude: 116.39742,
    10. iconPath: '../../../static/location.png'
    11. }, {
    12. latitude: 39.90,
    13. longitude: 116.39,
    14. iconPath: '../../../static/location.png'
    15. }]
    16. }
    17. },
    18. methods: {
    19. }
    20. }

    map 组件相关操作的 JS API:uni.createMapContext

    注意事项

    • 小程序和 App 中,<map> 组件是由引擎创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。在<map>上绘制内容,可使用组件自带的marker、controls等属性,也可以使用<cover-view>组件。App端还可以使用plus.nativeObj.view 或 subNVue 绘制原生内容。详见
    • 小程序和 App 中,请勿在 scroll-view、swiper、picker-view、movable-view 中使用 <map> 组件。
    • 小程序和 App 中,css 动画对 <map> 组件无效。
    • map 组件使用的经纬度是国测局坐标,调用 uni.getLocation 接口需要指定 type 为 gcj02。
    • <map> 组件在不同平台的底层引擎是不同的:H5、微信小程序为腾讯地图;App、支付宝小程序为高德地图;百度小程序端为百度地图。App端也可以使用百度地图,在manifest的源码视图中配置,具体参考
    • map 组件默认的api是参考微信小程序的,如果觉得不够用,可以用plus.map,可以通过$getAppMap获取原生地图对象,详见
    • H5 端获取定位信息,需要部署在 https 服务上,本地预览(localhost)仍然可以使用 http 协议。
    • 无 GPS 模块的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。
    • App 端使用地图组件需要向高德或百度等三方服务商申请SDK资质,获取AppKey,打包时需要在manifest文件中勾选相应模块,在SDK配置中填写Appkey。在manifest可视化界面有详细申请指南。

    FAQ

    Q:应用中使用了 <map> 组件,打包为原生应用时,提示缺少权限模块怎么办?A:原生的地图,依赖第三方的 SDK,因此打包移动应用时,需要勾选相关的权限并填写 key 信息。详见:http://ask.dcloud.net.cn/article/35090

    Q:国外应用想使用谷歌地图/google地图怎么办?A:1. 可以在web-view下调用谷歌的web地图;2. 可以写一个原生插件封装谷歌原生地图,具体参考uni-app插件市场的原生插件开发教程


    发现错误?想参与编辑?在 GitHub 上编辑此页面!