Coder Social home page Coder Social logo

jones139 / brewmap Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 3.0 2.35 MB

The client and server side code to produce a map of uk breweries based on OpenStreetMap Data (http://wiki.openstreetmap.org/wiki/WikiProject_United_Kingdom_Breweries)

Home Page: http://brewmap.maps3.org.uk

Python 25.33% Shell 1.11% JavaScript 73.56%

brewmap's People

Contributors

jones139 avatar rnorris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

brewmap's Issues

Attribution

<p class="attribution">Map data © OpenStreetMap contributors, CC-BY-SA.</p>

Could be
<p class="attribution"><a href="http://www.openstreetmap.org/copyright">&copy; OpenStreetMap Contributors</a></p>
to clarify tiles are cc-by-sa and data is odbl

JSON data contains keys with null values

Properties that are not defined for a given entity in the data set are being encoded into the JSON files as property=null. It would be better to just drop these, we have to test for existence in the JS client anyway.

Vineyards

I'm not sure landuse=vineyard is an appropriate tag to be tracking. It describes in general what a piece of land is being used for rather than indicating that a producer of wine is there. Additionally, the craft|industrial=winery tags is not being tracked.

An example is Stanlake Park near Twyford which is a winery [1] with attached vineyard [2]. Currently, just the vineyard is showing.

Another example of where this is a problem is the Denbies Wine Estate near Dorking which has 2 separate landuse areas ([3],[4]) both marked landuse=vineyard, which currently appear as two separate entities on the map. See issue #23 for my suggest of how to associate the 2.

[1] http://www.openstreetmap.org/browse/way/137952636
[2] http://www.openstreetmap.org/browse/way/137952641
[3] http://www.openstreetmap.org/browse/way/31864235
[4] http://www.openstreetmap.org/browse/way/31864240

Type in popup incorrect

The brewery type is shown incorrectly in the popup, even thought the correct icon is displayed for they type of facility.

Use geoJSON for data file format

The data files use a made-up json format. We should use geoJSON (http://geojson.org/) for future compatibility with other software.
This is not a particular issue for the BrewMap, but if we use this code for other things that may need linear features or areas rather than just points, a geoJSON compatible format would be sensible. (I am thinking about the uk historic map, which will want to show roman roads etc as linear features.

Make code more Abstract

We should make the code more abstract so that the same piece of code can be used for different maps with minimum changes. This will mean transferring more data, such as text for the web pages into the configuration file. You could then serve multiple maps from one directory by passing the name of the configuration file in the URL.

Web Page Layout Percentage Size

I find the web page layout doesn't use much of my display window.

Wouldn't it be better to set the sizes of stuff in brewmap.css as percentages rather than in fixed pixels.

Improve Scalability of Server Side Code

The current approach of extracting all of the data into a single file is ok for the UK drinks industry, but will not scale well to either more dense points of interest, or a larger area.

The client should be able to request the features for a specific area as the map is panned and zoomed.

There are a few ways this could be done - will start to list them later.....

Cluster icons to de-clutter map.

At low zoom levels the map is very cluttered with icons. If overlapping icons were clustered into a single icon it would be neater. I do not think that Leaflet supports this, so I think we would have to build a Leaflet plugin to do it.

Adding support for relations

In issue #22 I mention the Denbies Wine Estate near Dorking which has 2 separate landuse areas ([1],[2]) both marked landuse=vineyard, which currently appear as two separate entities on the map. The way to resolve this is using relations to associate the ways. I couldn't think of anything more appropriate, so I used a site relation [3].

[1] http://www.openstreetmap.org/browse/way/31864235
[2] http://www.openstreetmap.org/browse/way/31864240
[3] http://www.openstreetmap.org/browse/relation/1858412

Render 'industrial=brewery' rather than 'industry=brewery'

The proposed tagging scheme has changed to be 'industrial=brewery'. Breweries tagged like this are appearing in the tagQueries page rather than on the map.
This is a trivial change to the server code to change the column that is queried, but needs a database import to add the 'industrial' column to the database - job for the weekend of 19 November.

Add layer selector

Add a layer selector so you can switch off (say) microbreweries etc. Probably means re-cycling right hand pane, so will make right hand pane a tab selectable pane for the key, statistics or layer switcher.

Show tagQueries on a Map

It might be useful to see the tagQueries displayed on a map (like the main features) as a selectable layer to help people look for issues in the areas they know about.
Probably implement with a GET parameter (....brewmap.html?tagQueries=yes)?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.