npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zj-tianditu

v1.1.14

Published

基于天地图开发的VUE组件——Жидзин(Zidjin)系列组件库。

Downloads

56

Readme

Zj-Tianditu 天地图

基于天地图开发的VUE组件——Жидзин(Zidjin)系列组件库。

安装

推荐使用 npm 的方式安装。

npm install zj-tianditu

引入

先添加天地图API,在/public/index.html中写入以下内容:

<script src="http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥" type="text/javascript"></script>

全局引入,在 main.js 中写入以下内容:

import Vue from 'vue';
import App from './App.vue';
import ZjTianditu from "zj-tianditu";

Vue.use(ZjTianditu);
new Vue({
  el: '#app',
  render: h => h(App)
});

局部引入,在 vue页面文件中写入以下内容

export default {
    components: {
        ZjTianditu: () => import('zj-tianditu'),
    },
};

基本用法

初始化中心坐标、缩放比例和背景图层,默认坐标为北京天安门。

天地图基本用法

<zj-tianditu :center="{lng: 116.391230, lat: 39.907140}" zoom="17" map-type="HYBRID"></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({})
    };
</script>

标记坐标点

<zj-tianditu :center="center" :markers="markers" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 17, 
            },
            markers: [
                {
                    key: '北京大学',
                    list: [
                        { title: '北京大学图书馆', lng: 116.304470, lat: 39.990660, },
                    ]
                },
            ],
        })
    };
</script>
自定义标记坐标点

可根据实际场景自定义图标、尺寸、锚点偏移。

<zj-tianditu :center="center" :markers="markers" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 17, 
            },
            markers: [
               {
                    key: '北京大学',
                    icon_url: require('./icon-local-pku.svg'),
                    icon_size: {w: 32, h: 48},
                    icon_anchor: {w: 16, h: 48},
                    node_title: 'title',
                    list: [
                        { title: '一塔湖图之北大图书馆', lng: 116.304470, lat: 39.990660, },
                    ],
                },
            ],
        })
    };
</script>

标签

<zj-tianditu :center="center" :labels="labels" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 17, 
            },
            labels: [
               {
                    key: '北京大学',
                    list: [
                        { label: '北大图书馆', lng: 116.304470, lat: 39.990660, },
                    ],
                },
            ],
        })
    };
</script>
自定义标签

<zj-tianditu :center="center" :labels="labels" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 17, 
            },
            labels: [
                {
                    key: '北京大学',
                    offset: {w: 0, h: 0},
                    font_color: '#FFF',
                    background_color: '#D90000',
                    opacity: 0.1, // 不起作用?
                    font_size: 13,
                    border_line: 3,
                    border_color: '#ffaa00',
                    node_label: 'label',
                    list: [
                        { label: '北京大学', lng: 116.304470, lat: 39.990660, tip: '北京市海淀区颐和园南路5号' },
                	],
                },
            ],
        })
    };
</script>

多边形

由一组或多组连续的点组成多边形。

<zj-tianditu :center="center" :polygons="polygons" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 14, 
            },
            polygons: [
                {
                key: '北大围墙',
                weight: 5,
                list: [
                    [[116.308900,39.998540],[116.310190,39.984430],[116.299740,39.984120],[116.298370,39.992590],[116.298270,39.996190],[116.300880,39.996410],[116.302740,39.997980],[116.304860,39.998530],],
                ]
            },
            ],
        })
    };
</script>
自定义多边形

可根据实际场景自定义边线、填充、镂空等。

<zj-tianditu :center="center" :polygons="polygons" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大理科一号楼 */
                lng: 116.308610,
                lat: 39.988440,
                zoom: 17, 
            },
            polygons: [
                {
                    key: '理科一号教学楼',
                    color: "#E00", // 边线颜色
                    weight: 3, // 边线宽度
                    opacity: 0.8, // 边的透明度
                    fill_color: "#FFF",
                    fill_opacity: 0.5, // 填充的透明度
                    list: [
                        // 一个图形组,当有多个的时候为镂空
                        [[116.308280,39.988660],[116.308910,39.988690],[116.308950,39.988190],[116.308310,39.988170]],
                        [[116.308440,39.988510],[116.308790,39.988520],[116.308800,39.988350],[116.308460,39.988330]],
                    ]
                },
            ],
        })
    };
</script>

气泡窗口

<zj-tianditu :center="center" :bubbles="bubbles" >
    <template v-slot:bubble="slotProps" >{{slotProps.data.title}}</template>
</zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 17, 
            },
            bubbles: [
                {
                    key: '气泡弹窗',
                    size: {w: 100, h: 50},
                    offset: {w: 0, h: -50},
                    list: [
                        { title: '北大图书馆', lng: 116.304470, lat: 39.990660, show: true, },
                    ],
                },
            ],
        })
    };
</script>

热力图

<zj-tianditu :center="center" :heat-map="heatMap" map-type="HYBRID" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 16, 
            },
            heatMap: {
                radius: 50,
                max: 300,
                node_name: 'name',
                node_count: 'count',
                list: [
                    { name: '五四体育场', lng: 116.307140, lat: 39.986340, count: 150, },
                    { name: '理科第二教学楼', lng: 116.307520, lat: 39.988240, count: 250, },
                    { name: '斯诺墓前', lng: 116.304300, lat: 39.992740, count: 150, },
                    { name: '未名石', lng: 116.302600, lat: 39.992850, count: 300, },
                    { name: '红四楼', lng: 116.303070, lat: 39.994090, count: 150, },
                    { name: '北岸', lng: 116.303840, lat: 39.994260, count: 30, },
                    { name: '连岛桥', lng: 116.303060, lat: 39.993310, count: 50, },
                    { name: '岛中亭', lng: 116.303570, lat: 39.993370, count: 50, },
                    { name: '岛北侧', lng: 116.303510, lat: 39.993750, count: 50, },
                    { name: '岛南侧', lng: 116.303540, lat: 39.993100, count: 50, },
                    { name: '燕南园', lng: 116.302680, lat: 39.988500, count: 1000, },
                    { name: '红三楼研究生院', lng: 116.302250, lat: 39.994130, count: 200, },
                ]
            },
        })
    };
</script>

聚合图

待完善

WMS图层

待完善

图片层(瓦片)

待完善

轨迹图

由一组或多组连续的点组成多边形。

<zj-tianditu :center="center" :tracks="tracks" track-status="play" ></zj-tianditu>

<script>
    export default {
        components: {
            ZjTianditu: () => import('zj-tianditu'),
        },
        data: ()=>({
            center: {
                /* 中心点为北大图书馆 */
                lng: 116.304470,
                lat: 39.990660,
                zoom: 14, 
            },
            tracks: [
                {
                    key: '北大围墙',
                    list:[
                        {lng: 116.308900, lat: 39.998540},
                        {lng: 116.310190, lat: 39.984430},
                        {lng: 116.299740, lat: 39.984120},
                        {lng: 116.298370, lat: 39.992590},
                        {lng: 116.298270, lat: 39.996190},
                        {lng: 116.300880, lat: 39.996410},
                        {lng: 116.302740, lat: 39.997980},
                        {lng: 116.304860, lat: 39.998530},
                    ],
                }
            ],
        })
    };
</script>

Tianditu Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | --------------------------------- | ------------ | ------------- | ------------------------------------------------------------ | ------- | | center | 中心坐标 | object | - | - | | zoom | 缩放 | number | 1-18 | - | | map-type | 地图类型 | string | NORMAL 地图,SATELLITE 卫星,HYBRID 卫星混合,TERRAIN 地形TERRAIN_HYBRID 地形混合 | - | | bubbles | 气泡窗 | array | - | - | | markers | 坐标点 | array | - | - | | labels | 标签 | array | - | - | | polygons | 多边形 | array | - | - | | heat-map | 热图 | object | - | - | | clusterer | 聚合点 | object | - | - | | wmsLayers | WMS图层 | array | - | - | | images | 图像覆盖层 | array | - | - | | tracks | 轨迹图 | array | - | - | | track-status | 轨迹状态 | string | start, pause, stop | "start" | | enable-click | 启动点击 | boolean | true, 启用click事件 | false | | (待完成)enable-context-menu | 启动右键菜单 | boolean | true, 启用右键菜单 | false |

Center Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---- | -------------- | ------ | ------ | ------ | | lng | 经度 Longitude | number | - | - | | lat | 纬度 Latitude | number | - | - | | zoom | 缩放,可选 | number | 1-18 | - |

Markers Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------------- | ------------------------------ | ------------- | ------ | ------------------------------------------------------------ | | key | 坐标组名称,必须 | number | - | - | | icon_url | 坐标点图标 | url | - | - | | icon_size | 图标大小 | object | - | {w: 20, h: 30} | | icon_anchor | 图标以左上角为原点的锚点偏移量 | object | - | {w: 10, h: 30} | | list | 坐标数据列表 | array | - | 例:{ title: '天安门', lng: 116.40969, lat: 39.89945, } | | node_title | 自定义文字节点 | string | - | title | | node_longitude | 自定义经度节点 | string | - | lng | | node_latitude | 自定义纬度节点 | string | - | lat |

List of Markers Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----- | -------- | ------ | ------ | ------ | | title | 提示文字 | string | - | - | | lng | 经度 | number | - | - | | lat | 纬度 | number | - | - |

Labels Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---------------- | -------------------------------- | ------------- | ------ | --------------------- | | key | 标签组名称 | number | - | - | | offset | 文字偏移,相对于框左下角右偏12px | object | - | {w: 0, h: 0}, | | font_color | 文字颜色 | color | - | - | | background_color | 背景颜色 | string | - | rgba(0,0,0,0.8) | | opacity | 不透明度 | number | - | 不起作用??? | | font_size | 字号 | string | - | 12 | | border_line | 边线粗细 | number | - | 1 | | border_color | 边线颜色 | color | - | rgba(255,255,255,0.5) | | list | 坐标数据列表 | array | - | - | | node_label | 自定义标签节点 | string | - | label | | node_tip | 自定义提示节点 | string | - | tip | | node_longitude | 自定义经度节点 | string | - | lng | | node_latitude | 自定义纬度节点 | string | - | lat |

List of Labels Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----- | -------- | ------ | ------ | ------ | | label | 标签文字 | string | - | - | | lng | 经度 | number | - | - | | lat | 纬度 | number | - | - | | tip | 提示文字 | string | - | - |

Polygons Attribues

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------------ | -------------------- | --------------------- | ------ | ------ | | key | 多边形名称 | string | - | - | | color | 边线颜色 | color | - | #FFF | | weight | 边线宽度 | number | - | 1 | | opacity | 边的透明度 | number | 0-1.0 | 1 | | fill_color | 填充的颜色 | color | - | none | | fill_opacity | 填充的透明度 | number | 0-1.0 | 0 | | list | 连续的多边形二维列表 | array<array<lng,lat>> | - | - |

List Code of Polygons Attribues

list: [
    // 一个图形组,当有多组的时候为镂空
    [[116.308280,39.988660],[116.308910,39.988690],[116.308950,39.988190],[116.308310,39.988170]],
    [[116.308440,39.988510],[116.308790,39.988520],[116.308800,39.988350],[116.308460,39.988330]],
]

Bubbles Attribues

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------ | ------------------------------------------ | ------------- | ----------- | ---------------- | | key | 气泡窗名称 | string | - | - | | size | 气泡窗尺寸 | object | - | {w: 180, h: 180} | | offset | 气泡窗左上角偏离 | object | - | {w: 0, h: 0} | | style | 窗口样式 | string | dark/bright | bright | | slot | 自定义具名槽名称。数据将被包在data对象中。 | string | - | bubble | | list | 气泡窗列表 | array | - | - |

[^slot]: 气泡窗口为槽函数,因此,需要天地图组件内声明槽模板,例:<template v-bubble="slotProps"><p>slotProps.data.x</p></template>。 [^slot]: 气泡窗口默认样式名:class="bubble-area bubble",自定义样式则为class="bubble-area slotName", id为id="bubble_i_j",可通过此方法对样式进行覆盖CSS或定位标签。

List of Bubbles Attribues

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---- | ---------- | ------- | ------ | ------ | | lng | 经度 | | | | | lat | 纬度 | | | | | show | 显示气泡窗 | boolean | true | false |

Heat-Map Attribues

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---------- | -------------------- | ------------- | ------ | ------ | | radius | 热点半径 | number | - | 100 | | max | 最大值,最大值为红色 | number | - | 300 | | node_count | 自定义数量节点 | string | - | count | | list | 热点图列表 | array | - | - |

List of Heat-Map Attribues

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----- | ---- | ------ | ------ | ------ | | lng | 经度 | number | - | - | | lat | 纬度 | number | - | - | | count | 数量 | number | - | - |

Clusterer Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------------- | ------------------------------ | ------------- | ------ | ------------------------------------------------------------ | | icon_url | 坐标点图标 | url | - | - | | icon_size | 图标大小 | object | - | {w: 20, h: 30} | | icon_anchor | 图标以左上角为原点的锚点偏移量 | object | - | {w: 10, h: 30} | | list | 坐标数据列表 | array | - | 例:{ title: '天安门', lng: 116.40969, lat: 39.89945, } | | node_title | 自定义文字节点 | string | - | title | | node_longitude | 自定义经度节点 | string | - | lng | | node_latitude | 自定义纬度节点 | string | - | lat |

List of Clusterer Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----- | -------- | ------ | ------ | ------ | | title | 提示文字 | string | - | - | | lng | 经度 | number | - | - | | lat | 纬度 | number | - | - |

Wms-Layers Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----------- | --------------------------------- | ------- | ----------- | ------------- | | key | 坐标点图标,必须 | string | - | - | | url | 图层服务地址 | url | - | - | | version | 请求服务的版本 | string | - | "1.1.1" | | layers | 用","分隔的多个图层列表。 | string | - | "0,1,2,3" | | transparent | 输出图像背景是否透明 | boolean | true | false | | styles | 每个请求图层的用","分隔的描述样式 | string | - | - | | srs | 地图投影类型 | string | "EPSG:4326" | "EPSG:900913" | | format | 输出图像的类型 | string | "image/png" | "image/jpeg" | | | | | | |

Images Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------- | -------------- | ------------- | ------- | ------ | | key | 图像组名称 | string | - | - | | list | 图像覆盖物列表 | array | - | - | | opacity | 透明度 | number | 0.0~1.0 | 1.0 | | alt | 图像标签 | string | - | - |

List of Images Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---- | -------------------------- | ------ | --------- | ------ | | url | 图片的地址 | string | - | - | | sw | 矩形区域的西南角 | object | {lng,lat} | - | | ne | 矩形区域的东北角 | object | {lng,lat} | - | | alt | 图像标签(优先级高于父级) | string | - | - |

Tracks Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----------- | -------------------------------- | ------------- | ------- | --------- | | key | 图像组名称 | string | - | - | | list | 图像覆盖物列表 | array | - | - | | interval | 间隔时间 | number | - | 5 | | speed | 速度 | number | - | 10 | | dynamicLine | 是否动态画线 | boolean | false | true | | color | 轨迹线颜色 | string | - | "#2C64A7" | | weight | 轨迹线宽度 | number | - | 5 | | opacity | 透明度 | number | 0.0~1.0 | 0.9 | | autoPlay | 已弃用。是否自动播放,默认为自动 | boolean | false | true |

Tianditu Events

| 事件名称 | 说明 | 回调参数 | | -------- | ------------------------------------ | ---------------------------------------------------- | | marker | 当点击坐标时触发 | key: 组键名, config: 组配置, 各字段属性, | | label | 当点击标签时触发 | key: 组键名, config: 组配置, 各字段信息 | | polygen | 当点击多边形时触发 | key: 组键名, config: 组配置, 各字段信息 | | click | 点击地图时触发,需enable-click为true | {containerPoint, layerPoint, lng, lat} | | move | 拖动地图时触发 | {lng, lat} | | zoom | 缩放地图时触发 | 1-18 | | resize | 窗口尺寸变化时触发 | 天地图原生event |

Tianditu Methods

| 方法名 | 说明 | 参数 | | ------------ | ------------------------------ | -------------- | | resize | 通知地图其容器大小已更改 | - | | autoViewport | 根据坐标点数组自动设置地图视野 | array<lng,lat> | | | | |

版本说明

V1.0.61.211028-release

修正若干地图调用时不稳定的问题,早期稳定版,用于基本的地图数据展示,无鼠标交互事件等。已停止更新。

V1.1.0.211028-alpha

添加天地图原生坐标标记事件@marker、多边形事件@polygen、标签事件@label。

V1.1.1.211029-beta

支持天地图原生拖动事件@move、缩放事件@zoom。

V1.1.3.2.211031-release

修正天地图事件部分不良的问题,修正数据导入时未检查list数组不合法的问题。

V1.1.4.211108-beta

支持天地图原生的数据聚合功能。

V1.1.6.211120-beta

支持天地图WMS图层功能,支持地图点击事件@click。

V1.1.7.211121-release

修正天地图WMS图层key重复时没有删除原图层的问题。

V1.1.12.220113-release

修正天地图地图markers的node_latitude属性失效的问题,并增加控制台警告提示,增加labels的node_longitude属性和node_latitude属性。

V1.1.13.20220629-release

支持天地图原生的轨迹图功能。

V2.0.0.211223-release

支持Vue3的版本,已暂停更新