boku-ilen / landscapelab

Geodata-driven Landscape Visualization built with Godot and Geodot
https://landscapelab.boku.ac.at/
Other
39 stars 12 forks source link

Load different textures for different types of buildings #327

Closed MathiasBaumgartinger closed 10 months ago

MathiasBaumgartinger commented 1 year ago

OSM often offers somewhat detailed specifications of buildings which could be used for more diverse rendering of houses/groceries/industrial/...

As of now, the following specifications have been categorized (OSM keys building and amenity):

{   
    "attribute_to_type": { 
        "building": {
            "apartments": "apartments",
            "hotel": "apartments",
            "college": "apartments",
            "government": "apartments",
            "kindergarten": "apartments",
            "university": "apartments",
            "military": "apartments",
            "barracks": "apartments",
            "dormitory": "apartments",
            "museum": "apartments",
            "public": "apartments",

            "bungalow": "house",
            "detached": "house",
            "house": "house",
            "residential": "house",
            "semidetached_house": "house",
            "terrace": "house",
            "civic": "house",
            "pavilion": "house",
            "train_station": "house",
            "gatehouse": "house",

            "cabin": "shack",
            "farm": "shack",
            "tree_house": "shack",
            "stilt_house": "shack",
            "toilets": "shack",
            "barn": "shack",
            "cowshed": "shack",
            "farm_auxiliary": "shack",
            "stable": "shack",
            "sty": "shack",
            "livestock": "shack",
            "hut": "shack",
            "shed": "shack",
            "beach_hut": "shack",

            "commercial": "office",
            "office": "office",
            "school": "office",
            "hospital": "office",

            "supermarket": "supermarket",

            "kiosk": "retail_restaurant",
            "retail": "retail_restaurant",
            "bakehouse": "retail_restaurant",

            "industrial": "industrial",
            "fire_station": "industrial",
            "slurry_tank": "industrial",
            "riding_hall": "industrial",
            "parking": "industrial",
            "digester": "industrial",
            "storage_tank": "industrial",
            "silo": "industrial",
            "bunker": "industrial",
            "container": "industrial",
            "sports_hall": "industrial",
            "hangar": "industrial",
            "garages": "industrial",
            "service": "industrial",
            "warehouse": "industrial",

            "temple": "historic",
            "castle": "historic",
            "ruins": "historic",
            "tower": "historic",

            "cathedral": "religious",
            "chapel": "religious",
            "church": "religious",
            "kingdom_hall": "religious",
            "monastery": "religious",
            "mosque": "religious",
            "religious": "religious",
            "presbytery": "religious",
            "shrine": "religious",
            "synagogue": "religious",

            "transportation": "roof",
            "grandstand": "roof",
            "stadium": "roof",
            "carport": "roof",
            "roof": "roof",

            "conservatory": "greenhouse",
            "greenhouse": "greenhouse",

            "transformer_tower": "concrete",
            "water_tower": "concrete",
            "garage": "concrete",
            "construction": "concrete"
        },
        "amenity": {
            "college": "apartments",
            "kindergarten": "apartments",
            "language_school": "apartments",
            "library": "apartments",
            "toy_library": "apartments",
            "research_institute": "apartments",
            "training": "apartments",
            "music_school": "apartments",
            "university": "apartments",
            "bank": "apartments",
            "theatre": "apartments",
            "courthouse": "apartments",
            "prison": "apartments",
            "townhall": "apartments",
            "public_building": "apartments",

            "dressing_room": "shack",
            "animal_shelter": "shack",

            "fire_station": "industrial",
            "cinema": "industrial",

            "driving_school": "office",
            "school": "office",
            "hospital": "office",

            "bar": "retail_restaurant",
            "biergarten": "retail_restaurant",
            "cafe": "retail_restaurant",
            "fast_food": "retail_restaurant",
            "food_court": "retail_restaurant",
            "ice_cream": "retail_restaurant",
            "pub": "retail_restaurant",
            "restaurant": "retail_restaurant",
            "nightclub": "retail_restaurant",
            "marketplace": "retail_restaurant",

            "car_wash": "roof",
            "shelter": "roof",
            "bus_station": "roof",

            "funeral_hall": "religious",
            "monastery": "religious",

            "planetarium": "concrete",
            "crematorium": "concrete"
        },
        "yet_to_be_decided": {
            "building": [
                "ger",
                "houseboat",
                "static_caravan",
                "bridge",
                "tent"
            ]
        }
    }
}

Each of the value stands for an individual texture. Should none of these categorizations hold true, we shall use a fallback texture.

The values under yet_to_be_decided could possibly deleted out of the dataset to avoid confusion.

MathiasBaumgartinger commented 1 year ago

Tasks:

kb173 commented 10 months ago

Done with #332