tjasz / geotab Goto Github PK
View Code? Open in Web Editor NEWView, interact with, and edit geographical/tabular data.
View, interact with, and edit geographical/tabular data.
While context.filter
is reset when data is imported or a drive file is opened, the draft in the Data tab is not. This can lead to an invalid state where the filter may have different field names (from a previously open file) than the currently open file. Via either resetting or validating, come up with a solution to avoid these issues, which can cause crashes.
The large app context and recently added listeners should be replaced with a store using Redux Toolkit for react. This will limit re-renders by only triggering them on appropriate actions instead of any update to any part of the context.
Using standard industry tools is good.
To de-clutter the user view, there should be an option to filter the table rows to show only those that are visible in the currently map bounds independently of how the Filter is defined.
GeoCSV had this, for reference.
When the window height is small, such as on some mobile devices, the App-header and App-footer become too small to adequately show their contents. Use CSS to make the heights either constant or adaptive based on contents.
For some data, users want to know where they are relative to it. Add a leaflet map Control that puts a marker on the map to show the user location.
Often, users want to add multiple breaks at once. Keep the + and - buttons in the same location while adding new breaks in order to make this possible. Moving them to the bottom doesn't make for a good experience.
Right now, each style in the CSS has a hard-coded color literal. This is prone to error. We need a consistent color scheme, and maybe the option for theming (dark mode?). Use variables.
Right now, users can import geoJSON, CSV, GPX, and FIT files. However, nothing in the UI makes this clear. Make this clear.
Some of the parameters of filter functions have the same name ("value" occurs a lot). Others have different names ("prefix", "suffix" are two other examples). When a function is changed, the parameter text field in the form either maintains its value (if the parameter names are the same) or resets it (if they are different). This can be good when the parameter is semantically very different. However, when it is semantically similar (such as for prefix and suffix), it might not be. Consider more name sharing among filter function parameters.
The add new column action is only available as an option on the column context menu. If there are no columns yet, this won't show. It needs to be possible to add new columns even when none are yet defined.
While one of the primary differentiators for geotab is its ability to define the symbology of map features by sets of rules based on multiple feature properties, it is also useful to export the calculated symbology to other systems in a way that they understand. The calculated symbology should be included during export (when exporting to non-geotab formats). The export options need to include the symbology format (or maybe it's part of the file format).
For example, caltopo appears to use SimpleStyle, where a handful of style properties are included in the GeoJSON features' properties. It may be slightly different though, as its not made explicit. Export several examples of points, lines, and polygons with various styles to be sure.
GeoJSON+CSS has a style attribute in the feature objects.
GPX also has extensions for symbology.
KML also defines display properties.
Add "zoom to fit feature" buttons on feature context menus and a "zoom to fit features" button. This would replace the current behavior of automatically zooming to fit features any time the context is updated. This would also replace the current behavior of setting the "active" feature and zooming to it when a table row is clicked.
Presently, the slider "breaks" for symbology can only be on a linear scale. There should also be an option to use percentiles. Ex: color the top ten percentile of peaks by prominence red. Or, color the peaks on a gradient from red to blue on a percentile scale rather than linear.
Offer offline capability for non-server facing features by creating a progressive web app.
If you sort a table, future sort actions will have no effect until you close and reopen the table tab.
The selection status of rows should not persist between file saves. Remove the column "geotab:selectionStatus" or set them all to "inactive" when saving and exporting files.
Allow table row clicks to set the geotab:SelectionStatus between "active" and "inactive" and table row hovering to toggle the "hover" prefix of the selection status. This is analogous to how map features affect the selection status. This would replace the current behavior of table row clicks of setting an "active" item and zooming to it.
When symbology is updated, the markers don't change until the map view is closed and reopened. GeoCSV accomplished this by saving a reference to the row's marker and changing the SVG in place.
If a symbology is defined on geotab:selectionStatus and both the map and table are open, selection status changes on only the top several rows will affect the display of map features. The others require closing and reopening the map to update.
Add a variable to the context to remember the selected map layer(s) when the map tab is closed. Right now, it constantly resets to default each time the map tab is reopened.
Add a section to the geotabMetadata GeoJSON extension to describe the selected layer(s).
Convert remaining JavaScript files to TypeScript, resolve errors/suggestions, turn tsconfig.json: noImplicitAny back to True.
In addition to string, number, and date: enumerations should be a supported column type. In particular, this would allow the text fields in Filter and Symbology definitions to be replaced with dropdowns.
This is especially useful for geotab:selectionStatus, where the possible values are a limited set, but defined by the system rather than the user.
A slightly less useful alternative is to not have a separate enum type, but support dropdowns with an "other" option for text fields that have few values.
Exception about undefined value interferes with next line; doesn't save after first column either, but that part is invisible to users.
If you change symbology, when you hover over a line or polygon feature, it will revert to its old symbology. After you close and reopen the map, the correct symbology will be present even on hover.
The export options should support multiple file types, so that exported data can be opened in various systems (caltopo, watches, etc.). Warn users of the various levels of loss involved with each.
When users click on the map, only the top feature under the mouse receives the event (shows the popup, highlights the related table row). It should be possible to show the information for all features under the mouse in the popup, and highlight all related table rows.
It is often useful to know if a path is loop, lollipop, out-and-back or one-way. Add a computed function that describes how much redundancy a path has.
Example idea: arithmetic mean(for all points a, the min(euclidian_dist(a,b)/dist_along_path(a,b) for all other points b))
This should be 0 for out-and-back, 1 for a perfect collinear one-way, and somewhere in the middle for loops with lower values for lollipops.
To give equal weight to all real points on the path, this would have to un-optimize paths. You can't just compute based on the path points that are in the file. Must look at every point along X distance intervals.
By default, they are creating a taller container, messing up the height of the whole page. Instead, the tabs should get smaller up to a certain limit.
Google is retiring the legacy sign-in web solution on 31 Mar 2023.
https://developers.googleblog.com/2021/07/launching-our-new-google-identity-services-apis.html
Use an almost-as-flexible, but more secure method of representing calculated fields that doesn't rely on javascript's Function constructor. This is a security risk, especially if calculated fields are to be stored in files.
The width of the Data, Map, Table, and Symbology panes is currently equal. However, Data and Symbology don't often require as much space as Map and Table. Allowing users to adjust the boundaries between panes by dragging would be helpful.
Similar to the File Button, the User Button should have a context menu (Sign In, Sign Out, Info). It should also perform the action when only one option is enabled.
If the symbology can be summed up in a way that looks good as a Leaflet map Control, add a map key.
As part of the edit capabilities planned for the future, it needs to be possible to delete features.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.