//WMS 레이어 업데이트
//geoserver에서 sql view 로 생성한 레이어는 parameter로 조건을 줄 수 있다.
//parameter : viewparams
OpenLayers.Layer.WMS.prototype.updateLayers = function(layers,data) {
console.log("updateLayers : " +layers,data);
this.mergeNewParams({'LAYERS' : layers});
this.mergeNewParams({viewparams : data});
if(layers.length > 0) {
this.setVisibility(true);
} else {
this.setVisibility(false);
}
};
//레이어 생성 시 속성값 부여 하는 스크립트
$.ajax ({
type : "GET",
dataType : "json",
data : {
monitoring_year : nowYear,
waste_big_type_code : waste_code
},
url : "/gis/MonitoringZoneData.do",
success : function(res) {
$.each(res.mzd, function(i) {
var mzd = res.mzd;
var mapPt = new OpenLayers.Geometry.Point(mzd[i].longitude,mzd[i].latitude).transform(EPSG_4326,EPSG_900913);
var lonLat = new OpenLayers.Geometry.Point(mapPt.x,mapPt.y);
monitoringLayer = new OpenLayers.Layer.Vector("monitoringLayer");
var mzdFeature = new OpenLayers.Feature.Vector(
lonLat,
{
zoneName : mzd[i].zonename,
zoneCode : mzd[i].monitoring_zone_code,
monitoring_year : mzd[i].monitoring_year
} ,
{
/*externalGraphic: '/js/OpenLayers/img/marker-blue.png',
graphicOpacity: 1.0,
graphicWith: 16,
graphicHeight: 26,
graphicYOffset: -26,
fontColor: "red",
fontSize: "15px",
fontFamily: "Verdana",
fontWeight: "bold" */
fillOpacity: 1.0,
externalGraphic: "http://chart.apis.google.com/chart?cht=p3&chd=t:"+ mzd[i].ea1+","+ mzd[i].ea2+","+ mzd[i].ea3+","+ mzd[i].ea4+","+ mzd[i].ea5+","+ mzd[i].ea6+"&chs=250x150&chf=bg,s,FFFFFF00",
graphicWidth: 80,
graphicHeight: 50,
strokeWidth: 0
}
);
monitoringLayer.addFeatures(mzdFeature);
monitoringLayer.id = "monitoringLayer" + i;
map.addLayer(monitoringLayer);
});
}
});
//생성한 레이어 클릭 시 부여된 속성값 가져오는 컨트롤
e.feature.attributes.monitoring_year;
e.feature.attributes.zoneCode;
'develop > web GIS' 카테고리의 다른 글
geoserver SLD를 이용한 차트 올리기 (0) | 2015.04.02 |
---|---|
POST GIS VIEW (0) | 2015.03.10 |
dojo를 이용한 vworld map 띄우기 (0) | 2015.02.05 |
지도위에 구글차트 띄우기 (0) | 2015.02.05 |
EPSG:4326 to EPSG:900913 transform (0) | 2014.11.19 |