鼠标点击添加标记

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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值