enzet / map-machine Goto Github PK
View Code? Open in Web Editor NEWPython renderer for OpenStreetMap with custom icons intended to display as many map features as possible
License: MIT License
Python renderer for OpenStreetMap with custom icons intended to display as many map features as possible
License: MIT License
See direction key and direction visualization.
tourism=artwork
,amenity=community_centre
,amenity=library
,tourism=museum
,amenity=theatre
,amenity=cinema
,amenity=nightclub
,amenity=arts_centre
,tourism=gallery
,amenity=internet_cafe
,amenity=casino
,amenity=public_bookcase
,leisure=amusement_arcade
.Hello, this is a really exciting project to see! I'm curious if you're thinking of showing details along roads, such as number of lanes, dedicated cycle/transit space, parking, turn lanes, and such. If so, I may be able to help a bit -- I work on A/B Street and have been struggling for a while to render OSM roads in high detail. A quick demo:
Possible ways to collaborate:
Thanks, and keep up the awesome work with this renderer!
To allow easy upload to PyPI and installation without cloning repository.
Icon grid seems to have duplicates in non deterministic way.
tourism
=information
+ information
=guidepost
,tourism
=information
+ information
=board
,tourism
=information
+ information
=map
,tourism
=information
+ information
=tactile_map
,tourism
=information
+ information
=office
,tourism
=information
,tourism
=information
+ information
=terminal
,tourism
=information
+ information
=audioguide
,tourism
=viewpoint
,tourism
=hotel
,tourism
=guest_house
,tourism
=hostel
,tourism
=chalet
,tourism
=motel
,tourism
=apartment
,tourism
=alpine_hut
,tourism
=wilderness_hut
.Interesting work! :)
What's the license of these icons?
Order should be: (latitude, longitude), instead of (longitude, latitude).
Looks like JSON should work faster.
Relations are not processed yet.
Some icons now are under ways.
Icon outlines are now drawn for each shape separately. Overlapping part are therefore visible if outlines are partially transparent. Transparency parameter should be applied to the SVG <g>
tag that wraps icon shapes.
Get rid of the special XML parser, try to find a faster one.
The current algorithm is pretty good but slow. We should support other algorithms to customize quality and speed.
amenity
=place_of_worship
+ religion
=christian
,amenity
=place_of_worship
+ religion
=jewish
,amenity
=place_of_worship
+ religion
=muslim
,amenity
=place_of_worship
+ religion
=taoist
,amenity
=place_of_worship
+ religion
=hindu
,amenity
=place_of_worship
+ religion
=buddhist
,amenity
=place_of_worship
+ religion
=shinto
,amenity
=place_of_worship
+ religion
=sikh
,amenity
=place_of_worship
.Simple 3D buildings generation fails to draw walls and roofs correctly.
Remove current SVG file, use svgwrite library instead.
For some local features such as Japanese map symbols or local logos for metro systems.
It will be great to have the opportunity to use Roentgen as a library for other projects such as web-viewers, etc.
So it should have a high-level API, not only the "main" function that does all the stuff.
There are two modes, time
and user-coloring
, to visualize creation time of elements and element authors.
amenity
=marketplace
,shop
=convenience
,shop
=supermarket
,shop
=clothes
, shop
=fashion
,shop
=hairdresser
,shop
=bakery
,shop
=car_repair
,shop
=doityourself
, shop
=hardware
,shop
=car
,shop
=kiosk
, shop
=newsagent
,shop
=beauty
,amenity
=car_wash
,shop
=butcher
,shop
=alcohol
, shop
=wine
,shop
=furniture
,shop
=florist
,shop
=mobile_phone
,shop
=electronics
,shop
=shoes
,shop
=car_parts
,shop
=greengrocer
, shop
=farm
,shop
=laundry
, shop
=dry_cleaning
,shop
=optician
,shop
=jewelry
, shop
=jewellery
,shop
=books
,shop
=gift
,shop
=department_store
,shop
=bicycle
,shop
=confectionery
, shop
=chocolate
, shop
=pastry
,shop
=variety_store
,shop
=travel_agency
,shop
=sports
,shop
=chemist
,shop
=computer
,shop
=stationery
,shop
=pet
,shop
=beverages
,shop
=cosmetics
, shop
=perfumery
,shop
=tyres
,shop
=motorcycle
,shop
=garden_centre
,shop
=copyshop
,shop
=toys
,shop
=deli
,shop
=tobacco
,shop
=seafood
,shop
=interior_decoration
,shop
=ticket
,shop
=photo
,shop
=trade
, shop
=wholesale
,shop
=outdoor
,shop
=houseware
,shop
=art
,shop
=paint
,shop
=fabric
,shop
=bookmaker
,shop
=second_hand
,shop
=charity
,shop
=bed
,shop
=medical_supply
,shop
=hifi
,shop
=music
,shop
=coffee
,shop
=musical_instrument
,shop
=tea
,shop
=video
,shop
=bag
,shop
=carpet
,shop
=video_games
,amenity
=vehicle_inspection
,shop
=dairy
,shop
=*
,amenity
=driving_school
,office
=*
,amenity
=nursing_home
, amenity
=childcare
.CC @grotrek.
amenity=toilets
,amenity=recycling
,amenity=waste_basket
,amenity=waste_disposal
,amenity=vending_machine
+ vending=excrement_bags
.amenity=restaurant
,amenity=food_court
,amenity=cafe
,amenity=fast_food
,amenity=bar
,amenity=pub
,amenity=ice_cream
,amenity=biergarten
,leisure=outdoor_seating
.leisure=playground
,leisure=fitness_centre
,leisure=fitness_station
,leisure=golf_course
,leisure=water_park
,leisure=swimming_area
,leisure=sports_centre
+ sport=swimming
,shop=massage
,leisure=sauna
,amenity=public_bath
,leisure=miniature_golf
,leisure=beach_resort
,leisure=fishing
,leisure=bowling_alley
,leisure=dog_park
.amenity=bench
,amenity=shelter
,amenity=drinking_water
,tourism=picnic_site
,amenity=fountain
,tourism=camp_site
,leisure=picnic_table
,tourism=caravan_site
,amenity=bbq
,amenity=shower
,leisure=firepit
,leisure=bird_hide
.Icons and labels should not overlap each other. We need fast algorithm for
that.
Add icons for nodes with tags power=tower
+ design=portal
(design=portal_two-level
, design=portal_three-level
), and power=portal
.
Support reading OSM data from multiple files into one data set.
Sometimes two identical shapes are used as extra icons for a point. E.g. for highway=bus_stop
, public_transport=platform
, bus=yes
will draw two bus extra icons (for the first and the third tag). Obviously, it's redundant.
Make inner paths clockwise and outer paths counterclockwise.
historic
=memorial
,historic
=archaeological_site
,historic
=wayside_shrine
,historic
=monument
,historic
=castle
,historic
=memorial
+ memorial
=plaque
,historic
=memorial
+ memorial
=statue
,tourism
=artwork
+ artwork_type
=statue
,historic
=memorial
+ memorial
=stone
,historic
=castle
+ castle_type
=palace
,historic
=castle
+ castle_type
=stately
,historic
=castle
+ castle_type
=defensive
,historic
=castle
+ castle_type
=fortress
,historic
=castle
+ castle_type
=castrum
,historic
=castle
+ castle_type
=shiro
,historic
=castle
+ castle_type
=kremlin
,historic
=fort
,historic
=memorial
+ memorial
=bust
,tourism
=artwork
+ artwork_type
=bust
,historic
=city_gate
,historic
=castle
+ castle_type
=manor
,man_made
=obelisk
.Generate a separate SVG file for each icon and icon combination.
Dash in argument value can be escaped with space.
See roof:shape values:
Icons should have names that describe what is depicted and not what it means. E.g. the waving flag icon is used for an embassy, but should have waving_flag
ID, not embassy
ID.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.