0.5.0 • Published 11 days ago

ry-vue-map v0.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
11 days ago

ryvuemap

ryui-version

ry公共组件库

更新日志

增加禁用切换地图功能

安装

npm i ry-vue-map
yarn add ry-vue-map

快速开始

main.js

import Vue from 'vue'
import RyUI from 'ry-vue-map';

Vue.use(RyUI)

组件

RyMap

map/index.vue

<template>
  <ry-map
     projection="EPSG:4326" // 投影方式 (可不传)
    :mapType="1" // 地图类型 1为天地图 不填为bing地图
    :zoom="15" // 地图缩放率  默认为10(可不传)
    :minZoom="1" // 地图最下缩放率 默认为1(可不传)
    :maxZoom="28" // 地图最大缩放率 默认为18(可不传)
    :bbox="bbox" // 自适应范围 [[x,y],[x,y]]   组件内部以有 watch 监听
    :center="center" // 设置地图中心点 [x,y] 组件内部以有 watch 监听
    @load="load($event)" // 地图加载成功后回调函数
    :isCrossHair="false"  // 是否显示十字点  默认fasle 不显示
    :isRight="true"  // 地图工具 显示方向    顶部 左 右  默认右上方(可不传)
    :isRyMapTool="true"   // 是否创建地图工具
    @drawSuccess="drawSuccess" // 绘制多边形成功后回调函数  {geoJson,delelte} delelte为回调函数用来清空绘制的多边形实例相当于工具栏中的删除功能
    @drawError="drawError"  // 绘制多边形出错后回调函数
    :isShowRangingTool="true" // 是否显示侧面、测距工具 默认显示(可不传)
    :isShowDrawTool="true" // 是显示绘制多边形工具 默认不显示
    :bindMapClick="true" //是否注册地图点击事件  true 注册 false 注销注册watch 监听
    @mapClick="mapClick($event)"  // 点击地图回调事件 注意:这里为了其回调函数代码少 只返回有有Id图层
    :initModifyPolygon="geoJson" // 初始化需要编辑的多边形 传入 geoJson或 字符串geoJson 用于地图编辑界面 isShowDrawTool=true时 才生效
    :m="3000"  // 地图中心点计算中心点距离 默认 单位m 默认3000m
    :bindMapMoveend="true"  绑定地图移动事件会根据zoom 缩放 以及地图移动时触发
    @mapMoveend="mapMoveend($event)" // 绑定地图移动事件后回调函数 会根据zoom 缩放 以及地图移动时触发 根据m参数设定的值返回 当前中心点与移动后的 中心点距离 {m,oversteSetValue}
    oversteSetValue 当前中心点 是否 大于等于 m 设定值 如果 超过 返回 true
     :hideAdd="true"   // 隐藏添加功能
      :hidePoint="true" // 隐藏打点功能
      :hideCancel="true"  // 隐藏取消功能
      :hideDelete="true" // 隐藏删除功能
      :hideSave="true" // 隐藏报错 功能
      :hideLine="true"  // 隐藏绘 隐藏测量线功能
      :hideArea="true"  // 隐藏测量面积功能
      // 点击绘制多边形或初始化编辑多边形触发返回 ryMapTool实例
      // 常用函数 $event  onCreatePolygon()// 创建多边形  onPointEvent() 打点功能 onCancel()撤销当前绘制 onDelete()删除多边形 onSave() 保存图形功能
      @loadDrawPolygonEvent="loadDrawPolygonEvent($event)"
     // 聚合控件
     <ry-clusters
     @callback="clusterCallback($event)"   // 返回值 {id,isShow}  id 多边形Id isShow true显示多边形
     :map="mapDto.map"  // 地图实例
     :modelArr="modelArr" // 与多边形组件数据结构相同即可
     :clusterPolygonModel // 集合多边形样式 {fillColor: 'rgba(184, 233, 134, 0.56)',stroke: 'rgba(23, 168, 162, 0.56)',width: 3, id:3,text:'块'}
     :
     >
     </ry-clusters>
    >
    <template slot="maptool">  // 工具栏 插槽
       <button>ry</button>
    </template>
// 多边形插槽
<template #polygon="{mapDto}" >
   <ry-polygon
   :isFit="true"  // 是根据多边形bbox 进行定位    true开启定位 false关闭
   :map="mapDto.map"  //地图实例
   :isShow="true"   // 是否显示多边形  true 显示
   :model="polygonModel"   //  数据模型  参考 data中的 polygonModel
   :text="123"  // 设置marker文本  注意 在model 添加text属性后才会创建文本标记 否则不创建
   :polygonColor="'red'" 动态设置多边形颜色
   :isCheckPointHide="true"    // 是否显示多边形  true 隐藏
   :clear="true" // 释放多边形 和 text标记  释放后不能在进行其他操作、在次给:model赋值可从新使用该组件
    @onLoad="onLoad($event)"    // 回调函数返回 多边形对象和标记对象 每次在释放或 model赋值才会触发
    >
    </ry-polygon>
     <ry-polygons
      :map="map"  //地图实例
      :modelArr="modelArr" //数据模型  在数据发生变化时会从新生成多边形
      :insert="insert" // 插入单个多边形  参照 polygonModel 数据结构
      :inserts="inserts" // 插入多个多边形  参照ModelArr 数据结构
      :isShowAl="true" // 显示或者隐藏所有多边形 true,显示  默认为 false  注意此处不会隐藏marker标记
      :isShowPolygon="isShowPolygon"// 隐藏或显示多个多边形 true显示 // 此处不会隐藏maker标记 数据结构 {id:'ceshis',isShow:false}
      :isShowPolygons="isShowPolygons" // 批量显示和隐藏多边形  [{id:'ceshis',isShow:false}]
      :restFit="false" 显示隐藏多边形后是否需要从新定位 true从新定位  默认为false
      :clear="true" //  true 为释放资源、默认为false 需要释放资源设置为true即可 或 modelArr 赋值为null [] 都可以
      :isCheckPointHideAll="isCheckPointHideAll" // 是否隐藏所有标记 true 为隐藏  注意隐藏标记 不会触发 restFit从新定位
      :isCheckPointHide="isCheckPointHide" // 是否显示隐藏单个标记  数据结构 {id:'ceshis',isShow:true}  isShow true 为隐藏  注意隐藏标记 不会触发 restFit从新定位
      :isCheckPointHides="isCheckPointHides" // 批量 是否显示标记 [{id:'ceshis',isShow:true} ]  isShow true 为隐藏  注意隐藏标记 不会触发 restFit从新定位
      :polygonColor="polygonColor"  //  设置多边形颜色  {id:'ceshi1',colorArr['red','#000'] } 数组中0为填充演示 1为边框演示
      :polygonColors="polygonColors"  // 批量设置多边形颜色 [{id:'ceshi1', colorArr:['red','#000'] }]
      :text="text" // 设置标记文本 {id:'ceshi1',text:'ceshiabc'}
      :isFit="true"// 是否根据bbox 设为中心点 默认为true,false则不在定位
      :remove="'ceshi1'" //  根据Id 释放多边形 和 标记
      :removes="['ceshi1']" //  根据Id数组 移除多边形 和标记
      :range="range"  根据传入的 Id 去进行定位
      :ranges="ranges" // 根据传入的Id数组进行定位
       @onLoad="onLoad($event)" // 回调函数 在插入、批量插入、modelArr发生变化时触发 返回{bboxMap, polygonMap,checkPointMap }
       @crossHairClick="crossHairClick($event)"  // 点击中心点或打点功能触发回调
     ></ry-polygons>
 </template>
   </ry-map>


<div>
    <h1>插槽外部使用方式</h1>
     <ry-polygon
    v-if="map"
   :isFit="true"
   :map="map"
   ......省略与上方多边形示例相同
   >
    </ry-polygon>
     <ry-polygons
    v-if="map"
   :isFit="true"
   :map="map"
   ......省略与上方多边形示例相同
   >
    </ry-polygons>

</div>

<h1>

      <RyMapTool
      @crossHairClick="crossHairClick($event)"  // 点击中心点或打点功能触发回调
       :isCrossHair="false" // 是否显示十字点  默认fasle 不显示
     :initModifyPolygon="geoJson" // 初始化需要编辑的多边形 传入 geoJson或 字符串geoJson 用于地图编辑界面
    :isRight="true"  // 地图工具 显示方向    顶部 左 右  默认右上方(可不传)
    :isRyMapTool="true"   // 是否创建地图工具
    @drawSuccess="drawSuccess" // 绘制多边形成功后回调函数  {geoJson,delelte} delelte为回调函数用来清空绘制的多边形实例相当于工具栏中的删除功能
    @drawError="drawError"  // 绘制多边形出错后回调函数
    :isShowRangingTool="true" // 是否显示侧面、测距工具 默认显示(可不传)
    :isShowDrawTool="true" // 是显示绘制多边形工具 默认不显示
     @drawSuccess="drawSuccess" // 绘制多边形成功后回调函数  {geoJson,delelte} delelte为回调函数用来清空绘制的多边形实例相当于工具栏中的删除功能 getGeoJson() 获取GeoJson
    @drawError="drawError"  // 绘制多边形出错后回调函数
      :hideAdd="true"   // 隐藏添加功能
      :hidePoint="true" // 隐藏打点功能
      :hideCancel="true"  // 隐藏取消功能
      :hideDelete="true" // 隐藏删除功能
      :hideSave="true" // 隐藏报错 功能
      :hideLine="true"  // 隐藏绘 隐藏测量线功能
      :hideArea="true"  // 隐藏测量面积功能
      // 点击绘制多边形或初始化编辑多边形触发返回 ryMapTool实例
      // 常用函数 $event  onCreatePolygon()// 创建多边形  onPointEvent() 打点功能 onCancel()撤销当前绘制 onDelete()删除多边形 onSave() 保存图形功能
      @loadDrawPolygonEvent="loadDrawPolygonEvent($event)"

      >
     <template>
         // 插槽
      </template>
    </RyMapTool>
</h1>

</template>

<script>
  import RyMap from '@/components/maps/ryMap/src/customTable.vue';
  import RyMapTool from '@/components/maps/ryMapTool/src/customTable.vue'

  export default {
    components: {
      RyMap,
      RyMapTool
    },
    data() {
      return {
        map: null,
        lMap: null,
        bbox:[],
        center: [116.40769, 39.89945],
         polygonModel: {
          // 填充颜色
          fillColor: '#000',
          //  边框颜色
          stroke: 'red',
          // 边框宽度
          width: 1,
          // 注意在此处 添加text属性后才会创建文本标记 否则不创建
          text:'测试',
          geo:g1,  // geoJson 可为字符串或对象   注意 传入geoJson后不需要在传送  coordinates 三维数组
          // coordinates: [
          //   [
          //     [121.03623185250073, 29.247091764239528],
          //     [121.03525048300928, 29.24522364753245],
          //     [121.03576144393304, 29.244964111834967],
          //     [121.03598042717134, 29.245156060100488],
          //   ]
          // ],
          // id 为必穿且不能重复
          id: 'ceshi',
        },
        modelArr:[this.polygonModel]
      };
    },
    created(){
      // setTimeout(r=> this.center=[116.407693, 39.899456],5000);
    },
    methods: {
      load(obj) {
        console.log(obj);
        // mapServices 地图服务
        // Map 实例对象
        const {mapServices, map} = obj;
        this.lMap = mapServices;

      },
      drawSuccess(geo){
        // geo  绘制多边形成功后 返回 geojson  非字符串
        console.log(geo);
      },
      drawError(obj){
        const {type,geoJson}= obj;
        // type 错误类型
        // geoJson 非字符串
        // 绘制多边形失败后
        // type =0  请绘制地块后在进行保存操作
        // 1 多边形不合法
          console.log(obj);
      },
       mapClick(e){
        // e 返回的是图层Id
      },
    }
  };
</script>

指令

main.js

import Vue from 'vue'
import * as directives from 'ryui-vue/src/directives';

Object.keys(directives).forEach((key) => {
  Vue.use(directives[key]);
});
0.4.9

12 days ago

0.5.0

11 days ago

0.4.8

1 month ago

0.4.7

1 month ago

0.4.6

4 months ago

0.4.5

4 months ago

0.4.4

4 months ago

0.4.3

4 months ago

0.4.2

4 months ago

0.4.1

5 months ago

0.3.9

5 months ago

0.3.6

5 months ago

0.3.8

5 months ago

0.3.7

5 months ago

0.4.0

5 months ago

0.3.5

5 months ago

0.3.4

5 months ago

0.3.3

6 months ago

0.3.0

8 months ago

0.2.9

8 months ago

0.3.2

8 months ago

0.3.1

8 months ago

0.2.7

8 months ago

0.2.6

8 months ago

0.2.8

8 months ago

0.2.3

10 months ago

0.2.5

8 months ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.9

1 year ago

0.2.2

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago

0.0.9

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago