openlayer加载点数据

function loadPointData(pointdata) {
    let qxIconFeatures = [];
    const scale = 30;
    let pointStyle = new ol.style.Style({
        // 把点的样式换成ICON图标
        image: new ol.style.Icon({
            // 控制标注图片和文字之间的距离
            anchor: [0.5, 0],
            // 标注样式的起点位置
            anchorOrigin: 'top-right',
            // X方向单位:分数
            anchorXUnits: 'fraction',
            // Y方向单位:像素
            anchorYUnits: 'pixels',
            // 偏移起点位置的方向
            offsetOrigin: 'top-right',
            scale: map.getView().getZoom() / scale,
            // 透明度
            // opacity: 0.75,
            // 图片路径
            src: '../../../../static/images/点.png'
        })
    });
    for (let i = 0; i < pointdata.length; i++) {
        let pointdataArr = [];
        const lon = pointdata[i].lon;
        const lat = pointdata[i].lat;
        // 去除不合法数据-不合法数据造成所有数据渲染失败
        if (typeof (lon) !== 'undefined' && typeof (lat) !== 'undefined') {
            
            pointdataArr.push(parseFloat(lon));
            pointdataArr.push(parseFloat(lat));
            let pointdatafromLonLat = ol.proj.fromLonLat(pointdataArr );
            let qxIconFeature = new ol.Feature({
                // 点要素
                geometry: new ol.geom.Point(pointdatafromLonLat),
                // 名称属性
                name: "pointdata[i].name",
                type: 'type',
                lon: lon,
                lat: lat
            });
            qxIconFeature.setStyle(pointStyle);
            // 监听地图层级变化
            map.getView().on('change:resolution', function () {
                const style = qxIconFeature.getStyle();
                // 重新设置图标的缩放率,基于层级10来做缩放
                style.getImage().setScale(this.getZoom() / scale);
                qxIconFeature.setStyle(style);
            })
            qxIconFeatures.push(qxIconFeature)
        }
    }
    addMapLayer(qxIconFeatures, 'layerName')
}

function addMapLayer(features, layerName) {
    let qxVectorSource = new ol.source.Vector({
        // 特征
        features: features
    });
    let qxVectorLayer = new ol.layer.Vector({
        // 资源。
        source: qxVectorSource
    });
    // console.log("图层加入map")
    qxVectorLayer.name = layerName
    map.addLayer(qxVectorLayer);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: OpenLayers是一个用于创建互动地图的JavaScript库,而天地图是一种国内常用的地图数据源。OpenLayers提供了与天地图数据源集成的API,使得我们可以通过OpenLayers库来显示和操作来自天地图的地图数据。 通过OpenLayers的API,我们可以使用天地图提供的不同类型的地图数据,包括普通地图、卫星影像、地形等。可以通过OpenLayers的视图对象来设置地图的显示范围和层级,以及地图的中心点位置。同时,还可以通过OpenLayers的图层对象来设置地图上不同图层的可见性、透明度和样式。 除了基本的地图显示功能,OpenLayers还提供了丰富的交互功能,比如可以在地图上添加标记点、线条和面等要素,并且可以对这些要素进行编辑和拖动操作。还可以通过OpenLayers的控件对象来添加放大缩小按钮、比例尺和鼠标位置显示等交互控件,以方便用户与地图进行交互。 使用OpenLayers的API,我们可以轻松地将天地图的地图数据集成到我们的网站或应用程序中,并根据需要进行自定义的地图显示和交互操作。无论是开发新的地图应用,还是添加地图功能到现有的应用中,OpenLayers天地图数据API都提供了便捷而强大的工具和功能。 ### 回答2: 天地图是一种地图数据源,而OpenLayers是一种开源的JavaScript库,用于在网页中渲染地图。天地图数据API则是指OpenLayers与天地图数据源进行交互的接口。 通过OpenLayers与天地图数据API,我们可以在网页中使用天地图的地理信息数据,并将其显示在地图上。这包括地图的底图、注记、矢量数据等各种要素。我们可以使用OpenLayers提供的方法,调用天地图数据API获取地理数据,并在网页中进行展示、可视化等操作。 OpenLayers提供了一系列API,用于与天地图数据进行交互。通过这些API,我们可以进行地图的缩放、平移、旋转等操作,也可以选择显示或隐藏不同的地图要素。另外,OpenLayers还支持添加自定义的图层和要素,使得我们能够在地图上自由绘制、编辑、查询等。 使用OpenLayers和天地图数据API,我们可以创建各种地图应用,如地理信息系统、地图展示、轨迹追踪等。通过OpenLayers提供的丰富接口和天地图提供的高质量数据,我们可以轻松地实现地图的可视化和交互效果,为用户提供更好的地理信息服务。 总之,天地图数据API是OpenLayers与天地图进行交互的接口,通过它我们可以方便地在网页中使用天地图的地理信息数据,并进行地图的显示、操作和定制化开发。这为我们提供了丰富的地图应用开发工具和数据支持,使得我们能够更好地利用天地图的数据资源。 ### 回答3: OpenLayers是一个开源的JavaScript库,用于在Web上创建交互式地图应用程序。天地图数据API是一种可以与OpenLayers库一起使用的API,用于获取和显示来自天地图的地理数据。 天地图数据API提供了一系列功能,使开发人员能够从天地图获取各种地理数据,并将其集成到OpenLayers地图应用程序中。使用该API,我们可以获取天地图提供的影像图、矢量图和地形图等不同类型的数据。 通过将天地图数据API与OpenLayers进行整合,我们可以实现以下功能: 1. 地图展示:我们可以在OpenLayers地图应用程序中加载天地图的地理数据,包括街道地图、卫星影像图以及其他类型的地图数据。这使得我们能够在应用程序中展示定制的地图。 2. 数据查询:通过使用天地图数据API,我们可以根据特定的地理坐标或者地点查询相关的地理信息。这包括获取该地点的地址、经纬度、交通情况等详细信息。 3. 标注和覆盖物:我们可以在OpenLayers地图应用程序中使用天地图数据API来添加自定义的标注和覆盖物。这些标注和覆盖物可以用来标记特定地点、展示相关信息等。 4. 数据分析:通过利用天地图数据API提供的功能,我们可以对地理数据进行分析和处理。这使得我们能够从地图数据中提取有价值的信息,并做出相应的决策。 总之,OpenLayers天地图数据API提供了丰富的功能,使我们能够方便地获取和展示天地图的地理数据。通过将其与OpenLayers库结合使用,我们可以创建出高度可定制和交互式的地图应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已秃头的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值