wfs 방식으로 geoserver 에 서 json 으로 받아서 read 할때 오류가 납니다. 조언좀 부탁드립니다.

680 views
Skip to first unread message

HyunJun Oh

unread,
Dec 10, 2013, 12:37:24 PM12/10/13
to osge...@googlegroups.com
 OpenLayers.Request.GET({
                url: "http://118.219.45.130:8089/geoserver/soriver/wfs",
                async: true,
                params: {
                    TYPENAME: 'soriver:river',
                    MAXFEATURES: '1000',
                    SERVICE: 'WFS',
                    VERSION: '1.0.0',
                    REQUEST: 'GetFeature',
                    SRS: 'epsg:5181',
                     BBOX: mapBand,
                    OUTPUTFORMAT: 'json'
                },              
                success: function (response) {
                    readJson(response);
                },
                failure: function () {
                    alert("실패");
                }
            });
         }


        function readJson(res) {
            alert(res.readyState);
            if (res.readyState == 4) {               
                var json = new OpenLayers.Format.GeoJSON();
                var jsonFeatures = json.read(res.responseText);          //에러나는 부분   
                           
               
                for (var i = 0; i < jsonFeatures.length; i++) {
                    if (jsonFeatures[i])
                        bounds.extend(jsonFeatures[i].geometry.getBounds());
                }
                map.zoomToExtent(bounds, false);

            }
        }

민경일

unread,
Dec 10, 2013, 9:48:36 PM12/10/13
to osge...@googlegroups.com
res.responseText 값이 빈 문자열이기 때문에 발생하는 에러 입니다.

 wfs요청에대한 응답값을 살펴보았는데  요청 구문의 문제이기 보다는

 javascript의 크로스도메인 문제인 듯 보입니다.

Geoserver와 웹사이트가 구동되는 서버의 도메인이 다를경우  wfs문자열을 직접읽어 올수 없습니다.

이문제로 위 구문에서 오류가 발생하는듯 합니다.

이문제를 해결하기 위해  proxy 라는 기술을 사용합니다.

해당 웹사이트에 proxy 페이지를 만들고 이를 통해 wfs요청을 하도록 개발하시면 문제를 해결할 수 있으실 것 같습니다.

도움이 되었으면 좋겠네요.












2013/12/11 HyunJun Oh <ohj...@gmail.com>

--
Google 그룹스 'OSGeo(Open Source GeoSpatial) 한국어 지부 - OSGeo Korean Chapter' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 osgeo-kr+u...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 osge...@googlegroups.com(으)로 이메일을 보내세요.
http://groups.google.com/group/osgeo-kr에서 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를) 방문하세요.

Reply all
Reply to author
Forward
0 new messages