Data drill-down library/canvas/tool - visualization

I am looking for some visualisation canvas that would allow easy visualisation of many nodes and edges as well as drill-down and exploration. Closest to what I want was Gephi.

You might take a look at yEd, which is very similar to Gephi. One thing that I prefer in yEd is the multi-pane layout, so you can view the zoomed out graph for overall orienation, the large view at the current zoom level, and a third perspective - a block and arrow diagram of the current node and it's adjacencies.

Related

Two cursors on maps at same time in Mapbox GL-JS

I am developing a weather radar viewer using Mapbox. In a certain mode, there are 2 Mapbox maps on the screen at the same time showing different modes of the radar. The maps are locked to each other. When one map moves, rotates, or pans - the other one does as well. I did this by simply passing the properties of one map to the other. In the below screenshot, you will see how they are showing identical locations.
What I want to do is - when the user is hovering the mouse over "map1", I would like an identical (ghost or false) cursor on "map2". Here is what I am looking to do:
(edit: What you are looking at is an actual screenshot. Each map is enclosed in a DIV with 50% width of the screen, if this helps to explain)
I don't know if this is even possible in Mapbox. Hopefully someone can give some guidance as I can't find any other questions related to this and I really have no code to show without knowing where to start.
If you attempt to do this inside Mapbox-GL-JS (for instance, by constantly updating the location of a GeoJSON feature layer), I think the performance will be pretty poor.
But since the two views are exactly locked (and presumably the exact same dimensions), you can just do this at an HTML/CSS level. Detect mouse movement on the first map, and update the location of an absolutely-positioned element hovering over the second map to match.
Another approach would be using a canvas element overlaid over the second map, similarly updated.

possible to show road-path-smooth items at lower zoom levels

I'd like for my road-path-smooth elements to show at a lower zoom level than they currently are because my application is for the outdoors and these are more important elements. Is that possible? I can't seem to find out how to adjust this in studio.
If you're talking about displaying layers from the Mapbox Streets tileset, then no, it's probably not possible. The vector tiles are optimised for Mapbox's style (also, confusingly, called Mapbox Streets), and don't contain data that isn't already displayed.
Your need is a common one, but unfortunately the only way to solve it is to find a different set of vector tiles that meets your needs, or create one yourself.

Marker versus point feature?

When should one use a marker instead of a feature layer of points in Mapbox?
Points layers can be updated and styled dynamically using all the styling tools of Mapbox GL JS. Features in points layers can also be clicked, presenting a popup just like with a marker.
Given this, when would one want to use a marker?
As Andrew mentioned there are two sides two this:
Accessibility
Markers are implemented as DOM elements and thus can be included in the tab order and can be given accessibility attributes
Animation
As markers are DOM elements animating them is quite easy with a bit of CSS & JS. You can animate points on a circle layer too, but its much more of a hassle.
Small point count
The number of markers/points you can display at once is somewhat limited by what the DOM can manage. My suggestion is that, if you have more than 500 points to display, you should opt for a circle layer instead of markers (this is a very rough estimates and depends on other parameters as well, animation, point size etc.). Using a circle layer you will hit - depending on the hardware - a limit in the 10s of thounds of points.

Finding a tool for displaying a different images for a day

Question: If I need to display a GeoTIF in response to a user picking from a web page, a day and a camera type, could I use LeafletJS, and if so, with what plugin? I store a GeoTIF for each camera type taken on a certain day.
Background: I'm making a web interface that looks at day-by-day images of the same plot of land. For each day you choose, you can see the land image toggled between the same four cameras. Think of the cameras as options, like "show me Monday with camera one" or "show me Monday with camera two", etc. The key here is to pick a day, and then pick the camera image. The camera images are all stored as as GeoTIFs. The GeoTIFs will be tiled as they are quite large, and I'm currently using Leafletjs to display them.
The problem is in the UI. I'm unclear if a library like Leaflet is correct, as I can't find how to build a UI that "links" two options, like a day and a camera, to display tiles that are chose by the intersection of both options.
I've thought of using the day as the basemap, and then they cameras as layers, but again, I'm unclear of the logical way to accomplish this.
It's hard to answer this because it is a architectural question, without any code posted. That said, it sounds like an interesting project! It sounds like you have already solved the problem of displaying the geotiff by first tiling and converting to jpeg or some format the browser can display.
I can envision this working something like:
The Cameras locations are a Markers layer in leaflet
The Mon-Sun data sources are Layers which can be toggled on and off. This should be one layer at a time (would be confusign to have say Mon, Tues, Weds all selected.
Assign a click event to the Camera Markers layer, and in that event callback do some javascript coding to update the currently selected camera Id, and swap in the tile layer for the currently selected camera, into the currently select Mon-Sun layer.
I'm unclear if a library like Leaflet is correct
Leaflet seems like a good choice, you may just need to dig into the api some more.
edit:
as I think about this further, I am uncertain this would work. Are the camera images oblique or orthogonal? A tiling layer in leaflet expects ortho, I think. I noticed there is a plugin which looks like it might be useful
Leaflet.Photo Plugin to show geotagged photos on a Leaflet map. Demo. Bjørn Sandvik
http://leafletjs.com/plugins.html

Implementing network (graph) visualization in iPhone SDK

I am starting a new project in iPhone SDK in order to represent and manipulate graphs (in the sense of networks, not bar/pie/* charts).
I want to be able to interactively add/move/delete nodes and arcs between them, as well as to pan/zoom the whole representation.
As far as I can see, I have two major options:
First option: A single view handles it all.
Second option: Each element (node or arc) has its own associated view.
I think that pros/cons of each option are:
First option makes the drawing easy (you just populate the data structure and draw the Quartz 2D paths). However detection of touches is problematic, since you have to decide if a given touch point hits a node (this is easy, but you have to poll all nodes) or an edge (this is not so easy).
Second option makes it easy to implement the detection and handling of touches. However the drawing part could be problematic, since you have to rotate and resize all your views; even worse, if you drag a node you have to tell all the views (holding an edge incident to the given node) to resize/rotate themselves.
Which of the two options would you recommend me?
Thanks in advance,
Biel