서울땅콩의 취미생활

/** 
 * 지도 클릭 위치와 폴리곤 교차 부분 추출 
 */ 
function onIntersectArea(e){
	var lonLat = e.layer.map.getLonLatFromPixel({'x':e.x, 'y':e.y}); 
	var point = new OpenLayers.Geometry.Point(lonLat.lon, lonLat.lat); 

	var  features = []; 
	var empIdArr = new Array(); 
	for(var i = 0; i < e.layer.features.length; i++){ 
	features[i] = e.layer.features[i].geometry; 
	var isResult = point.intersects(features[i]); 

	var map = {}; 
	if(isResult){ 
      map['targetId'] = e.layer.features[i].attributes.TARGET_ID; 
      map['targetNm'] = e.layer.features[i].attributes.DEPT_NM; 
      if(commonHeatMapVals.heatMapData != null){ 
          map['factVal'] = e.attributes[commonHeatMapVals.heatMapData.factColumns]; 
      } 
		empIdArr.push(map); 
	} 
} 

  //화면을 축소하여 클릭하는경우 생성된 point가 폴리곤의 경게에 물려서 정보를 못가져 오는경우가 있다. 
  //그런경우는 공간연산을 함에도 해당하는 정보들을 가지고 올 수 없으므로 그냥 선택한 데이터를 넣어준다. 
  var map = {}; 
  if(empIdArr.length == 0){ 
  	map['targetId'] = e.layer.features[0].attributes.TARGET_ID; 
  	map['targetNm'] = e.layer.features[0].attributes.DEPT_NM; 
  
    if(commonHeatMapVals.heatMapData != null){ 
      map['factVal'] = e.attributes[commonHeatMapVals.heatMapData.factColumns]; 
    } 
  empIdArr.push(map); 
  } 

  return empIdArr; 
}

공유하기

facebook twitter kakaoTalk kakaostory naver band