knreise / demonstratorer

Other
12 stars 2 forks source link

GeoJSON fra url #155

Closed daellu closed 8 years ago

daellu commented 9 years ago

Har en geoJSON fil (https://drive.google.com/uc?export=download&id=0B5eF_JOKfcySb3l3dmdaV3JfQ0E) med polygoner og lurer på om det er mulig å laste denne inn som et lag i kartet?

Har prøvd meg litt med Leaflet og fått til å laste inn i et kart (eg. http://gis.stackexchange.com/questions/68489/how-to-load-external-geojson-file-into-leaflet-map), men øsnker som sagt å få denne inn som et lag. Det hadde vært greit om man kunne kalle opp et datasett med url-parameter for å kunne gjennbruke koden, samt kalle inn flere geoJSON filer.

Regner med at GeoJsonAPI er beregnet for linjer da jeg får "TypeError: api.getWithin is not a function" : "KNreiseAPI.js:1752:9" i consollen hvis jeg prøver å brue denne for å laste inn en GoeJeson-fil?

atlefren commented 9 years ago

Hei!

GeoJsonAPI er beregnet for linjer pr i dag, og den er også lagt opp til å begerense utvalg på datasettene med en buffer rundt linjer. Dermed er den ikke egnet til kun å sette opp data til visning fra en GeoJSON fil, da må du nok inn med en egen API-modul (dette er det mange av de eksisterende modulene gjør).

VI har planer om å komme med noen med guider på hvordan lage nye moduler for slikt, så skal si fra når dette er på plass.

daellu commented 9 years ago

Takk for svar :)

Regnet nesten med at GeoJsonAPI var beregnet på linjer. Kanskje CartodbAPI er mer i retning av det jeg ser etter(?), men en guide for å sette opp en ny API hadde vært fint får å få oversikt over hva man skal laste/hente inn hvor.

atlefren commented 9 years ago

Pr i dag er nok den enkleste måten å få inn flate-geometrier å bruke CartoDB ja.

atlefren commented 9 years ago

Oops, når jeg leser din første kommentar nærmere ser jeg hva feilen er!

api.getWithin is not a function

Dette betyr at GeoJSONAPI ikkke støtter getWithin-funksjonen, kun getData. Dvs: den støtter ikke å laste data på nytt når du beveger kartet.

Prøv å sett opp datasettet ditt på følgende måte:

{
            name: 'Mitt GeoJSON-lag',
            dataset: {
                api: 'geojson',
                url: 'http://....'
            },
            template: KR.Util.getDatasetTemplate('my_template'),
            isStatic: true,
            bbox: false
        }

(det viktige er isStatic: true og bbox: false, det får koden til å bruke api.getData, ikke api.getWithin

daellu commented 9 years ago

Takk for tips, får det dessverre ikke til å fungere og får ikke sett mer på dette akkurat nå.

Jeg får legge det litt til side så lenge; så kanskje jeg kommer på noe og/eller at guiden dere setter opp gir nok informasjon så jeg finner ut av hva som skal gjøres (jeg får lastet inn polygonene i leaflet, men jeg vet ikke hvordan jeg setter dette opp som et API) eller at noen andre finner ut/setter opp hvordan å laste inn punkter/polygoner fra GeoJson som et API.

Uansett, takk for hjelpen så langt :)

atlefren commented 9 years ago

@daellu

Har satt opp en codepen med et eksempel her: http://codepen.io/atlefren/pen/rOZGgW Håper det kan være til hjelp!

daellu commented 8 years ago

Har tittet på det, og det ser ut til at jeg får det til å virke. Takk :)