Creating world choropleth in Google Maps - google-maps

I am trying to create a choropleth map in Google Maps to visualize some international country-level statistics. It will be an add-on to an existing Google Maps application.
I searched around and found these potential solutions:
Cartographer.js has the ability to overlay vector-based choropleth maps directly on Google Maps. However, it only supports US states.
Fusion Tables can also be used to create choropleth overlays (example). However, this adds complexity because data is maintained outside of my database. I also have to obtain and maintain country boundaries data.
Demographics Layer would have been perfect, but it is for Business customers only. Plus, it is limited to US geography.
So my question is... Is there a better way to do this in Google Maps JavaScript v3?
P.S. I just came across jVectorMap. It looks promising (example), except that it is just a standalone map. It would be nice if I can somehow combine the jVectorMap functionality with the Google Maps interface.

As an author of jVectorMap could say that combining of its functionality with Google Maps would be really painful. I think the best solution here would be creation of colorful polygons in GM by hand.

You would be best to go with one of these plugins:
http://leafletjs.com/
or
http://polymaps.org/

Related

I need to make a clean, nice-looking map for a presentation based on a Google map. Any easy way to do this?

I want to make a very clean map that only shows relevant information - e.g., only the streets that matter. I was going to just draw a map while looking at Google's, but that turned out to be very slow. Is there any way to make this easier, perhaps with some combination of mapping software and Google's API?
(If I should of put this on another SE site, please tell me)
Building upon Suvi's nice answer.
There is a very useful open-source project that collects street data for the entire globe. It's called OpenStreetMap. On their website you can extract the specific street data you need. It only takes a few clicks and bam! you got the map you need. Their data can also be accessed (perphaps easier for some) from here and here. Those links can provide you with the shapefile(map) that you need. Your newly aquired map can then be loaded in the free QGIS software that was mentioned. There you can easily select the streets you are interested in.
When you mean you want to only show "streets that matter", you are out of luck with using Google Maps. Because you have no control over the ROADMAP data that google provides. Now what you can do, is use another mapping software such as ArcGIS or Quantum GIS (which is free). Both these softwares allow you to load road data shapefiles, and you can query (select) which roads you want to display and customize the look of it to your liking.
If you want a quick approach (without having to download softwares), I believe ArcGIS has an online portal which allows you to display information you want on top of their base maps. You will still need the shapefile for your streets though. Check this link out, make yourself an account and experiment around with it http://www.arcgis.com/home/. If you click on the Map tab, it takes you to a screen which should allow you to upload shapefiles.
You said you were ' going to just draw a map'. If all you need is a very clean map, you can consider using iMap Builder which is a mapping software supports both map shape files, and custom Google maps. I have used to create some simple map projects before and worked great for me. You can use their pre-made map templates which shows just the map outlines without any details, you can then add routes / points / mouse-over speech bubbles etc as you need.

comparison between openlayers.org and mapstraction.com

I just handed new GIS project and given two choices for map solution.
http://mapstraction.com
http://openlayers.org
Now i know only google maps and dont have any idea about the above two.
My goal is to provide price effective solution (thats main) having good performance and doing basic task on map like display points, draw region (polygons), create markers.
I also had to do geocoding and reverse geo coding but from my search i dont think its possible with the above two, but i can get third party vendor here to do it.
Guys i need your feedback here badly.
Thank you
Mapstraction isn't a library in it's own right, it's an abstraction layer that allows you to write your map code once and then swap from say OpenLayers to Google Maps (or about 12 other providers) by changing one line of JavaScript code.
Mapstraction also provides a geocoding abstraction currently supports seven geocoding providers including Google and OpenLayers.
Check out the Mapstraction wiki for more details.
Alternatively you can use OpenLayers directly for mapping and geocoding via OpenStreetMap.

Bing or Google maps for loading lots of data? and other questions

I have several questions here:
Which service to use (google vs bing) to display lots of (let say 100.000 and more) pushpins on the map?
What is a fastest way to do that, load all at the same time, or load 100 pushpins in the area you zoomed in, to use kml feeds.. (what about caching..?)
I would prefer Bing map, as it has nice birds' view. Is it a good approach to choose AJAX API vs web services or silverlight implementation for such task?
I tried Bing Map javascript API and when I run StartGeocoding(address), it points to the the street next to that address/house, when Bing Map online points directly to that house. How to reach the same precise results using javascript API?
I will have to display lots of places on the map, so I want to choose a right approach and service before starting a project.
I recommend google as well. I noticed that Bing is really big on Silverlight which i find to be more of a performance hog compared to javascript. I just like google's User Experience way better for Maps as well as their image searching/viewer (google's javascript version is faster and feels faster than Bing's silverlight counterpart).
Consider using Google Fusion Tables. Add your data to a Fusion Table and then it can be displayed using the Google Maps API very efficiently.

Map Visualizations

We are looking for a great looking map visualization to plot transaction as we process them. We get inbound messages from all over the united states (latitude, longitude). We currently have a Google Maps solution in place, but it just doesn't have the visual impact we are looking for. We really like how this map looks:
http://leftronic.com/doc/screen02.jpg
Do you guys know of any great looking map visualizations?
So, just to clarify, the difference between Google maps and what you are looking for is that Google maps is too busy. Google maps is great if you are trying to get directions to your friend's house, but not for data visualization. Are we on the same page?
If you are looking for visualizations with less clutter, there are several alternatives to Google Maps depending on what you want. If you would like the ease of use of Google Maps, you might want to stick with a Google solution:
Google Geomaps
Google Intensity Maps
For more flexibility but potentially more work you can try Protovis. Protovis also has many other visualizations you can use in addition to maps. You may have to find your own geographic data with protovis. They do have sample geographic data for the U.S. and for the world. Protovis runs entirely in the browser through javascript.
Another possibility is an OpenLayers front end and GeoServer backend. This solution is extremely customizeable and allows the server to do the heavy duty GIS work so the browser doesn't have to. It also requires the most work.
I don't, but here is what I would do:
Get a mercator projection map of the us, like the 2nd image here.
given an address, find it's lat-long with a tool like this.
convert the lat-long into image coordinates. this should be a simple formula, because you used the mercator projection
use a tool like gd to plot a circle at the corresponding point in the image.
Conic projections might look nicer than mercator, but the math is uglier (trig is involved)
Dundas Data Visualization has a superb map component. What platform are the maps being displayed in?

A crowdsourced Map Edit application for enviornmental cause

I want to create an application where users can mark on map location of polluting factories. Google map provides a MAP editor feature. We would like to have our own website like www.toxic-map.org where people could mark these locations. What would be the best approach for this?
Additionally we should be able to backup this database which could be cross checked or used for other purposes.
This will enable us to have little accurate census of such entities and thereby helping us in the fight against these environment harming, illegal factories. Most of our work is focused on developing countries of Asia.
Edited: Google maps is one of the options. I am open to other possible solutions as well. I am looking at something we could do quick prototyping in.
Thank you in advance!!
On the client side, I recommend you to have a look at OpenLayers, a free and open source web mapping framework released under a BSD-style License. It is completely written in Javascript and offers a lot of functionality, including the features that your application may need (Add markers to the map, drag them to adjust the locations, ...).
It also supports dozens of different geographic data formats and services such as WMS, KML or Google Maps.
If you are worried about licensing issues regarding the use of Google Maps, you can use other global data sources like OpenStreetMap or a public WMS if they provide enough coverage of your area of interest.
On the server side, I agree with the answer provided by Daniel Vassallo. I will just add a little detail and recommend you to serve the markers in a standard format natively supported by OpenLayers like KML, GeoJSON or GeoRSS. It will make really easy to draw the markers on the map.
Looks like a really interesting project, I hope you are lucky starting it up.
I seem to remember that there are restrictions to what you can do with the coordinates if you enter them through Google's interface, but if that doesn't bother you then sure, Google might be the way to go. (It may just pertain to geometrical figures entered into Google Earth or something like that.)
Google seems to be in line with your ideology anyway, as they're doing a lot of green power development. Might even be a selling point.
But if you can input the data separately and have Google Maps just display it for you then I wouldn't think they could hold claim to the data.
I think your best bet is to use the Google Maps API instead of the map editor in My Maps.
With some basic JavaScript, you will be able to allow users to drop markers on the polluted locations they would want to tag.
You will need a database on the server-side, and a thin application layer that:
Accepts and validates new markers added by users.
Serves the markers from the database to the browser.
You may want to use AJAX to interact between the browser and the application layer.
I think this type of project would be an excellent candidate to be hosted on the Google App Engine. You will be able to leverage on the simplicity of the webapp framework, and the Google Datastore appears to fit well.
As a side-note, you might be interested in checking out the Heat Map API for Google Maps. I think heat maps would look good in a project like this.
The approach is this:
1. User can drag the marker to the location of toxic factory.
2. A simple form opens to enter details of the toxic factory.
3. The latitude, logitude and other datails are then saved in database.
Please refer www.loppee.com They have a similar solution where user can mark the location of people or places of interest. Loppee uses LeafletJS javascript framework. It is a simple framework. You would be able to develop quick prototype. LeafletJS.com has simple and easy to use code samples.
Additionally, you can enable Geolocation and IP triangulation. Refer: Longitude and latitude value from IP address