Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Maj 31st, 2013

Klastrowanie krawędzi grafu

Autor: Piotr Karpiuk o 31. maja 2013

Istnieje wiele narzędzi do rysowania grafów. Mało które z nich jednak radzi sobie dobrze w sytuacji, gdy wierzchołków i krawędzi jest naprawdę dużo. Na poniższym przykładzie pokazano połączenia lotnicze między miastami USA.


Podczas Symposium on Visualization w 2009 roku D.Holten i J.Wijk zaprezentowali metodę automatycznego klastrowania krawędzi, w której krawędzie modelowane są jako elastyczne sprężynki mogące się przyciągać. Technika została opisana w 8-stronicowym dokumencie Force-Directed Edge Bundling for Graph Visualization, a rezultaty działania algorytmu możemy zobaczyć poniżej:

Napisany w datavis, Uncategorized | Brak komentarzy »

GeoJSON

Autor: Piotr Karpiuk o 31. maja 2013

GeoJSON to nieskomplikowany, acz użyteczny i elastyczny format wymiany danych geoprzestrzennych oparty na formacie JSON, używany w oprogramowaniu typu GIS, a także w bibliotekach OpenLayers, Mapnik, aplikacjach typu Bing Maps, i produktach Google.

Plik GeoJSON może zawierać geometrię (ang. geometry), obiekt (ang. feature), lub listę obiektów.

Geometria to punkt (Point), zbiór punktów (MultiPoint), łamana (LineString), zbiór łamanych (MultiLineString), wielokąt (Polygon – może mieć dziury) lub zbiór wielokątów (MultiPolygon), jak również lista geometrii (GeometryCollection).

Przykład:

    {
      "type": "LineString",
      "coordinates": [
        [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
      ]
    }

Z kolei obiekt powstaje w wyniku nadania geometrii jakiegoś unikalnego identyfikatora i zbioru dowolnych etykietek:

    {
      "type": "Feature",
      "id": "OpenLayers.Feature.Vector_314",
      "properties": {
        "kind": "POI",
        "name": "Banacha Hospital"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [ 97.03125, 39.7265625 ]
      }
    }

Lista obiektów:

    {
      "type": "FeatureCollection",
      "features": [
        { "type": "Feature", ... },
        { "type": "Feature", ... },
        ...
      ]
    }

Napisany w Uncategorized | Brak komentarzy »