wmap.addLayerFunc(fnCameraClick, "camera_info_ps", "camera_type='1'", "시설물", "카메라(신규)", "facility_camera_new");
wmap.addLayerFunc = function(func, tableName, filter, groupName, layerName, type) {
var callbackName = getCallbackName();
var parameters = L.Util.extend(getWfsDefaultParameters(tableName, filter, callbackName));
console.log(wfsUrl + L.Util.getParamString(parameters));
$.ajax({
jsonp : false,
async : false,
url : wfsUrl + L.Util.getParamString(parameters),
dataType : 'jsonp',
jsonpCallback : callbackName,
success : handleJson
})
function handleJson(data) {
layer = L.geoJson(data, {
onEachFeature : function(feature, layer) {
layer.on({
click : L.bind(func, null, feature)
});
},
pointToLayer : function(feature, latlng) {
return L.marker(latlng, {
icon : typeIcon(type)
});
}
}).addTo(map);
styledLayerControl.addOverlay(layer, typeLegend(type, layerName), {
groupName : groupName,
expanded : true
});
}
}
function getCallbackName() {
callbackIdx += 1;
return "getJson" + callbackIdx;
}
function getWfsDefaultParameters(tableName, filter, callbackName) {
wfsDefaultParameters.typeName = "mcs:" + tableName;
wfsDefaultParameters.CQL_FILTER = filter;
wfsDefaultParameters.format_options = "callback: " + callbackName;
return wfsDefaultParameters;
}
var callbackIdx = 0; // 콜백함수 인덱스 : jsonp 사용시 콜백 함수명 구분을 위한 인덱스 값
var wfsUrl = 'http://121.160.17.83:9500/geoserver/mcs/ows'; // GeoServer 접속주소
var wfsDefaultParameters = { // GeoServer 요청을 위한 파라미터
service : 'WFS',
version : '1.0.0',
request : 'GetFeature',
maxFeatures : 200,
outputFormat : 'text/javascript',
//format_options : 'callback: getJson',
srsName : 'EPSG:4326'
};