openlayers添加坐标点

openlayers添加坐标点

上一节说了一下vue接入openlayer,这一节说一下在openlayer上面绘制点。

其实呢,openlayer还是蛮强大的,但是入门我觉得不容易,分享一张大神做的简化的openlayer结构图。

在这里插入图片描述

所以说通过这张图可以看出来,添加一个展示的坐标点,需要一个feature,一个source,一个layers。

下面是代码

// 初始化地图
      initMap() {
        map = new Map({
          layers: [
            new TileLayer({
              source: new OSM(),
            }),
          ],
          target: 'map',
          view: new View({
            center: [116.403218, 39.92372],
            zoom: 12,
            maxZoom: 18,
            projection: 'EPSG:4326',
            constrainResolution: true,  // 设置缩放级别为整数 
            smoothResolutionConstraint: false,  // 关闭无级缩放地图
          }),
        });

        this.addPoint()
      },

      // 绘制坐标点
      addPoint() {
        let feature = new Feature({
          title: 'beijing',
          geometry: new Point([116.403218, 39.92372]),
        })
        feature.setStyle(
          new Style({
            image: new CircleStyle({
              fill: new Fill({
                color: 'blue',
              }),
              radius: 4,
            }),
          })
        );
        let source = new VectorSource()
        source.addFeature(feature)
        let layer = new VectorLayer()
        layer.setSource(source)
        map.addLayer(layer)
      },

然后小点点就出来了呀!
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以通过在OpenLayers中使用echarts-for-openlayers插件来实现在地图中添加echarts柱状图。以下是基本的步骤: 1. 首先,将echarts-for-openlayers插件添加到你的项目中。 2. 创建一个包含地图的div容器,并在其中创建一个包含echarts柱状图的div容器。 3. 创建一个OpenLayers图层。 4. 在OpenLayers图层上添加一个echarts的Overlay。 5. 将echarts柱状图绑定到Overlay上。 6. 将echarts柱状图的数据与OpenLayers图层的数据相对应。 下面是一个简单的示例代码,可以帮助你了解如何在OpenLayers添加echarts柱状图: ```html <!DOCTYPE html> <html> <head> <title>OpenLayers + ECharts</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.bootcss.com/openlayers/4.6.5/ol.css" type="text/css"> <script src="https://cdn.bootcss.com/openlayers/4.6.5/ol.js"></script> <script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts-en.min.js"></script> <script src="https://cdn.bootcss.com/echarts-for-openlayers/2.0.1/echarts-ol.min.js"></script> </head> <body> <div id="map" style="height: 500px;width: 100%;"></div> <script> var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: ol.proj.fromLonLat([120.130663, 30.240418]), zoom: 10 }) }); var echartDiv = document.createElement('div'); echartDiv.style.width = '300px'; echartDiv.style.height = '300px'; var chart = echarts.init(echartDiv); var option = { tooltip: {}, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'bar' }] }; chart.setOption(option); var overlay = new ol.Overlay({ element: echartDiv, positioning: 'bottom-left' }); map.addOverlay(overlay); var feature = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([120.130663, 30.240418])), name: 'Test' }); feature.set('chart', chart); var vectorSource = new ol.source.Vector({ features: [feature] }); var vectorLayer = new ol.layer.Vector({ source: vectorSource }); map.addLayer(vectorLayer); map.on('click', function (evt) { var feature = map.forEachFeatureAtPixel(evt.pixel, function (feature) { return feature; }); if (feature) { var chart = feature.get('chart'); chart.setOption(option); overlay.setPosition(evt.coordinate); } else { overlay.setPosition(undefined); } }); </script> </body> </html> ``` 在这个示例中,我们创建了一个包含地图和echarts柱状图的div容器。然后,我们创建了一个OpenLayers图层并在其上添加了一个echarts的Overlay。接下来,我们将echarts柱状图的数据与OpenLayers图层的数据相对应。最后,我们在地图上添加了一个事件监听器,当用户OpenLayers图层上的要素时,显示echarts柱状图。 注意,以上示例代码只是一个基本的示例,可能需要根据你的具体需求进行修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值