open:jsonp

jsonp

snippet.javascript
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'
	};

  • open/jsonp.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1