Wpis z mikrobloga

#programowanie #javascript #gis

Mirki, napotkałem dziwny problem. Tworzę interaktywną mapę na Leaflecie z zewnętrznymi plikami *.geojson. Lekkie warstwy typu linie, punkty itp. wczytują się bez problemu. Gorzej jest z warstwą poligonową - budynki. Oryginalnie waży 4mb i gdy ją wrzucam nie wczytuje się a konsola pokazuje błąd w leaflet.js

Uncaught TypeError: Cannot read property 'length' of null
Gdy wywaliłem z warstwy ponad połowę obiektów i waży 1,6mb wtedy wczytuje się bez problemu.
Demo z okrojoną warstwą budynki: http://mapaswidnicy.esy.es/mapa/yo.php

To jakiś timeout i przy za długim wczytywaniu wywala błąd czy co?
  • 12
@fredperry: skoro wiesz ze sa niemal identyczne to znaczy ze maja jakis szablon. Znajdz ten wiersz ktory nie pasuje do szablonu. Przykladowo usun wszystkie znaki poza klamrami, nawiasami, dwukropkami. Usun wszystkie stringi i zobacz co ci zostanie. Zachowaj do tego linijki zebys wiedzial ktora bedzie wygladac blednie. Po prostu zostana ci puste obiekty JSON + dodatkowy znak.

Jesli bedziesz usuwac to przez wyrazenia regularne to gdzies albo zostanie string albo zabraknie
@karer: Ma to sens, ale w tym przypadku nie wiem czy byłoby to wykonalne. Przykładowy wiersz w moim jsonie wygląda tak:

{ "type": "Feature", "properties": { "Id": 0, "Zabytek": 0, "Data": 6, "Szczegol": null, "sm": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.4790321, 50.8386209 ], [ 16.479058, 50.8386374 ], [ 16.4790656, 50.8386423 ], [ 16.4790506, 50.838652 ], [ 16.4789894, 50.8386918 ], [ 16.4789509, 50.8387169 ], [ 16.4789173, 50.8386963
@fredperry: gdzies ostatnio widzialem asynchroniczny parser json ktorego demo elegancko pokazywalo w ktorym miejscu jest blad jesli na taki natrafilo. Niestety jestem na telefonie i teraz nie znajde ale to powinno naprowadzic na trop :)
@karer: Tak też zrobiłem. Niedaleko końca pliku znalazłem "coordinates: null" bez współrzędnych, ktory powodował błąd.
@M4rcinS: Interaktywna mapa, najpierw chcę zrobić mapę wieku budynków, potem stopniowo dodać jakieś dodatkowe funkcjonalności. Mam pomysły na dwie aplikacje z zakresu geoinformatyki i tak zaczynam się powoli w to bawić ;)
@macrusher: Sprawdzałem jakiś parser i pokazał, że z punktu widzenia składni wszystko jest ok. Problem tkwił w błędnym atrybucie, ktory gryzł się
@macrusher: Błąd powstał już w QGis, gdzie przypadkowo musiałem nowy obiekt bez reprezentacji graficznej, stąd brak współrzędnych wierzchołków. Problem w tym, że żaden debugger ani nic nie wykazywał błędów w jsonie więc nawet nie wiedziałem, w którym z 11k wierszy szukać :) No i problem z tym, że jestem początkujący i połowy rzeczy jeszcze nie umiem/nie rozumiem :) W każdym razie dzięki za pomoc.