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