OpenLayers下使用Jquery tooltip(Qtip)让要素信息自动显示或隐藏
首先在官网下载qtip插件:http://craigsworks.com/projects/qtip/
1、导入插件
<link rel="stylesheet" href="jquery.qtip.min.css" type="text/css"> <script src="jquery.js" type="text/javascript"></script> <script src="http://openlayers.org/api/OpenLayers.js"></script> <script src="jquery.qtip.min.js" type="text/javascript"></script>
2、编写js
(1)、在地图帮助类JS中加入:
//要素tip文字控件 var tooltipControl = new OpenLayers.Control.SelectFeature(com.nwd.map._vectorLayer_, { hover: true, highlightOnly: true, eventListeners: { beforefeaturehighlighted: showQtip, } }); this.map.addControl(tooltipControl); //QTip文字显示==此方法也可以加入到JSP页面里 function showQtip(olEvent){ var elem = document.getElementById(olEvent.feature.geometry.id); $(elem).qtip({ overwrite: false, content: olEvent.feature.attributes.name, position: { at: 'right center', my:'left center' }, show: { ready: true }, style: { classes: 'ui-tooltip-shadow ui-tooltip-blue' } }).qtip('show'); }
(2)、在页面JS中加入:
function carInfoPOI(geoPoint,img) { var address=geoPoint.address+"",address1,address2; if(address.length>23){ address1=address.substring(0,23); address2=address.substring(23,address.length); address=address1+"<br>"+address2; } var divContent="<div style='font-size:12px;width:280px;'>" +getCarNumber(geoPoint.deviceId)+"<hr>设备编号:" +geoPoint.deviceId+"<br/>" +"速度:"+geoPoint.speed+"km/h<br/>" +"方向:"+geoPoint.direction+"点方向<br/>" +"告警数据:"+geoPoint.alarm+"<br/>" +"地址:"+address+"</div>"; var attributes = { 'name': divContent, 'longitude': geoPoint.lon_, 'latitude': geoPoint.lat_ }; var feature= new OpenLayers.Feature.Vector(geoPoint, attributes, intCarStyle(img,geoPoint.deviceId)); feature.deviceId=deviceId;feature.geoPoint=geoPoint; return feature; }