Git Product home page Git Product logo

origo's Introduction

License Build Status

Origo

An easy to configure framework for creating your own web mapping applications.

What is Origo?

Origo is a web mapping framework. It is based on the OpenLayers library. You can use Origo to create your own desktop-like web mapping applications. The project is run and maintained by a number of Swedish municipalities.

Features

  • Responsive design
  • Multiple modules available (among others: an editing interface, geopositioning and map sharing)
  • Ability to read data from multiple different types of sources
  • Very light footprint

How to get started

Download the latest release and check out the documentation. Below you will find some live examples and how to get started devoloping with Origo.

Documentation

Learn more how to use Origo with the documentation.

Want to contribute?

We happily accept contributions of any kind. Guidelines are available in the CONTRIBUTING.md and DEVELOPING.md files.

Thank you for considering contributing to Origo.

Found an issue?

For all bugs and feature requests please use "Issues". Have a look at CONTRIBUTING.md for some tips on how to write issues.

Live examples

Not convinced? Or maybe you need some inspiration? Check out these examples of web maps that have been developed using the Origo framework:

Getting started

So you have decided to take matters into your own hands and get coding? Great!

Just follow these three steps and you will be up and running in no time.

Setting up the development environment

The minimum requirements are:

  • Git
  • Node.js (current lts version or higher is recommended to avoid build problems)
  1. To get your own local copy of Origo use git to clone the repository with the command below:

      git clone https://github.com/origo-map/origo.git
    
  2. To install the required node dependencies run the following command from the root directory of Origo:

       npm install
    
  3. To start webpack-dev-server use:

      npm start
    

The server will be available at http://localhost:9966/. It utilizes LiveReload which means you do not have to refresh the browser page whenever you make a change in your code.

Creating a bundle

Once you are ready to create a minified bundle, you will use:

 npm run build

This will create a build of Origo in the build folder. Note that you will need to change the path to the Origo javascript file in the index.html file, from origo.js to origo.min.js, if you wish to run the map using the bundled version.

To further reduce the bundle size of Origo it's recommended to enable gzip on your web server, as in this example for IIS. This will reduce the file size to approximately a fourth of the original size.

Notes

Guidelines for developing in Origo are available in the DEVELOPING.md file.

Plugins

More information about Origo plugins can be found in the PLUGINS.md file.

Copyright

The project is licensed under the BSD 2-clause license. It is specified in the license file.

Contact

If you want to get in contact with us and other users of Origo then please join our chat on discord using this invitation: origo.map.

On https://origo-map.github.io/archive/ you can take part of our newsletter and read about our meetups.

origo's People

Contributors

afogelberg avatar asemoller avatar bimane1900 avatar dahlalex avatar dalneberg avatar darasmussen avatar dependabot[bot] avatar filleg avatar flodkvist avatar grammostola avatar hallstaelin avatar huggla avatar imantahriri avatar johnniehard avatar johnnyblasta avatar jokd avatar markus659 avatar mattiassp avatar mulfvik avatar pcunvik avatar polleryd avatar sandebert avatar steff-o avatar sweco-sedalh avatar sweco-sefaed avatar sweco-seguro avatar sweco-semvtw avatar tablackmore avatar tonnyandersson avatar zakuto3 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

Watchers

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

origo's Issues

Popup gets locked position

After search the location of the popup window gets locked. The featureinfo popup is placed in the same position as the last search.

Refactor featureinfo

Featureinfo needs to be refactored. The carousel, getAttributes and identify functions should be seperated into modules for better resuse.

Grid background

It would be nice to have something more than a white background, for example a grid.

Option for wmts source to name matrixid

An option to name matrixids is needed, as matrixids for wmts services may be named differently. A wmts service created with GeoWebcache may not name the matrixids in the same manner as wmts from for example Lanmäteriet.

Permalink

There is a need for a more advanced permalink handler as was described in an open Issue in mdk:
malardalskartan/mdk#1

As stated in the above issue it should be possible to share a pin for a marked position.

Rename mdk to origo

All instances of mdk need to be renamed to origo. Should we use the namespace origo? Or should we just use the letter o?

Replace string

It should be possible to replace a given attribute in an url string defined for layer attributes. For example an url defined like this:

url: 'http://my.url.com/query={{attributename}}

would return a proper url:

'http://http://my.url.com/query=someattributevalue'

savedPin not set

savedPin variable is not set. If featureinfoOptions is not set this will throw error if pin is saved

Select geometry for search control

The geometry for search result should be selected.

This will be ashieved by adding options for search control. If idAttribute and layerNameAttribute are given as options, those will be used to make a get feature request after a search result has been selected in the search control. In order for the selection to work, it also required to define layers that will be used for the selection. Layers are defined as usual with attritutes and so on.

Upgrade to ol.317.x

Testing the ol 3.17 version. There is some problem with the zoomInLabel causing ther error:

Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.

Option to choose geometry in search control

There should be an option to use the geometry from hits in the search control. This is required in order to be able to select polygons from search result. If northing and easting is not defined, then the geometry should be used instead.

A suggestion is to only use point or centerpoint coordinates for autocompletion. The coordinates would be used to zoom in och place the overlay but not to select the geometry. The complete geometry should only be requested when object is selected from the autocomplete list.

Option to set footer content

Origo uses a handlebars template to generate the layout. In order to able to set content for the footer, an option is needed for that. For example to have a logo in the middle of the footer.

Disable cluster when zoomed in

When using clustered layers clustering is always turned on. Clustering should be turned off when zoomed in and when features are identifiable. It is now possible to achieve this since a method to set cluster distance has been added to OL and will be available in the next OL release.

getFeature by id

There is a need for a getFeature function that can fetch features by id from a remote source. This can be useful in several cases, for example in order to select a geometry from a search result.

Identify on cluster

It is not possible to identify on a cluster point when zoomed in all the way,

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.