Листовка ближайшего гео Json Маркер на «клик» - PullRequest
0 голосов
/ 20 января 2020

Мне удалось включить мою базовую карту WMS и слой geo JSON в мой листовой клиент, но он очень медленный ... Я думаю, потому что в Json FeatureCollection содержится более 500 объектов? Теперь я хочу скрыть все свои маркеры, и когда я щелкаю где-нибудь на карте, я хочу, чтобы ближайший маркер отображался со своими свойствами. Кто-нибудь, у кого есть решение для этого?

Мой JavaScript код в моем html выглядит так:

<script>

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

    var nrwTopo = L.tileLayer.wms('http://ows.mundialis.de/services/service?', {
        layers: 'OSM-WMS',
        format: 'image/png',
        transparent: true
    }).addTo(mymap);

    var geojsonLayer = new L.GeoJSON();

    function handleJson(data) {
        console.log(data)
        geojsonLayer.addData(data);
    }

    var hospitals = $.ajax({
        url: "http://localhost:8080/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=Assignment11:krankenhaeuser&outputFormat=JSON&srsName=EPSG:4326",
        dataType: 'json',
        success: handleJson
    });

    mymap.addLayer(geojsonLayer);

</script>

И пример моей FeatureCollection:

{"type":"FeatureCollection","features":[{"type":"Feature","id":"krankenhaeuser.1","geometry":{"type":"Point","coordinates":[347867,5678190]},"geometry_name":"the_geom","properties":{"KH_ID":"1110100","KH_BEZ":"","KH_TELEFON":"","KH_URL":"","KH_ART":"","TRAEGER":"","RECHTSFOR":"","BS_BEZ":"Luisenkrankenhaus GmbH & Co.KG","PLZ":"40235","ADRESSE":"Luise-Rainer-Str. 6-10","ORT":"Düsseldorf","DISZIPLIN":"","BETTENZAHL":""}},{"type":"Feature","id":"krankenhaeuser.2","geometry":{"type":"Point","coordinates":[345513,5674250]},"geometry_name":"the_geom","properties":{"KH_ID":"1110101","KH_BEZ":"Universitätsklinikum Düsseldorf","KH_TELEFON":"0211/81-00","KH_URL":"http://www.uniklinik-duesseldorf.de","KH_ART":"Universitätskrankenhaus","TRAEGER":"Universitätsklinikum Düsseldorf","RECHTSFOR":"Anstalt der öffentlichen Rechts","BS_BEZ":"Universitätsklinikum","PLZ":"40225","ADRESSE":"Moorenstr. 5","ORT":"Düsseldorf","DISZIPLIN":"Augenheilkunde (32),Chirurgie (314),Frauenheilkunde und Geburtshilfe (75),Geriatrie (30),Hals-Nasen-Ohrenheilkunde (33),Haut-Geschlechtskrankheiten (64),Herzchirurgie (84),Innere Medizin (383),Kinder- und Jugendmedizin (116),MKG-Chirurgie (32),Neurochiru","BETTENZAHL":"1387"}},{"type":"Feature","id":"krankenhaeuser.3","geometry":{"type":"Point","coordinates":[316676,5642168]},"geometry_name":"the_geom","properties":{"KH_ID":"1110101","KH_BEZ":"Universitätsklinikum Düsseldorf","KH_TELEFON":"0211/81-00","KH_URL":"http://www.uniklinik-duesseldorf.de","KH_ART":"Universitätskrankenhaus","TRAEGER":"Universitätsklinikum Düsseldorf","RECHTSFOR":"Anstalt der öffentlichen Rechts","BS_BEZ":"Nuklearmedizinische Klinik/Mediz.Einr.d.Uni Düsseldorf","PLZ":"52428","ADRESSE":"Leo-Brand-Str.","ORT":"Jülich","DISZIPLIN":"Augenheilkunde (32),Chirurgie (314),Frauenheilkunde und Geburtshilfe (75),Geriatrie (30),Hals-Nasen-Ohrenheilkunde (33),Haut-Geschlechtskrankheiten (64),Herzchirurgie (84),Innere Medizin (383),Kinder- und Jugendmedizin (116),MKG-Chirurgie (32),Neurochiru","BETTENZAHL":"1387"}},{"type":"Feature","id":"krankenhaeuser.4","geometry":{"type":"Point","coordinates":[350273,5679026]},"geometry_name":"the_geom","properties":{"KH_ID":"1110102","KH_BEZ":"Sana Kliniken Düsseldorf GmbH","KH_TELEFON":"02112800-01","KH_URL":"http://www.sana-duesseldorf.de/","KH_ART":"Allgemeinkrankenhaus","TRAEGER":"Sana Kliniken Düsseldorf GmbH","RECHTSFOR":"Gesellschaft mit beschränkter Haftung","BS_BEZ":"Krankenhaus Gerresheim","PLZ":"40625","ADRESSE":"Gräulinger Str. 120","ORT":"Düsseldorf","DISZIPLIN":"Chirurgie (192),Frauenheilkunde und Geburtshilfe (58),Hals-Nasen-Ohrenheilkunde (5),Innere Medizin (225),Kinder- und Jugendmedizin (10)","BETTENZAHL":"490"}}

А как я могу сохранить гео Json как объект? Когда я пытаюсь показать его в консоли, он говорит «undefined» для console.log(hospitals.features)?

...