GithubHelp home page GithubHelp logo

adammertel / historical-geocoding-assistant Goto Github PK

View Code? Open in Web Editor NEW
9.0 4.0 2.0 27.06 MB

A web-based application to assist in geocoding of (mainly historical) datasets.

Home Page: http://dissinet.cz/apps/hga

License: MIT License

JavaScript 79.71% HTML 6.16% Sass 8.94% SCSS 5.03% Shell 0.16%
geocoding historical-research historical-data spatial-humanities

historical-geocoding-assistant's Introduction

Historical Geocoding Assistant

Historical Geocoding Assistant Logo

Description

The “Historical Geocoding Assistant” is an open-sourced browser-based application for assigning geographic coordinates in a more convenient and faster way than copy-pasting them from services such as Google Maps. The application was designed with historical projects in mind but is suitable for any geocoding work

Citation

To cite the software: Adam Mertel, David Zbíral, Zdeněk Stachoň, and Hana Hořínková, ‘Historical Geocoding Assistant’, SoftwareX 14 (2021): 100682, https://doi.org/10.1016/j.softx.2021.100682.

Essential Features

  • works online with a live Google Spreadsheets table;
  • gathers suggestions of coordinates from gazetteers for instant use (GeoNames, Wikipedia, Getty Thesaurus of Geographic Names, Pleiades, and China Historical GIS);
  • integrates search services (Google Maps, Google Search, Peripleo);
  • supports multiple base layers (OpenStreetMap, satellite images, Imperium, etc.);
  • supports multiple overlay layers;
  • allows setting relevant spatial extent;
  • allows spatial uncertainty levels.

Future Development

  • integration of additional gazetteers and other relevant services (World-Historical Gazetteer)
  • possibility to load a custom map service directly from the GUI
  • further improvement of the algorithm to rank and sort geocode suggestions
  • management of the custom parametrization of gazetteer calls
  • integration of line and polygon topologies
  • user management

Testing version

Try it here

Manual

manual

Screenshot

alt text

historical-geocoding-assistant's People

Contributors

adammertel avatar dependabot[bot] avatar pondrejk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

historical-geocoding-assistant's Issues

"Show on map" button and auto zooming

when I manually focus the map as I want and click on Show on map at a record, the map zooms out/in even if I unchecked “focus map on record change”. But sometimes, I spend quite some energy finding the right zoom to find the important orientation points, and this work has to be redone. // To consider – sometimes it is useful. Perhaps optionalizing this?

Better search results needed

Now the search of locations in the left button panel performs poorly, e.g. it does not yield any results for "via Pattari" or "Milano via Pattari", while Mapy.cz and Google Maps do.

Add French "communes" as overlay layer

Postponed from v. 1.4 to a later version. As the file could be too large to load within HGA web app, alternative solution is needed which would not slow the app down.

Wikipedia checkbox

I sometimes cannot uncheck the checkbox Wikipedia if I don’t want the suggestions from Wiki to be displayed.

Manual deletion of coordinates

Manual deletion of coordinates: When I manually delete coordinates and save, I want the coordinates to be deleted. Instead, they are automatically restored to the previous version (even if I don’t use Restore but Save button with the fields emptied).

Testing website security: Google permissions, cookies and HTTPS

First of all, thank you so much for this amazing tool. I only discovered it today and am absolutely stunned by your great work. However, when I tweeted about it, there was immediate concern about the security of the testing website (see reactions to tweet).

For users wanting to test the tool it would be great if you could clarify/fix the following points on the testing website:

  • Force HTTPS for all website visitors
  • Properly name and approve the Google API OAuth application which is asking for permission to users' accounts (it is currently un-approved by Google and shows a warning to users)
  • Clarify what Google account permissions will be requested and why
  • Explain why Google cookies are mandatory for the use of the tool

Identification of columns

  • There is a critical bug in the too inclusive search for the identification of place name column. At some point, it included localisation precision or localisation certainty instead of the correct column. => please exclude column which contains words “precision” and “certainty” from automated search of the place name column, whatever else “tempting” text they might contain (e.g., “localisation”) they might contain. // Yes, the precision column is a problem. There, the identification should be less extensive, more restrictive: only what contains “precision”, “certainty” or so (any other keywords distinctive enough?).
  • Perhaps include “settlement” (without further text, just like that) into the search for the place name column.
  • I’d perhaps like to look in the code in the order in which you identify the columns; sometimes it seems to me not inclusive enough while at other times, too inclusive.

User-defined instead of pre-defined categories of localisation certainty

In version 1.4.0, there are four pre-defined categories of localisation certainty. A regular user (non-programmer) cannot change them. A next version should allow their customization since in some projects, more categories (or differently named categories) are useful.
Possible solutions: either handle this as free text (with suggesting values used so-far in the table), or include this in a broader Settings screen (with user login).

Moving columns in the GSheets table when it is loaded in HGA leads to messing columns up

When the user loads the dataset in HGA, then reorganizes columns of the original table by moving them on Google Sheets, and then saves something from HGA, HGA critically messes up the columns - saves things in bad columns - the coordinates in non-coordinates columns, and the content of these columns in still other columns. It happens not only in the currently loaded row but also in others that were changed through HGA.

Columns: set header row

In some datasets, the header row is not the first one. In Settings, allow choosing the header row by its number, as well as setting further "ignore" rows.

Add French "départements" as overlay layer

For better orientation and because some settlement homonymy could be solved by seing the départements, adding départements - in the same way as cantons are already there - should be considered.
Optionally - but not if it should delay the solution - the issue of colors can be considered: it could be useful to have cantons as overlay in different color than départements, otherwise the département borders will get lost in the many canton borders.

Editing conflict not reported and input overwritten when editing a row from GSheets and HGA at the same time

when geocoding Vauré here, I changed the note in GSheets and then the coordinates in HGA and saved; this overwrote my new note. But probably nothing can be done against this because HGA does not reload before saving. So I think in the end that it is not a real bug, just something frustrating but not critical – you do it once or twice and then you become careful to edit also the note through HGA.

Pre-parsing of location name string to get better match

Now there is no preparsing probably. But already white spaces and especially punctuation suggest some structure. E.g. in "Milano, corso Vittorio Emmanuele II", the comma means that it is two levels, and there, the app should guess the best match, i.e. e more smart than to stubbornly pass the whole string to gazetteers - which yields few results, thus reducing the usefulness of the application.

loading google spreadsheet cannot finish

succeeded in compiling the project with npm using google api key and client id.
http://159.65.237.160/hist_map/
however, when trying to launch by entering the URL to a google spreadsheet, the application simply says "loading the google sheet" and does not get any farther.
I got the identical result with the "Try it here" version: http://dissinet.cz/apps/hga/
Note: my google spreadsheet is set to share "private only to me" (the default). I can't think of a user or group to share it with that would make any difference. the OATH google client ID is set to web application open to anyone. thanks in advance if you can provide guidance. looks like a great app.

Wrong google sheet id causes loop

If there is a problem with the google sheet id, there is a loop – if I press “ok”, the error message gets displayed again, and again… instead of stopping the procedure.

Reset example Google Sheet to defaults each midnight

To remove errors and vandalization introduced by users, malfunction introduced by more brutal edits, and keep the dataset useful for demo purposes. Perhaps a script resetting it to a particular version in version history?

Interoperability: store place ID from gazetteers when using their coordinates

When a user clicks on using coordinates from the gazetteer, also their ID should be stored in a dedicated column (important for interoperability). Of course, this has entails at least the following issues:

  • new dedicated columns and what to do if they are not set (probably optional: if not set, the ID will not be stored);
  • if the HGA discovers upon record save that coordinate is different from the selected suggestion identified by the ID, HGA should display an error message (because it means that the user has taken a coordinate pair at first but then edited it either textually or by clicking somewhere else).

It means, however, that if the user moves the gazetteer suggestion to different coordinates, either upon creation or later, it is not the ID any more - i.e. there is thus the issue of prompting the user to remove that ID (or rather, the app asking the user whether it can remove this link, i.e. gazetteer identification and ID in that gazetteer). So it is more complex than it seems...

But quite useful. This would be considered good practice in DH.

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.