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;
}

좋은 웹페이지 즐겨찾기