`

鼠标点击添加标记

阅读更多

//点击一个标注按钮的事件,该方法的作用就是启用添加标注事件

var map_onclick;

function enable_click()

{

map_onclick = new OpenLayers.Control.Click();    

map.addControl(map_onclick);    

map_onclick.activate();

}

 

 

//注册添加添加标注Handler

//注册添加标注Event

OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {                

defaultHandlerOptions: 

{

'single': true,

'double': false,

'pixelTolerance': 0,

'stopSingle': false,

'stopDouble': false

},

 

initialize: function(options) 

{

this.handlerOptions = OpenLayers.Util.extend({}, this.defaultHandlerOptions);

OpenLayers.Control.prototype.initialize.apply(this, arguments); 

this.handler = new OpenLayers.Handler.Click(this, {'click': this.trigger}, this.handlerOptions);

}, 

 

trigger: function(e) 

{                    

var lonlat = this.map.getLonLatFromPixel(e.xy);//map.getLonLatFromViewPortPx(e.xy);      

removeAll();

createMarker("<a href='http://www.handandaily.com' target='_blank'>Visit China</a>",lonlat.lon,lonlat.lat,false);                                        

}

});

 

 

 

function createMarker(html,lon,lat,isHide)

{     

var ll, popupClass, popupContentHTML;

ll = new OpenLayers.LonLat(lon,lat);

popupClass = AutoSizeFramedCloud;

popupContentHTML = html; 

addMarker(ll, popupClass, popupContentHTML, true, false);

setCenter(lon,lat);

}

 

 

 

function addMarker(ll, popupClass, html, closeBox, overflow) 

{    

var feature = new OpenLayers.Feature(markers, ll); 

feature.closeBox = closeBox;

feature.popupClass = popupClass;

feature.data.popupContentHTML = html;

feature.data.overflow = (overflow) ? "auto" : "hidden";

 

var marker = feature.createMarker();

marker.setUrl('img/marker1.png');   //ICON

marker.display(true);   

 

var markerClick = function (evt) 

{        

if (this.popup == null) 

{         

this.popup = this.createPopup(this.closeBox);

map.addPopup(this.popup);

this.popup.show();

}

else 

{

this.popup.toggle();

}

currentPopup = this.popup;

OpenLayers.Event.stop(evt);

};  

marker.events.register("mousedown", feature, markerClick);

markers.addMarker(marker);

}

 

分享到:
评论
1 楼 Hu_Angel 2013-12-24  
博主,能不能鼠标点击添加标记的完整代码,初学openlayer,不是很熟,谢谢,发我邮箱也可以。谢谢。hu_1005@126.com

相关推荐

    PyQt5图片鼠标点击标点 QLabel实现在图片上标注点并获得坐标

    # PyQt5图片鼠标点击标点 QLabel实现在图片上标注点并获得坐标 1. PyQt5 可视化程序,使用 QLabel 显示图片; 2. 在图片上鼠标点击,会在点击处显示红点并输出该点坐标

    Gmap地图 随鼠标点击添加标签

    要实现“随鼠标点击添加标签”的功能,我们需要进行以下步骤: 1. **引入GMap.NET库**:首先,你需要在你的项目中引用GMap.NET的DLL文件,这可以通过NuGet包管理器或者手动下载并添加到项目中来完成。 2. **创建...

    Cesium画点线添加标注和描述

    本文将深入探讨如何使用Cesium在3D场景中绘制点、线,并添加标注与描述,为用户提供更加丰富的地理信息展示。 首先,让我们了解Cesium的基本概念。Cesium基于 WebGL 技术,能够实现在Web环境下无需插件的三维地球...

    vue+esri 山东天地图加载、标注、鼠标移入移除浮层显示隐藏

    批量添加标注点; 鼠标移入移除标注点,浮层显示隐藏功能; 点击标注点方法实现; 地图放大缩小、平移事件; 天地图样式 &lt;link rel="stylesheet" href="https://js.arcgis.com/3.30/esri/css/esri.css"/&gt;

    qcustomplot鼠标点击后在坐标轴显示值

    这个"qcustomplot鼠标点击后在坐标轴显示值"的主题就是关于如何实现这个功能的探讨。 首先,我们需要理解QCustomPlot的基本结构。QCustomPlot由多个组件组成,包括主要的绘图区(plot area)、轴(axes)、图例...

    画多边形_多边形绘制_mfc鼠标点击绘制多边形_源码

    在MFC(Microsoft Foundation Classes)框架中,实现鼠标点击绘制多边形的功能是一项常见的图形用户界面编程任务。本文将深入探讨这一技术,包括其基本原理、实现步骤以及关键代码片段。 首先,我们要理解多边形的...

    openlayers 添加标注 markers

    openlayers 添加标注 markers 怎么给Google地图添加标注

    jQuery列表选择鼠标点击切换代码.zip

    本示例“jQuery列表选择鼠标点击切换代码”是针对用户界面交互的一种实现,通常用于创建功能丰富的网页应用。在这个项目中,我们将深入探讨如何使用jQuery来实现一个基于鼠标点击的列表选择器。 首先,让我们解析这...

    js鼠标点击水波动画效果插件.zip

    总之,“js鼠标点击水波动画效果插件”是一个实用的工具,能够轻松地为网站添加吸引人的交互元素。通过结合JavaScript和CSS的力量,它实现了优雅的水波动画效果,为用户带来了独特的视觉体验。在实际项目中,合理...

    mfc实现鼠标点击绘制道路

    本主题将详细探讨如何使用MFC实现鼠标点击来绘制道路的机制。 首先,你需要创建一个基于MFC的工程,可以选择“MFC AppWizard”来生成一个基本的对话框应用程序框架。在生成的项目中,主要涉及的类可能包括CDialog或...

    类似百度地图的静态图标注,图层上根据鼠标点击创建小图层

    3. **鼠标事件处理**:实现地图标注的关键在于捕获鼠标的点击事件。通过JavaScript或者相关的库(如Leaflet、OpenLayers等),可以监听鼠标的点击事件,获取到点击位置的坐标,然后在该位置创建图层。 4. **坐标...

    鼠标右键,键盘控制左右移动echarts标记线、标记点

    当用户点击鼠标右键时,可以弹出一个菜单,提供添加、删除和移动标记线或标记点的操作选项。这需要我们编写JavaScript代码来捕获并处理这个事件。例如: ```javascript myChart.on('contextmenu', function (params...

    高德地图-标记点点击弹出气泡

    在这个场景中,我们将重点讨论如何添加marker(标记点)以及设置点击事件。 1. **创建地图实例**: 在HTML页面中,我们需要预留一个div元素作为地图的容器。然后,通过JavaScript调用高德地图API,初始化地图实例...

    echarts实现中国地图、鼠标悬浮、点击跳转对应省市、给省市图标、缩放、拖拽、自适应

    7. 添加鼠标悬浮事件 通过ECharts的tooltip配置项来显示鼠标悬浮时的信息。你可以自定义提示框的样式和内容。 8. 实现点击跳转 为地图添加click事件监听器,当用户点击某个省市时,触发跳转。你可以使用Vue Router...

    计算机图形学 C#(鼠标点击绘制多边形、射线填充、扫描线种子填充、简单种子填充)

    本篇文章将深入探讨如何在C#中通过鼠标点击绘制多边形以及实现几种不同的填充算法,包括射线填充、扫描线种子填充和简单种子填充。 首先,让我们从鼠标点击绘制多边形开始。在C#中,我们通常会使用Windows Forms或...

    SuperMap iObject .NET 场景中用鼠标点击进行动态标绘

    例如,以下伪代码展示了如何响应鼠标点击事件进行点标绘: ```csharp GISControl gis = new GISControl(); gis.LoadData("your_data_path"); // 设置鼠标单击事件 gis.MouseDown += (sender, e) =&gt; { if (e....

    python中matplotlib实现随鼠标滑动自动标注代码

    本文将重点讲解如何利用`matplotlib`实现一个功能,即在图表上随鼠标滑动自动标注数据点的功能。这个功能对于数据分析和探索性数据可视化特别有用,因为它能帮助用户实时查看图表上的数据信息。 首先,我们需要导入...

    Cesium 地图显示鼠标经纬度和高度

    在IT行业中,Cesium是一个强大的开源JavaScript库,用于在Web浏览器中创建三维地球和地理空间应用。...在实际开发中,可以根据需求进一步定制,例如添加自定义的标注、图层或者交互控件,提升用户体验。

    画多边形_鼠标点击两点_Vc_

    在这个场景中,我们关注的是使用VC++(Visual C++)编程环境来实现一个简单的图形绘制功能,即通过鼠标点击两点来画出一条直线,并进一步扩展到画多边形。这个项目不仅涉及到基本的图形绘制,还涵盖了事件处理、坐标...

    将翻盖的位图恰好贴在鼠标点击的方砖上(不论鼠标点击在这个方砖中的什么位置),真正实现翻盖的效果

    3. **鼠标事件处理**:为了响应鼠标的点击,需要在窗体类中添加鼠标点击事件的处理函数。C#中的`MouseClick`或`MouseDown`事件可以用来检测用户是否点击了特定的方砖。在事件处理函数中,可以获取鼠标的当前位置,...

Global site tag (gtag.js) - Google Analytics