Geopraphic Charting controls for Websites - web

I need to create dash boards showing geographic regions and show sales, hot spots etc on a map.
What have you tried and what do you recommend?
I like the look of both Fusion Charts and Dundas
I will be using asp.net for the site but any control's or library's including flash or javascript are good options.
Most important is the look and feel followed by functionality in South Africa.
After my last post looking for commercial mapping solutions, it looks like they are very expensive and now I am investigating alternatives to full mapping solutions.
thanks

Have a look at http://www.geoext.org/examples.html#examples a JavaScript library based opn top of OpenLayers and ExtJS.
You can limit the bounds of your map to different regions, have several pop-up maps etc.
Have a look at the OpenLayers API on what datasources you can use. GeoJSON or KML are probably easiest if you want to avoid server-side map serving software.

Related

What are the pros and cons of generating heatmap on back-end/front-end side?

I have a network of sensors that measure air pollution. I want to make a heatmap of this pollution and show it to users on my website.
I'm thinking about the best way to do that. Should the heatmap be generated on back-end or front-end side? What are the pros and cons of both solutions? Any details - like in what format should I send the heatmap to the front-end (maybe using SVG?) would be very appreciated.
I can find these pros for back-end generated heatmap:
Easy integration with other services - like if I wanted for example to send map of air pollution to Slack users I can just download map tiles and put generated heatmap on it.
Ease of making changes - eg. if I want to change a way the heatmap is generated (like colors) I don't have to change it in all other places like web app, Android app, iOS app...
Cons:
Probably more data to send to client.
Additionally, can you name any real-life examples of back-end/front-end generated things that are put on top of the map?
It is a bit hard to answer what the best solution is. It all depends on the data.
if you have say, moderate amount of data points, about 50-100, and prefer having a crisp rendering on a high resolution display, then SVG is the way to go.
if you have hundreds or thousands of data points, rendering those with SVG can be a performance killer on the client side. In this case, render everything to a bitmap on the server side and send it to the client.
Examples:
Google maps (or any other map service) renders maps as bitmap tiles on the server side. The classical Google maps in a browser (e.g. ios Safari showing google maps) will do nothing more. Even street names are rendered to the bitmap. (It worth of noting that on more capable platforms, such as desktop Chrome, things are done more tricky.)
JS side charting solutions will render things on the client side. Looks grand for datasets up to some hundred points. Fails sadly on real life data (for example, working in the stock market industry, examples like "show stock prices of Apple" can make these solutions on their knees. (All price changes of Apple shares from 1990 - including tick level data (so thousands of changes per day) is a different league.
Just for the records, in a recent project after months of development work, we were unable to make a client side canvas based rendering working reasonably well on all platforms, and opted to server-side rendering and solved the problem with 4 days of work.

Orthographic projections in Google Earth (/Sky) possible? Alternatives?

I need to create whole-sky maps, but Google Earth in Sky mode has limited "zoom out." Is it possible to create an orthographic map projection with Google Earth (or, for that matter, MS Virtual Earth)? Really any of the standard projections will do, although it would be nice to have options.
Of course, I could render the projection statically and then paint my KML layer on top of it, but the ideal use-case would allow the user to add additional KML layers, zoom in and out, etc.
No they don't. This was a bone of contention in a series of articles I wrote just over a year ago. I wasn't after an orthographic projection, but equal area projections. People insist on plotting geostatistical data on non-equal area projections, mainly because they don't know any better and/or Google Maps, Bing Maps, etc do not offer any alternatives.
my demo of how it should be done used OpenLayers which can support various different map projections.
I haven't seen OpenLayers being used for star maps, but I can't see any fundamental reasons why it should not work. Also the star data is generally available in the public domain, I believe.

Any flexible CMS perfect for restaurant website’s back-end?

I’m building a website for a restaurant which consists of several static pages like ‘About us’ and editable menu.
I need a CMS flexible enough to be able to add items individually (by individually, I mean adding items doesn’t equal pasting a HTML list of n products into another static page).
Each item should contain its name, description, price and category. The list of added items should be displayed using templates the way I want them to.
Can you suggest any lightweight CMS which can provide similar conditions?
There are tons of options for simple page creation. Have you considered just using one of the many free website builders out there? Then you don't even have to worry about finding hosting, just make it happen quickly and easily with one of them. For instance, take a look at Weebly (review here) or Wix. Both allow for free pages and both are incredibly easy to use. Squarespace (review here) is another solid option (and one of my favorites) but charges a small fee (which I personally think is worth it).
Weebly allows for some slick drag and drop of page elements into place as does Wix. They are what I would classify as the easiest of the batch while Squarespace provides for an excellent user interface experience.
Other options if you'd prefer something hosted on your own would depend on your experience level. I am a huge fan of Processwire and ImpressPages has come along nicely and is great little CMS too.
These are exceptions to the typical Top Three that everyone tends to recommend I know but I like to spread the word about other projects instead of the usual ones.
Cheers!
Mike
Sounds like a job for Wordpress 3.0 plus Custom Post Types UI + Verve Meta Boxes plugins. Wordpress will handle the static pages, the other two plugins will allow you to make a Menu Item post type with custom fields.
It is not exactly lightweight, but you could do it with Drupal. You can define you own content type "product", use the CCK module to add your fields (price, ...) and use the Views module to display it how you want.
Drupal has a relatively steep learning curve, so it may be overkill for this project. It is definitely flexible enough for this, though.

Tables versus divs in mobile websites

I'm totally confused on this matter, some say use tables and others say it's a bad practice to make use of tables and div tags should rather be used. What is the correct way when developing sites for mobile devices .mobi
You should use tables for presenting tabular data, not for layout. Most modern Web browsers on mobile phones (e.g. Mobile Safari on the iPhone) are quite capable of properly rendering websites that use CSS and semantic markup appropriately.
Yes, theory says that you should use tables for presenting tabular data, not for layout. But most of web browsers in the market do not properly render complex layouts with floating divs, advanced CSS, etc.
Things are changing quickly, and as other people have already said, most modern Web browsers on mobile (smart)phones (iPhone, Android...) come with a great HTML/CSS/Javascript support.
If you only have these devices in mind, you can go with DIV/CSS layouts, as it is the right choice from a semantic point of view. But if you want to cover a wide range of devices, use tables as you'll guarantee your pages are going to render properly in more devices.
The important aspect to consider is the difference between data & its actual layout on the screen.
Typically, tabular data should be presented using tables. For example, consider a company balance sheet as an example of tabular data which can be shown using HTML tables.
But, if you need to show normal content (which is not tabular in nature) in rows & columns, there are other alternatives like using DIV & SPAN tags and a bit of CSS to position & style the content to make it look like a tabular layout. A typical example of such a layout could be a news article shown on a newspaper. While the layout is in rows & columns, the news content itself is non-tabular.
There are tons of articles out there which debate why this is a good practice.
Given your case, I would recommend stick to normal DIV-based structure with CSS-based styling to give the desired effect & use TABLEs for tabular data.
HTH.

How does Nike's website do this Flash effect when the user selects a choice

I was wondering how does Nike website make the change you can see when selecting a color or a sole. At first I thought they were only using images and when the user picked a color you just replaced that part, but when I selected a different sole I noticed it didn't changed like an image it looked a bit more as if it was being rendered. Does anybody happens to know how this is made? Or where can I get further info about making this effect :)?
It's hard to know for sure, but my guess would be that they're using a rendering service similar to that provided by Adobe's Scene7.
It's a product that is used to colorize/customize a base product image based on user choices.
If you're interested in using the service, I'd suggest signing up for their weekly webinar. I attended one a while back and was very impressed with their offering. They showed the Converse site (which had functionality almost identical functionality to the Nike site) as a demo.
A lot of these tools are built out in Flash using a variety of techniques:
1) You can use Flash's BitmapData object to directly shift the hues of the pixels in your item. This is probably the simplest technique but often limits you to simple color transformations.
2) You can pre-render transparent PNG's (or photos, I guess) containing the various textures you would want to show on your object (for instance patterns or textures) and have them dynamically added to your stage at runtime. This, I think, offers the highest fidelity but means you need all of your items rendered upfront.
3) You can create 3D collada files and load them via a library like Papervision3D. Then dynamically change the texture at runtime. This is the most memory intensive technique and tends to result in far worse fidelity, but for that you get a full 3D object that you can view in space.
I'm sure there are other techniques but those are the top 3 I can think of. I hope that helps!

Resources