Объедините GeoServer ShapeFile с базовой картой WMS на клиенте Leaflet - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь объединить WMS с внешним ShapeFile, загруженным на мой GeoServer. Моя карта WMS работает нормально с клиентом-листовкой, но я не знаю, как реализовать мой Shapefile. Я загрузил свой ShapeFile на свой GeoServer в разделе Vectordata.

Когда я делаю запрос WFS DescribeFeature, я получаю этот ответ:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:Assignment11="http://localhost:8080/geoserver/Assignment11" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" targetNamespace="http://localhost:8080/geoserver/Assignment11">
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="http://localhost:8080/geoserver/schemas/gml/2.1.2/feature.xsd"/>
<xsd:complexType name="krankenhaeuserType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="the_geom" nillable="true" type="gml:PointPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="KH_ID" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="KH_BEZ" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="KH_TELEFON" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="KH_URL" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="KH_ART" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="TRAEGER" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="RECHTSFOR" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="BS_BEZ" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="PLZ" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ADRESSE" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ORT" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="DISZIPLIN" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="BETTENZAHL" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="krankenhaeuser" substitutionGroup="gml:_Feature" type="Assignment11:krankenhaeuserType"/>
</xsd:schema>

Когда я делаю запрос GetFeature с outputFormat = JSON (http://localhost: 8080 / geoserver / ows? Service = wfs & version = 1.0.0 & request = GetFeature & typeName = Assignment11: krankenhaeuser & outputFormat = JSON) ответ - полная коллекция компонентов всех моих функций.

В настоящее время я скучаю по тому, что я хочу добавить все эти объекты на свою карту в качестве маркера, например. Это главная проблема. Когда я начал работать, я хочу скрыть все эти функции, а когда я нажму на карту, я хочу, чтобы всплыла ближайшая функция.

Это мой код:

<!DOCTYPE html>
<html>
<head>

    <title>Assignment 11</title>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>

    <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>

</head>
<body>



<div id="mapid" style="width: 1400px; height: 700px;"></div>
<script>

    var mymap = L.map('mapid').setView([51.28, 7.33], 8);

    var nrwTopo = L.tileLayer.wms('http://www.wms.nrw.de/geobasis/wms_nw_dtk?', {
        layers: 'WMS_NW_DTK',
        format: 'image/png',
        transparent: true
    }).addTo(mymap);


</script>



</body>
</html>
...