Code Monkey home page Code Monkey logo

kompas-core's People

Contributors

jandupal avatar mosra avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

gauravalgo

kompas-core's Issues

Retrieving home directory path on Windows is not working.

The home directory is retrieved using some crazy winapi call, but the call doesn't retrieve anything.

TCHAR h[MAX_PATH];
if(!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, 0, h)))
    return "";

Qt uses for the same thing (QDesktopServices) function SHGetSpecialFolderPath with totally different syntax, but the function is not in defined in shlobj.h (technically is, but some preprocessor black magic hides it).

Timeline support

Some maps provide time-based data, for example weather maps.These maps should expose that to user, so it's possible to view data from different date/time. The map should somehow provide timestamps for which the data are available:

  • All timestamps (bad for lots of timestamps),
  • Range and interval of timestamps (bad for irregular steps)

Examples of timeline-enabled data:

  • Weather maps (limited 15 minutes steps back, forecast every 6 hours)
  • Time-based path (irregular steps...)
  • Planet position (infinitely small steps, infinite range)

Caching plugin interface

Implement an interface for hierarchical caching, either as filesystem cache or network cache.

Hierarchy should be defined with sequence of set() and get() functions, for example:

Child get(Node node);
set(Node node, Child child);

Plugin interfaces which need cached data access implement with these functions their own hierarchy and it should be possible for caching plugin to implement all or only some hierarchies.

  1. Define an interface - 10%
  2. Implement an plugin (in kompas-plugins) - 70%
  3. Make use of caching at least in AbstractRasterModel - 20%

Vector plugin interface

Implement interface for plugins with vector data - unlike raster map plugins vector data are not limited only to maps. Because of that the vector plugin interface should be divided into two parts:

  • Interface for data access - "model"
  • Interface for viewing and managing the data (e.g. in kompas-qt) - "view"

Vector data can be really anything:

  • vector maps
  • points of interest
  • webcams, geotagged images
  • 360° panoramatic view / "street-view"
  • 3D objects
  • paths
  • ...

Data source:

  • from URL
  • from file
  • "direct input" (e.g. URL which has path coordinates encoded in itself)

For one model there can be multiple viewers, for e.g. path there can be direct in-map viewer or widget with elevation, length, time statistics.

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.