First of all, I'd like to explain what I want to achieve.
Imagine that I own a leaflet drop business. I cover a city, which is divided into 10 sections.
I want to leaflet-drop those 10 sections systematically, and have a heatmap that shows when they were last done (ie, if an area was done just last week, it would show up as green, but if it was done 6 months ago, it would be red.)
However, occasionally, I would do additional leaflet drops within the area, that I wouldn't want to be included in the data above - these would then show up on the heatmap in, say, blue.
I've been looking at OpenLayers, and it seems like it can do what I want - but I'm not really that technical, so need advice. OpenLayers has the ability to select specific areas with a polygon tool, which is exactly what I need - but how can I input this data, which will change frequently?
I currently monitor coverage of the territories with an Excel spreadsheet, but would like this heatmap system in addition to that.
So - any ideas?
Heck, for a tool for you to use yourself, you could use a drawing package like Inkscape. Scan a map of the area, paste that in, draw polygons for the areas you care about, and then every time you do a drop, change the colour of the polygon.
OpenLayers is generally used by software developers to aggregate geospatial/map data from various sources into web applications used by many users. OpenLayers can do what you want but not without writing a fair amount of JavaScript code. You might be looking more for a tool like ESRI's ArcCatalog, although it is probably too powerful for your needs.
I did a quick google search of "best map drawing tools" and found SmartDraw, for example. I have no affiliation with SmartDraw, nor do I know if it's any good, but it seems like this type of software would be more suited to your needs.
For what you say would be more useful a desktop tool as e.g. http://www.qgis.org/ (is open source and free)
Related
I have a point feature class that is survey monuments. I'd like to create a page for each survey monument that would have a a overview map showing where the monument is and a report on the attributes. Ideally I'd like to be able to insert photos that are attached to the feature.
I'm trying to determine what software would be best to do this, and any tricks I need to know. I have access to the following software:
ArcMap
ArcGIS Pro
FME
Geocortex
It seems like this should be a common type of thing to want to do, but I can't seem to figure out how to do it in any software other than using the Geocortex reporting tool. However, these aren't currently in our Geocortex site and it is quite cumbersome to get everything to a point where I can create reports there.
I figured this out. Not sure why I missed it initially. In ArcGIS Pro they are called Map Series and in ArcMap they are data driven maps.
Searching on those will give tonnes of information on how to do them.
Having a DokuWiki with some content (regular to small in sice and depth) I would like to automatically generate a GraphViz or Freeplane or any Form of easy to grasp visualisation of my content.
Why? Because the wiki tends to become less and less effective, when searching and organizing its content. As a user I have no good way to get a sharp Idea of the Wiki structure, which is why more and more often topics are not written and found where they supposed to be.
How to generate graphical sitemap of large website is what I found so far, but because my wiki is not that big, it would be quicker for me to just manually make a graph. And because the main topics are not that often updated or extended (like 10 extension a month tops), it would not be that hard to keed it up to date manually.
However, I would like to avoid manual tasks, at least in the future.
So is there a plugin or any other good way to graph the contents?
starting on the landing page, following the internal-wiki-links
using the namespace-sitemap
Either one would be nice, 1. interest me a bit more, because it reflects the paths a user could go, when just calling the wiki-start-page. I am greatful for any help, thanks.
I wrote a simple tool to do just that, the graph can then be analyzed in Gephi. Have a look at this blogpost: http://www.splitbrain.org/blog/2010-08/02-graphing_dokuwiki_help_needed
My stakeholder would like users to have the ability to compare two PDFs side by side. They aren't content with users having to flick between PDFs (as normal). Instead, they'd like them to be embedded into a web page, next to each other. They would also like a drop-down menu above the second PDF to allow them to change the PDF to another one. I've included an image of this below to give you an idea of what this would look like. I hope you can see it:
I've built a quick and dirty demo of this working (see screenshot above) using iframes and a bit of javascript for the menu. The way this would work is that users would click on a button on a website saying 'compare PDFs' and that would bring up a separate screen in a new window which would contain only the two PDFs and the menu to switch PDFs (as per the image above).
The issue here is that although it's technically possible to achieve, it just seems so crude and wrong! But I need to be able to justify this with logic and reason. Is my instinct right, and if so:
what are the reasons why this approach is not recommended? (e.g. could it be damaging to our reputation if we put something like this on our website?! Why?)
do you have any alternative recommendations?
Or is this a perfectly good solution?!
Many thanks,
Katie
Katie, Your question is "why is this not recommended?"
Because computers are better at comparing data than people are.
This task is potentially tiring, inefficient and inaccurate.
It is essentially a screen-real-estate-management task, and doesn't add value by summarizing, interpreting, transforming, clarifying, innovating or enlightening.
It puts all the work on the shoulders of your users.
It violates the "Don't Make Me Think" principle.
This might be a benchmarking task, and you might not need every line of that data in those PDFs to deliver something innovative and valuable.
I challenge you to talk with your stakeholders and brainstorm innovative ways to combine or summarize the key data. Are these credit reports? Grades? Medical test scores? Phone bills? Legal contracts? There are lots of great patterns that you could use to pluck out a few values and compare them to each other. Think tables, graphs, or charts. Look at what TurboTax does with tax data after you are done filing your taxes -- this is what you paid, now look at what the average person with your income earned, deducted and paid. A simple table, with two columns, You and Everybody Else. What data are they looking at, and what will they learn by comparing the two documents side-by-side?
Summarize, enlighten, clarify, and remove noise. Cut to the heart of what they want to see, and just show them that.
Best to you!
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
i'm trying to desing a new application which allow user see he/her current location on a custom map (office, university compus, etc). but actually i have a couple of question in my mind (i haven't designed this kind of application before). i'm wondering:
How can i draw my own maps, what is the best option for it? there any format that i have to care of, there are any specification about it ?
Once i have my custom map. how can i do to mapping a global position system with the local positions ?
What are the tricks behing zoom on maps ? just differents layers with more or less informations and those layers changes on users demand ?
If a whant to mark some specific points over the map, like a cafeteria, boss's office etc, how can i do that ?
Sorry if my questions are too much generics and dumb, but i really need some clues about this topic because i don't have any idea how to design this kind of application as best as possible. and we don't whant to reinvent the wheel.
I will appreciate any help that you can provide me in order to desing this application
There are a number of approaches you can take to creating a maps application. Which one you use depends on the set of features you want to support, and the degree of control you want to maintain over the product.
If you want something like an embedded google map, then clearly the JavaScript Google Maps API may be best solution. If you need to support further features from the server side, like directions, you can make use of the web services api:
http://code.google.com/apis/maps/documentation/webservices/index.html
If, on the other hand, you essentially need a zoomable map of an area that you can define with markers and borders drawn from your database, and you want complete custom control over this image without having to rely on Google Maps' data or branding, then you can fairly easily build a scalable image either on the client or server, or both.
To start, you will need a set of point coordinates from which to draw your map. These can be derived from the SVG generated by a program like Adobe Illustrator when you draw vector graphics. Thus you could draw your own map in Illustrator and use the generated svg to create your map. In this case you will have to read about SVG and understand how to use it. Raphael.js is an excellent library that offers cross-browser compatible handling of SVG. If your map is of a familiar region, such as a country, you may be able to find SVG coordinates for it already on the web. You could start by grabbing a subset of the data in this file on wikipedia for the country or region you want to map.
Once you have a set of coordinates that define your map areas, you can keep them in a config file that can be read into memory from disk by your application as needed. It's convenient to save this data in the form of a hash, where each set of key-value pairs stores a separate svg 'path', or set of point coordinates that forms a closed shape. These could represent, for instance, the counties in a state.
Once you have the appropriate 'paths' stored in this manner, it is relatively easy to write a wide variety of software implementations.
Check out the imagemagick convert
documentation for the -draw
option for an example of how to
draw a png, jpeg, or gif on your
server from your stored svg paths.
Adam Hooper has some brilliant ideas of what to do with a custom map using SVG on the client side:
http://adamhooper.com/eng/articles/9
Note that you do not necessarily
need to use SVG. Here's an
example of a map drawn on the
server using ImageMagick, with a
highlightable clickmap drawn over it
by the browser, where the
highlighting is handled by the
jquery maphighlight plugin, which
uses the canvas element where it is
supported and VML in its place on
Internet Explorer browsers. All of
these layers (ImageMagick,
client-side click-map, and
client-side javascript highlighting)
are built with straight lines drawn
between point coordinates, so none
of this is actually SVG, and may be
easier to understand. Have a look
at the page source to see how the
click map is drawn, then look at the
maphighlight plugin to understand
what's going on:
http://davidlynch.org/js/maphilight/docs/
A third option, if you need to support more google-maps-like features, but want to add your own map data without using an overlay, is to implement some application of Open Street Maps. If you go to openstreetmap.org, find the area you want to customize, and click the edit tab at the top, you can edit the map as needed for your area. This edits the map data for all users of the Open Street Map service. Then you can get the openlayers javascript from http://openlayers.org/ to render a map on your website from Open Street Maps data that you can freely edit yourself. Also see the OpenStreetMap Wiki that tells you more about the OpenStreetMap movement.
If you don't want to reinvent the wheel, then don't try do do it: take the Google Maps API, add some markers and you're done. Zooming included. They have examples to guide you and there's loads of knowledge about the usage.
All you need is a free API key.
Edit: Your comment in the original question indicates that you want to use a custom overlay over existing maps. That's also possible as this example shows (see docs for custom overlays).
In the effort to not reinvent the wheel (which is definitely a good idea), much of the work of the maps themselves has already been done. The simplest approach will be to integrate Google Maps into your application. To address your individual points:
You don't have to draw your own maps. Tons of them already exist. Unless you're asking about drawing maps of indoor facilities yourself and plotting on those? In which case, how do you plan to approach this from a hardware perspective? GPS won't work well.
You need a piece of hardware that supplies the GPS coordinates. From there, you can just call the API to plot it.
Already done.
Calls to the API. Just provide the location (address, GPS, whatever you have) to the API. GPS will be more accurate, of course. But I'm pretty sure there's a geolocation service as part of the API and you can store the coordinates locally and adjust them manually if they're inaccurate.
If I'm off-base from your actual idea here, let me know. "Maps" is, of course, vague.
While doing software development I periodically come across the need to draw some graphs for my own use. Sometimes they illustrate relationships in a DB, sometimes they illustrate relationships of code files or classes, other times there are other objects... Anyway, the basic need is the same - I've got some set of nodes & edges that I would like to lay out neatly, add some informative colors/texts/styles and optionally print it out in the end (over several pages if necessary).
Is there a tool that would allow me to do this easily? Features that I would expect:
Import basic node/edge information from a file (the raw data that I have extracted from the DB/code/whatever);
Automatically layout some or all nodes in the graph;
Allow to manually adjust node and edge placements;
Node group manipulation features (relayout, rotate, scale) would also be very nice;
Ability to manipulate visual aspects of the picture - change lines, colors and fonts; add arbitrary texts and pictures (possibly attaching them to nodes/edges);
Ability to modify node contents (sometimes I need just a simple text; sometimes it's a little table; sometimes it's a bulleted list; etc.)
Save/load/print (including to several pages with overlapping areas for gluing together)/export to image (both vector and raster with anti-aliasing).
Added: Here is a sample graph I tried to visualise most recently. I'd like to get a useable layout that needs minimal tweaking before it can be printed.
Graphviz is a long-standing popular one.
I really like yEd's layout engine, which I feed GML data to (but it supports other formats).
You can use Cytoscape, that's a graph visualization tool. I like the forced directed lay out.
I find Gephi very nice, mainly for two tasks:
Browsing the graph, i.e. hidding some parts, moving nodes, trying to understand its properties by playing with it.
Rendering it to export it for a presentation or article?
There are nice layout algorithms included by default, and you can easily install plugins from within the tool.
And if your goal is to get an informative and readable representation of your graph, you might consider using hive plots. Description, examples and tools are available from this page. The basic idea is to use a deterministic method (by opposition to force-based layouts) to place nodes, based on a few attributes or topological measures. The resulting representation allow efficiently comparing different graphs, or even the same graph considered from different perspectives.