Coder Social home page Coder Social logo

paperwalking's Introduction

Paperwalking is the codebase behind http://walking-papers.org.
Copyright (C) 2009-2010, Michal Migurski <[email protected]>

See INSTALL for a guide to installing Paperwalking.

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301 USA.

There are two main components here.

1. Site

The user-facing website is written in PHP and MySQL, and has been developed
to work adequately well in a commodity shared hosting environment, such as
the Pair.com "webmaster" account I use to host Walking Papers.

2. Decoder

The ugly math bits are done in an offline process that consumes a queue
of freshly-scanned images from the main site, runs them through the
image-recognition algorithm, and posts back georectified image tiles
for editing. You can run a bunch of these in parallel to make jobs go
faster, and they should be perfectly fine on small EC2 instances or
a box plugged into plain old residential DSL.

It's worth mentioning that the image recognition part of the work relies
on a patented algorithm called SIFT:
    http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

paperwalking's People

Contributors

migurski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

paperwalking's Issues

Using UTM projection

From talk-de (I have the contact email address):

Currently, Walking-Papers seems to use "Spherical Mercator" (the one
OSM, Google and the others use).

For regional topographical survey, it's better to use the UTM
projection instead. That would it make possible to do accurate
measurements of real world in meters and draw accurate angles
and values on paper.

The scanned images could be reprojected using GDAL-utilies to
Spherical Mercator.

I could give you technical support on this, since I've created
my paper maps that way before Walking-Papers appeared :-)

Chart labels not translated

The zeitgeist page generates graphics using the google chart api. Strings for use in the legend are passed directly in the URL and are currently not translated.

Low priority, but non-translated strings are still a visual jolt on a localized site. Related to #40.

RSS-Feed for uploads in specific areas

The ability to create a RSS-Feed for a specific area, that notifies me about new uploaded scans for this area. This would allow me to quickly recognize these scans and trace them.

More up-to-date map (download and render on request)

When creating a print-out, it would be good if the map could be more up-to-date. Perhaps if on creating the scan, the site could query the API to re-download that area from OSM and re-render it on the fly. Since walking papers is usually used only for small areas at only 1 zoom level, the load should be minimal. I assumed that this is what the 'Redo' button would do but it still gives a map which is about a week old.

Default site language based on geolocation of IP address

In order to ease the cost of entry, could the default language for the site on first visit be set based on the geolocation of the IP address? Country level encoding shouldn't be too hard, and users are already quite used to this behavior from sites like google and hotmail. If a translation exists for the primary language of a country, why not show it by default?

Similar to issue #29.

"Queued for processing" takes forever

I've uploaded an image, scanned with ADF at 600 DPI, uploaded it at this size, but it's stuck on "Queued for processing". After some days I reupload it at half resolution ... this was yesterday ... still stuck in Queue.

Scan tv2skx34

"Redo map" feature broken

While trying to translate the bit on the print page that offers this: "Is this map wrong, or out of date ?", I discovered the feature doesn't seem to be working at all. It just throws this error:

Give us a meaningful paper, not ""

Localization

Hello Michal!

Brilliant product you got there!

I am with the dutch stichting OpenGeo, doing a lot for the dutch openstreetmap community. We want to bring openstreetmap to the classroom and to me your product sounds excellent!

For this I am already starting to localize the tpl files. I also have a good function for you that checks a browser for the language and switches to internal language files based upon that language:

function localize($s) {
global $LANG;
global $messages;

if (isset($messages[$s])) {
    return $messages[$s];
} else {
    return $s;
}

}

function i18n($s) {
$LANG = $_SESSION['LANG'];
if (!isset($LANG) OR !isset($_SESSION['LANG'])) {
$LANG = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$LANG = split("-",$LANG[0]);
$LANG = $LANG[0];
if ($LANG == "") {
$LANG = "en";
}
}
global $messages;
//if the language file does not exist, default to english
if (include_once 'i18n/'.$LANG.'.php'){
$_SESSION['LANG']=$LANG;
} else {
$LANG='en';
$_SESSION['LANG']=$LANG;
}
}

perhaps it is of some use.

I would like to know if I can help by localizing and if you have any particular ideas about how it should be done. Please let me know!

Bug: Temporary Error

Got error "A temporary error has occured, please stand by. We will try to process your scan again shortly" while uploading scan (id: swbbc3fp) for print id 57dt3p2k. It's a valid jpg file.
Since 15 minutes the processing fails at step 4 (Finding needles) and starts from the beginning.

Support links to prepopulated print forms

Like this:
"making it possible to link your users to a given place but still
giving them the option to decide whether it's right or not. Do any of
these ideas sound right?"

See "Walkingpapers: Direct Link" in email.

Support multi-page prints for larger areas, parties.

"It is likely, that people want to print more than one map-sheet. Doing this would be easier if your service would allow "jumping" to the sheet on the right side (or below) the current one. Maybe with a 5% overlap."

Digital camera support

extend search area for qrcode.Test minimum resolution required, and work on parallax problems.

Increase resolution for scans

Every scan I download is limited by 900 pixels. Such small images are unusable - I cannot read annotations drawn by users. Please, make it possible to get really large (as filename says) scans.

Untranslated error message strings

Sometimes when things got WRONG is when people most need a good error message in their own language. I ran across the die_with_code() function while looking for strings to translate. Some of them are to do with the server environment which probably doesn't matter much, but there seem to be a few user facing errors that can be generated. There is no clear way to translate these yet.

Leave optional white space on prints for note-taking

"Additional layout options are also a definite possibility. They could take a form of some simple options: print whole-sheet, two-thirds-sheet, half-sheet, that sort of thing. I guess the language here might be something like 'leave room for written notes'."

pdf should be localized too

I recieved word from rullzer that the pdf output is not localized. Could you please provide some instructions?

Provide different renderings

"The standard rendering is fine, but others (like noname or Osmarender) would be very nice indeed. Especially as the rendering of squares (at least in my home town) doesn't seem to work: 49°56'40"N, 11°34'21"E at zoom level 17. (search for "Bayreuth" and go to the centre of the town. Where al the little alleys end in nowhere)"

machine extraction of notes

Machine extraction of singlenums, or stickers, and provide API to query location. Another SMS based app could use this API to associate SMS messages with locations.

"nice" strings not translated

The various "nice_" functions in lib/output.php are hard coded with English output. This makes the various translations of the site awkwardly chopping with bits of English thrown in.

There is no clear structure there for how these phrases should be translated.

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.