使用OpenLayers实现一个在鼠标点击处添加标记的效果
来源:互联网 发布:逆矩阵计算器 编辑:程序博客网 时间:2024/06/18 05:33
//点击一个标注按钮的事件,该方法的作用就是启用添加标注事件
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);
}
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);
}
0 0
- 使用OpenLayers实现一个在鼠标点击处添加标记的效果
- jquery实现在鼠标点击处的炫酷效果
- 【Unity快速实现小功能】快速添加一个鼠标点击物体的识别功能
- openlayers添加标记信息框
- 点击添加的效果简单实现
- Qt 中实现在控件中点击鼠标,就在鼠标点击处加载图片的方法
- JS的鼠标点击效果
- JS实现鼠标点击处烟花爆炸效果
- 在Ext的GridPanel中添加鼠标悬停的效果
- 在Ext的GridPanel中添加鼠标悬停的效果
- 在Ext的GridPanel中添加鼠标悬停的效果
- 终于解决!图片随鼠标移动在FireFox下实现,另附一个好玩的图片随鼠标伸缩效果
- 使用PopupWindow 实现Spinner 的点击效果
- 百度地图添加标记以及标记的点击
- 一个使用Jquery写的一个鼠标拖动效果
- OpenLayers 学习(五) 根据经纬度用Marker在地图上添加标记
- textview添加selector实现button的点击效果
- 笔记,GridView点击添加背景,类似checkbox效果的实现
- train_cascade 源码阅读系列
- Design a valet parking system.
- oracle利用触发器实现自增列
- 书山有路勤为径--书虫成长之路
- Labview+USB+FPGA数据采集之MFC
- 使用OpenLayers实现一个在鼠标点击处添加标记的效果
- 1月29号总结
- vsftp配置教程-实践
- 神经网络编程入门
- jquery.ajax重写机制
- 第332天(36W+1)
- Java系列(九)__链表
- 机器学习与智能优化系列
- Java系列(十)__Java面向对象(4)