Is it possible to have really real time updates on map via Google Maps API using Node.js or does Google have some callback limit e.g. 5 sec. or 30 sec etc. ?
Because almost realtime stuff is a real power of node.js with e.g. meteor latency compensation etc.
But I am curious if this is possible and Google let me do it. If tere's not allowed to use "really" real time updates, what are the max. allowed callback times for Google Maps in the web application?
Use of the Google Geocoding API is subject to a query limit of 2,500 geolocation requests per day. (User of Google Maps API for Business may perform up to 100,000 requests per day.) This limit is enforced to prevent abuse and/or repurposing of the Geocoding API, and this limit may be changed in the future without notice. Additionally, we enforce a request rate limit to prevent abuse of the service. If you exceed the 24-hour limit or otherwise abuse the service, the Geocoding API may stop working for you temporarily. If you continue to exceed this limit, your access to the Geocoding API may be blocked.
https://developers.google.com/maps/documentation/geocoding/
A request in this context is a single http request to the geolocation API e.g.
http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false
From what it sounds, you don't really need the Geolocation API, you could just use the Javascript Maps API and be fine. The geolocation API helps convert between addresses and co-ordinates. It can help if your user is inserting a new sighting but doesn't know the co-ordinates, or if you have the co-ordinates but want help with the area's name. You only have to request it once if you do use it, so with a limit of 2500 you could take 2500 sightings a day. If that gets you stuck you can also look at OpenStreetMap, which has no limits.
You could use a map, Google Maps, OpenStreetMap or so and basically dynamically move/update these items on the map as you ask.
You could store your UFO locations in a collection. The way you could update the map is to use Meteor.autorun. As soon as a new document is added/updated/edit to your collection it could update all the clients maps in real time.
Meteor.autorun(function() {
var ufos = UFOs.find({}).fetch();
ufos.forEach(function(ufo) {
//draw the ufo onto your map or edit the existing one already on.
});
});
As your UFO collection updates this function will be called and you can have it update the map with the new content/edit existing content.