Blackberry Users See Usage Exceeded Image - google-maps

I have a web page that displays the users location on a small Google map
e.g.
Google Static Map
However my colleagues who have blackberrys seem to get the usage limit exceeded image all the time:
Some of these are work blackberry users and some are personal devices. So is google using the BES address as the source? Surely all blackberry users must have this problem if that was the case?

There are two aspects to understand here. One is that the Google static maps API is rate limited based on IP addresses. This is intended to spread out the usage limits. The docs for maps say the limit is "25 000 free static map requests per application per day."
If you aren't using an API key, that limit applies per IP address.
The second thing to understand is that BlackBerry devices all access the internet through a VPN that is tunneled through the mobile operator's data plan. This is what BIS service provides, along with email access. When a BIS user browses the internet, their IP address will come from one of RIM's datacenters, and not from the mobile operator's datacenter. There is one datacenter for all of North America. RIM publishes their IP addresses. This means all BlackBerries with BIS service will show up from a limited set of IP addresses.
Combining these two pieces of knowledge together, we have an API whose limits are based on IP addresses, and a large set of devices that use a limited set of IP addresses. This is why BlackBerry devices run out of Google Maps API quota, even if another non-BlackBerry device using the same mobile operator does not see the quota issue.

Related

Geolocation API and GIS Data

I am working to develop a web app that can utilize a GNSS receiver connected to a smart device to plot points of interest and display them on a map. I am trying to capture the enhanced location data that is being provided via the GNSS receiver. Connecting a GNSS receiver to an android phone or tablet, you have to enable mock locations on the device. The web app works while the GNSS unit is not connected, but once it connects, Chrome is unable to load any location at all, using either getcurrentposition() or watchposition(). The team I am working with thinks the browser might not recognize the units the GPS device is measuring (degrees minutes seconds as opposed to decimal degrees), but I am not so sure this is the case. The Google maps app works while a device is connected to the GPS unit, but maps.google.com does not, which makes me think this is a browser issue. I've also found other apps from the app store that are able to take readings from the device's mock locations. Not being able to use the improved accuracy of the GNSS unit limits the app to the GPS information the phone/tablet provides. Any thoughts about how I could make this work?

How does google map location works?

My question is how does google map or mobile GPS able to find mine current location ?
My high level understanding after reading this article is , GPS receiver gets the location coordinates through these satellites
and this location is further passed to Google Map(or any other client) API which then locates the exact location on map. Is it correct ?
Somewhere i also read that Mobile towers also plays the role. But my unserstanding is that this can be used to track the mobile location if required but mobile apps or Google maps
uses the satellite approach. Right ?
It's a bit inaccurate question to ask "How does google map location works", because Google Maps app (as well as any application leveraging google maps API) is just a consumer of location services on your device and is not used to determine the current location itself.
Because Google Maps is just an application, it can be run inside browser, or as native application. Depending on that, the way how it gets to your location information may also vary.
If you run the Google Maps from web browser (or WebView, or UIWebView,..) it usually uses HTML 5 geolocation API to determine your location and then use that to show your position on Google Maps. HTML5 geolocation then uses some lower level services to get your location, like GPS sensor, WIFI, network etc. There are already questions on how HTML 5 geolocation determines your position on SO, like this one or this one.
If your app is run as standalone application, it depends on your platform, your device sensors, your network,.. how the location is determined. So for example on Android with GPS sensor, LocationManager is used, which retrieves the location again using GPS, or from network provider, or returns last known location, etc. There's a lot of various interesting techniques behind this, which you can look up yourself (For example to determine your location using Wifi, Google has a database of WIFI SSIDs and their locations retrieved using anonymous device tracking and is able to roughly tell your location only from Wifi networks around you.)

googleapis is not displaying map randomly some times

We are using API for static maps. Some times map is not displayed with the correct information, Instead it displays a crossed image . This is happening randomly for few seconds.
Ex1: https://maps.googleapis.com/maps/api/staticmap?center=51.4666667,-116.5833333&zoom=11&size=380%20x%20380&sensor=false&markers=51.4666667,-116.5833333
Ex2: https://maps.googleapis.com/maps/api/staticmap?center=51.4355096,-0.405238800000006&zoom=13&size=380%20x%20380&sensor=false&markers=51.4355096,-0.405238800000006
Thanks,
Kris
Most websites and applications may use the Google Static Maps API free of charge. However, if you consistently generate a high amount of traffic, usage limits apply and you will need to pay for extra usage. If your site or application generates 25,000 Static Maps image requests or more each day, for more than 90 consecutive days, Google will attempt to get in touch with you to talk about payment. Don't worry, if you go over the limits, Google won't immediately shut off your API access or display error messages on your site.
It is recommended that you sign up for an API key, so that you can track your usage via the Google APIs Console. Please note also that the following additional limits apply to applications that don't use an API key: 1,000 Static Maps image requests per IP address per 24 hour period, and 50 Static Maps image requests per IP address per minute.

Is it possible to track a google map location using landline phone number?

I want to locate a location on the google map using phone number. Is it possible? If yes, what is the parameter which I need to append in the request url. As of now, I am appending 'address' and my URL is
http://maps.googleapis.com/maps/api/geocode/json?address=THE+FRENCH+LAUNDRY&sensor=false
As long as I know, this is not possible with Google Maps (but maybe someone else knows more...). In some country, like Italy (where I live), it could even be against the law (depending on a few legal parameters).
Despite this, I saw some user here in SO signalling that some applications developed and managed by Google and installed on Android devices seem to be able to do so (in the countries where this is legal, of course). Most likely, these apps use a Google online database that is not accessible to the common user/developer.
Moreover, there are other companies that offer location services that can locate a user both if he/she uses a cellular phone and if he/she uses a land line one (in the countries where this is legal).

How, exactly does HTML5's GeoLocation work?

I know the browser shares my IP address and details of nearby wireless networks to determine my location, but what sort of info does it know about nearby wifi networks?
For example, where I live are no public wireless networks, and from my home I can see about 5 private networks, yet my location is determined within 20 meters. With there being no open networks nearby, how does Google determine my location? The only way I can think of is that Google mapped the locations of all wireless networks when they mapped streets for Street View.
I've searched about online, but all I can't find any specific details.
The data sent by Firefox to Google is for all visible access points, public or private. For each access point detected, it sends the following data to https://www.google.com/loc/json:
"mac_address": "01-23-45-67-89-ab",
"signal_strength": 8,
"age": 0,
"SSID": "MyAccessPoint"
where
mac_address is the mac address of the WiFi node.
signal_strength is current signal strength measured in dBm.
age is the number of milliseconds since the WiFi node was detected.
SSID is the name or ESSID of the WiFi node.
The georeferenced WiFi data used to geocode your request was collected when Google was driving around taking pictures for StreetView.
It is important to note that, however, that this is how the HTML5 geolocation API is implmeneted on Firefox using Google's Geolocation Services. This is an implementation, not a specification. If your device has a built-in GPS, it is probably desirable that your HTML5 implementation queries the GPS directly, rather than using a geolocation service.
Even firefox implements this feature differently on Windows and Linux. Using a current Firefox on Windows, details of all visible WiFi nodes are sent to Google. Using a current Firefox on Linux, only details of the currently connected WiFi node is sent, due to the reliance on libiw for access point data.
As another answerer noted, Safari uses Skyhook Wireless's service which does much the same thing as Google's Location Services.
Data is gathered by Skyhook Wireless (Wikipedia), and they make no distinction between public and private wifi points - they log the locations of all of them. I wouldn't be surprised if the Google Street View vans also logged location data for access points.