2012-12-24 1 views
0

내지도는 wms png 형식으로 표시 할 수 있지만 내 URL이 올바른 서비스 인 방식으로 jeojson 및 gml 형식을 렌더링하지 않았습니다. additonal 내 로컬에서 URL을 제외하고 동일한 코드를 사용했고 로컬 geoserver를 렌더링 할 수 있습니다. Plz 내게 어떤 방법을 보여줍 ??? 내가 gml 형식을 호출 할 때 매우 이상하고 렌더링 맵이없는 방화범이 끌리지는 않지만 geojson 형식을 호출 할 때 방화범이 끌린다. SyntaxError : JSON.parse : 예기치 않은 데이터의 끝. 하지만 내 지역 geoserver를 사용하면 옵션과 URL을 편집 할 수 있습니다, 내 로컬에서지도 gml과 geojson 형식을 표시 할 수 있습니다.하지만 서비스 URL을 추가하면 렌더링이 안됩니다. 그러나 다시 wms 형식을 렌더링 할 수 있습니다. 내가 servcice url에서 일할 때 didn use proxy는 기억이 안납니다. 충고에 감사하다 ???? 내 환경 Openlayers, Geoserver. 주석 줄에 일부 코드가 있습니다.geojson 형식 및 gml 형식을 어떻게 렌더링 할 수 있습니까?

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://myurl.com/geoserver/openlayers/OpenLayers.js"type="text/javascript"> 
</script> 
<!--<script src="http://svn.osgeo.org/metacrs/proj4js/trunk/lib/proj4js-combined.js"> </script>--> 
<style type="text/css"> 
    body { 
     font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; 
     font-size: small; 
    } 
    /* Toolbar styles */ 

     #toolbar { 
     position: relative; 
     padding-bottom: 0.5em; 
     display: none; 
    } 

     #toolbar ul { 
     list-style: none; 
     padding: 0; 
     margin: 0; 
    } 

    #toolbar ul li { 
     float: left; 
     padding-right: 1em; 
     padding-bottom: 0.5em; 
    } 

    #toolbar ul li a { 
     font-weight: bold; 
     font-size: smaller; 
     vertical-align: middle; 
     color: black; 
     text-decoration: none; 
    } 

    #toolbar ul li a:hover { 
     text-decoration: underline; 
    } 

    #toolbar ul li * { 
     vertical-align: middle; 
    } 

    /* The map and the location bar */ 
    #map { 
     clear: both; 
     position: relative; 
     width: 778px; 
     height: 330px; 
     border: 1px solid black; 
    } 

    #wrapper { 
     width: 778px; 
    } 

    #location { 
     float: right; 
    } 

    #options { 
     position: absolute; 
     left: 13px; 
     top: 7px; 
     z-index: 3000; 
    } 

    /* Styles used by the default GetFeatureInfo output, added to make IE happy */ 
    table.featureInfo, table.featureInfo td, table.featureInfo th { 
     border: 1px solid #ddd; 
     border-collapse: collapse; 
     margin: 0; 
     padding: 0; 
     font-size: 90%; 
     padding: .2em .1em; 
    } 

    table.featureInfo th { 
     padding: .2em .2em; 
     text-transform: uppercase; 
     font-weight: bold; 
     background: #eee; 
    } 

    table.featureInfo td { 
     background: #fff; 
    } 

    table.featureInfo tr.odd td { 
     background: #eee; 
    } 

    table.featureInfo caption { 
     text-align: left; 
     font-size: 100%; 
     font-weight: bold; 
     text-transform: uppercase; 
     padding: .2em .2em; 
    } 
</style> 
<script defer="defer" type="text/javascript"> 
OpenLayers.ProxyHost = "/gt/proxy.cgi?url="; 
var lon = 5; 
var lat = 44; 
var zoom = 5; 
var map, layer; 

function init(){ 
    var bounds = new OpenLayers.Bounds(
      25.663514785385082,35.80899164217125,44.82543228354381,42.10495847294918 
     ); 

     var options = { 
      controls: [], 
      maxExtent: bounds, 
      maxResolution:6541.59135, 
      projection: "EPSG:4326", 
      units: 'm' 
     }; 

     map = new OpenLayers.Map('map', options); 

     map.addControl(new OpenLayers.Control.PanZoomBar({ 
      position: new OpenLayers.Pixel(2, 15) 
     })); 
     map.addControl(new OpenLayers.Control.Navigation()); 
     map.addControl(new OpenLayers.Control.Scale($('scale'))); 
     map.addControl(new OpenLayers.Control.MousePosition({element: $('location')})); 

       //Gml geliyor kardes 
     map.addLayer(new OpenLayers.Layer.Vector("GML", { 
     isBaseLayer: true , 
     //styleMap: myStyles, 

     protocol: new OpenLayers.Protocol.HTTP({ 
      url: "http://myurl.com/geoserver/Tarim/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=Tarim:Iller&maxFeatures=50", 
      format: new OpenLayers.Format.GML() 
     }), 
     strategies: [new OpenLayers.Strategy.Fixed()] 
    })); 
    /*var geojson_format = new OpenLayers.Format.GeoJSON(); 
    var vl2 = new OpenLayers.Layer.Vector("",{isBaseLayer: true}); 
    map.addLayer(vl2); 

    var selectCtrl = new OpenLayers.Control.SelectFeature(vl2, 
     { 
     clickout: true, onSelect:onFeatureSelect } 
    ); 
    var hoverCtrl = new OpenLayers.Control.SelectFeature(vl2, 
     {highlightOnly: true} 
    ); 
    //map.addControl(hoverCtrl); 

    //hoverCtrl.activate(); 

    map.addControl(selectCtrl); 
    selectCtrl.activate(); 

    function onFeatureSelect(evt) { 
     map.zoomToExtent(evt.geometry.bounds, closest=true); 
    } 

    //v12.events.register("featureselected", v12, selected); 

    //var controlu = new OpenLayers.Control.SelectFeature(v12); 

    //map.addControl(controlu); 
    //controlu.activate(); 
    //var bounds = new OpenLayers.Control.Navigation({ 
    //defaultDblClick: function(event) { return; } 
    //}); 

    //map.addControl(Navigation); 


    var report = function(e) { 
     OpenLayers.Console.log(e.type, e.feature.id); 
    }; 

    function handler(request) { 
    vl2.addFeatures(geojson_format.read(request.responseText)) 
    map.zoomToExtent(bounds); 
    } 
    var request = OpenLayers.Request.GET({ 
    url:"http://my url.com/geoserver/Tarim/ows?service=WFS&version=1.0.0&request=GetFeature& typeName=Tarim:IcmeSuyuHatti&maxFeatures=50&outputFormat=json",    
callback: handler 
    });*/ 
} 
    </script> 
</body> 
</html> 

답변

관련 문제