• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > openLayer4动态改变标注图标

openLayer4动态改变标注图标

作者:xiaoyuer666999的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-14

xiaoyuer666999的博客通过本文主要向大家介绍了地图,函数,实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

地图上经常需要标出标注,标注点击之后要有相应的变化来达到一定的效果。此实例即在地图上添加图片标注,点击标注,更换标注图片,再点击其他标注,上一个标注恢复原来的标注图片。

     /*初始化地图*/
      var map;
      function initmap(){          
          map= new ol.Map({
            layers: layers,
            target: 'mapContainer',
            view: new ol.View({
              //地图中心坐标
              center: new ol.proj.fromLonLat([117.191166, 34.289749],'EPSG:3857'),
              zoom: 13//地图缩放级别
            })
          });
          //添加标注
          addFeature();                      
      }



     /*添加标注信息*/
      function addFeature(){ 
      //数据太多,放json里读取,里面是标注的坐标信息       
        $.get('./featureData.json').done(function(data){    
            var data = eval(data);
            var lon = 0;
            var lat = 0;
            var romeArr = [];
            for(var i=0;i<data .length;i++){
                lon = parseFloat(data [i].lon);
                lat = parseFloat(data [i].lat);
                name = data[i].name;               
                var rome = new ol.Feature({
                    geometry:new ol.geom.Point(new ol.proj.fromLonLat([lon,lat],'EPSG:3857')),
                    name:name
                });
                //标注样式设置
                rome.setStyle(new ol.style.Style({
                  image: new ol.style.Icon(({
                    crossOrigin: 'anonymous',
                    scale:0.3, //标注图标大小                   
                    src: 'images/vtourskin_mapspot.png'
                  }))
                }));
                romeArr.push(rome);      
            }
            //定义select控制器,点击标注后的事件
            var select= new ol.interaction.Select();
              //map加载该控件,默认是激活可用的
              map.addInteraction(select);
              select.on('select', function(e) {
                /*恢复其他图标样式*/
                romeArr.forEach(function(ele){
                  ele.setStyle(new ol.style.Style({
                    image: new ol.style.Icon(({
                      crossOrigin: 'anonymous',
                      scale:0.3,                    
                      src: 'images/vtourskin_mapspot.png'
                    }))
                  }));
                })
                console.log(e.selected); //打印已选择的Feature                                             
                /*当前选择的图标变化,在此仅改变了图片路径以显示不同的图标,可以根据自己的需要进行设置*/
                var currentRome = e.selected[0];
                currentRome.setStyle(new ol.style.Style({
                    image: new ol.style.Icon(({
                      crossOrigin: 'anonymous',
                      scale:0.3,                    
                      src: 'images/vtourskin_mapspotactive.png'
                    }))
                  }));
              });

            vectorSource = new ol.source.Vector({
              features: romeArr
            });

            var vectorLayer = new ol.layer.Vector({
              source: vectorSource
            });

            map.addLayer(vectorLayer);

        });
      }
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vue调用高德地图实例代码
  • 基于HTML5+JS实现本地图片裁剪并上传功能
  • nodejs根据ip数组在百度地图中进行定位
  • js 调用百度分享功能
  • canvas 实现中国象棋
  • 拖动时防止选中
  • 微信小程序通过api接口将json数据展现到小程序示例
  • AngularJs 利用百度地图API 定位当前位置 获取地址信息
  • openLayer4动态改变标注图标
  • js仿百度音乐全选操作

相关文章

  • 2017-05-11原生JS实现《别踩白块》游戏(兼容IE)
  • 2017-05-11基于jQuery代码实现圆形菜单展开收缩效果
  • 2017-05-11footer定位页面底部(代码分享)
  • 2017-05-11Node.js查找当前目录下文件夹实例代码
  • 2017-05-11jquery代码规范让代码越来越好看
  • 2017-05-11JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
  • 2017-05-11jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
  • 2017-05-11jQuery点击头像上传并预览图片
  • 2017-05-11微信小程序中实现一对多发消息详解及实例代码
  • 2017-05-11完美解决spring websocket自动断开连接再创建引发的问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 从零学习node.js之express入门(六)
    • Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
    • 详解Javascript中DOM的范围
    • 数组Array的一些方法(总结)
    • JavaScript中的子窗口与父窗口的互相调用问题
    • es6的数字处理的方法(5个)
    • jQuery实现联动下拉列表查询框
    • Angular2实现自定义双向绑定属性
    • jQuery实现字符串全部替换的方法【推荐】
    • 微信小程序 出现47001 data format error原因解决办法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有