2017-06-19 15 views
0

リーフレットとGeoServerを使用してポップアップを表示しようとしていますが、なぜ動作しないのかわかりません。私はどんな助けにも感謝します。試験としてGeoServerのWFSを使用してポップアップがリーフレットに表示されない

 <script> 
    var map = L.map('map').setView([-36.799907, 174.708520], 11); 
    var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; 
    var osmAttrib = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'; 
    var osm = new L.TileLayer(osmUrl, { minZoom: 8, maxZoom: 18, attribution: osmAttrib }); 
    map.addLayer(osm); 

    //L.tileLayer('http://{s}.google.com/vt/lyrs=s,h&x={x}&y={y}&z={z}', { 
    // maxZoom: 20, 
    // subdomains: ['mt0', 'mt1', 'mt2', 'mt3'] 
    //}).addTo(map); 


    var mywms = L.tileLayer.wms("http://localhost:9090/geoserver/localhost/wms", { 
     layers: 'localhost:TEST_JSON', 
     format: 'image/png', 
     transparent: true, 
     version: '1.1.0' 
    }); 
    mywms.addTo(map); 

    var owsrootUrl = 'https://localhost:9090/geoserver/ows'; 

    var defaultParameters = { 
     service: 'WFS', 
     version: '2.0.0', 
     request: 'GetFeature', 
     typeName: 'localhost:TEST_JSON', 
     outputFormat: 'text/javascript', 
     format_options: 'callback:getJson', 
     SrsName: 'EPSG:2193' 
    }; 

    var parameters = L.Util.extend(defaultParameters); 
    var URL = owsrootUrl + L.Util.getParamString(parameters); 

    var WFSLayer = null; 
    var ajax = $.ajax({ 
     url: URL, 
     dataType: 'jsonp', 
     jsonpCallback: 'getJson', 
     success: function (response) { 
      WFSLayer = L.geoJson(response, { 
       style: function (feature) { 
        return { 
         stroke: false, 
         fillColor: 'FFFFFF', 
         fillOpacity: 0 
        }; 
       }, 
       onEachFeature: function (feature, layer) { 
        popupOptions = { maxWidth: 200 }; 
        layer.bindPopup("Popup text,cvbcvbcvbcvb " , popupOptions); 
       } 
      }).addTo(map); 
     } 
    }); 

、私は、私のブラウザでこのURLを入力

http://localhost:9090/geoserver/ows?service=wfs&version=2.0&request=GetFeature 

そして、このエラーを取得しています:

<ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:ows="http://www.opengis.net/ows/1.1" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" 
xsi:schemaLocation="http://www.opengis.net/ows/1.1 
    http://localhost:9090/geoserver/schemas/ows/1.1.0/owsAll.xsd"> 
<ows:Exception exceptionCode="MissingParameterValue" locator="GetFeature"> 
<ows:ExceptionText> 
    The query should specify either typeName, featureId filter, or a stored query id 
</ows:ExceptionText> 
</ows:Exception> 
</ows:ExceptionReport> 

誰でもURLからGETリクエストを送信するために私を助けてもらえGeoServerからの応答をご覧ください。

+1

慎重にエラーメッセージを読む: 'クエリを指定する必要がありますあなたのWFSリクエスト( 'http:// localhost:9090/geoserver/ows?service = wfs&version = 2.0&request = GetFeature')でどのクエリパラメータを送信しているのかを調べるには、typeName、featureId filter、 。 – IvanSanchez

+0

イワンより。投稿のパラメータを設定するのは間違いありませんが、どのように定義するべきですか。フォーマットは何ですか?注文はありますか?私は例を探しています。 –

+0

geoserverにはデモ要求のセットが付属しています。デモメニューの下を見て、デモリクエストを選択してください。 –

答えて

1

シンプルですが、それを理解するまでには長い時間がかかりました。鉱山で

Geoserverこのポストは非常に有用だっSSLを持っていないので、

owsrootUrl = 'http://localhost:9090/geoserver/ows';EPSG:4326

var owsrootUrl = new L.GeoJSON(); 
    owsrootUrl = 'http://localhost:9090/geoserver/ows'; 

    var defaultParameters = { 
     service: 'WFS', 
     version: '2.0.0', 
     request: 'GetFeature', 
     typeName: 'localhost:TEST_JSON', 
     outputFormat: 'text/javascript', 
     format_options: 'callback:getJson', 
     SrsName: 'EPSG:4326' 
    }; 

    var parameters = L.Util.extend(defaultParameters); 
    var URL = owsrootUrl + L.Util.getParamString(parameters); 

    var WFSLayer = null; 
    var ajax = $.ajax({ 
     url: URL, 
     dataType: 'jsonp', 
     jsonpCallback: 'getJson', 
     success: function (response) { 
      WFSLayer = L.geoJson(response, { 
       style: function (feature) { 
        return { 
         stroke: false, 
         fillColor: 'FFFFFF', 
         fillOpacity: 0 
        }; 
       }, 
       onEachFeature: function (feature, layer) { 
        popupOptions = { maxWidth: 200 }; 
        layer.bindPopup("Popup text, access attributes with ParcelID:"+feature.properties.parcelid+"<br> this land has "+feature.properties.lat+" numbers</br>" 
         , popupOptions); 
       } 
      }).addTo(map); 
     } 
    }); 

次のようになります。https://gis.stackexchange.com/questions/64406/getting-wfs-data-from-geoserver-into-leaflet

関連する問題