I have this website that's designed for android phones. It gets the location of the user through the web browser... sometimes.
When I have wifi off, it switches out of lazy mode and get's an actual GPS location which is bang on the money.
When I have wifi on (and only in my office, other wifi works) it goes lazy and using the wifi to get the location. But it's saying I'm in Monaco... But I'm really in Australia.
What's up with that?
It only happens when wifi is on. And only at my office.
Wifi location is based on IP Geolocating which can be affected by many things.
Several company intranets I've used have reported locations waaaaaay off. In one case I think this is due to the use of a web proxy, because the location reported is the city the company headquarters is located in (and where the web proxy's running from), not the location I work at. At another company, the location reported is in another country halfway around the world. I'm not sure exactly what's causing this - maybe the address of my computer within the intranet maps to the internet facing IP address of a computer in another country? Maybe there's some kind of network security software that can mis-report this? Maybe the address used to belong to a computer there, but then this company bought it?
Related
I am developing an application that mocks the location of the user while other apps try to access it. I am using a rooted Samsung Galaxy S3 with Cyanogenmod 12. So far, the mock locations have shown to work against the Yelp. However, whenever I open the default browser app and google "near me" or "where am I," the results know my true location. Why/how does the browser know where I am and that I am not in the spoofed location?
The browser likely determined the location based On IP Address as opposed to GPS.
Per this wiki page:
An IP address serves two principal functions: host or network interface identification and location addressing.
Determining location using GPS uses the satellite system to determine the location. How GPS works is here. However, in the case of IP Address, the location is determined using the IP Addressing system which was designed in a way to be able to determine location. The IANA (an organization which oversees allocation of IP Addresses) allocates IP Address to regional internet registries as described here. The regional internet registries then allocate different addresses to ISPs which then allocate to customers.
To sum up, the "numbers" an IP address consists of helps determine the location of the user.
I used an android smartphone in the following situation:
without SIM-Card
connected to a WLAN
located in an indoor environment (GPS does not work)
located somewhere other than the address probabely set in google account
for positioning in Google-Maps App. The result was roughly correct (about 15 meters error).
There is no GPS signals to get position.
Thre is no SIM-Card. So using Cell ID is impossible.
It means the only resource from which my position is achieved is internet. Could anybody explain to me (while I couldn't find anything in internet) how this is possible?
Google gathers information on the SSID of WiFi hotspots. They drive around with cars gathering street views for their maps and other information like the location of WiFi hotspotes. They store it in a data base somewhere and when you ask for your location it will find out the SSIDs of every WiFi hotspote around you and then give a rough estimate based on signal strength and other information.
Google might use people's cell phones to gather WiFi SSID information as well I am not really sure about that though. I think this because there are setting in most android phones asking to help Google for accuracy using WiFi...
Other sites use public ISP information obtained by IP address but this is not as reliable as it gives the location of your ISP (Internet Service Provider).
Here is a site where many people are discussing this topic.
Here is a site that teaches how Google finds location data through SSID
Here is a site that teaches how geolocation software finds ISP location
Google, apart from other ways, uses SSID of the nearby networks to get your position. AFAIR there was a big concern about Google Street View Cars scanning for wifi networks, recording SSIDs for location purposes. If that SSID is not registered, they probably use some kind of IP location service, based on network provider ip address pool.
See Google maps Android API getting wifi location for more details about getting that information from Android.
Android may use wifi and sensors in order to get your position. The more wifi routers around - the more accurate your position.
Is it possible to get the device location of an android device (mobile phone) in cordova using it's MAC address?
Example: If we send the MAC address of a device, then will we able to get the longitude and the latitude of that MAC address's device, assuming that the particular device's "Access to my location" is "on"?
I think you're a bit confused about what the relationship between MAC addresses and geolocation is. They aren't used to track individual devices this way--the functionality in the Play Store for tracking down a lost device doesn't even use it (directly). It contacts the device over the Internet (provided it's reachable) and asks the device where it thinks it is.
The only relationship MAC addresses have to geolocation is that, in the absence of a good GPS signal (i.e., one that results in a high-accuracy location measurement) the addresses of nearby (within communication range) wireless APs can be used to attempt to determine the device's location. While this isn't as precise or as simple as GPS, it's generally much faster than more accurate and than relying on information from cell towers alone.
It's basically not possible to contact a device over the Internet by MAC address because of IPv4/v6 being the protocol necessary to go from one broadcast domain to another (i.e., one little network to another) and MAC addresses being a layer below that in the protocol stack.
I am a user of mapy.cz, Czech mapping portal that also happens to have an Android app. I guess that both the browser version and the mobile app obtain the current location from an API, the HTML5 API or an Android API. My current understanding is that in the end, both APIs talk to the "Google Location Service / Database", right?
Now, how comes that the mobile app reports a correct location while the web version reports a location a few kilometers away? My phone has of course GPS turned off to make those two scenarios comparable. Both the PC and my phone are connected to the same WiFi network at this moment. Shouldn't both APIs report the same location? If not, what makes them different? I'd like to understand this, thanks.
Geolocation of a wifi adress i never 100% accurate, the city of an ip adress accuracy is between 50-80%, nation 98-99%, down to zip code or adress is even less, so you will get different results depending on what service you are using, and you can get different outcomes every time you use a single service, since it's not accurate, not like GPS that can track you to mm distances.
Edit: your mobile phone is probably more accurate because the service probably triangulates via mobile masts as well as IP
We have an interesting use case where the intended device does not have GPS embedded in it. Nor will it be connected to any cell towers.
The only connection the device has to the outside world is through the web. But there is a high probability that the network location is in different city showing the wrong address...for example user is in CA but the network being accessed is located in MI (thus showing the user's location in MI).
Does the Android SDK contain an API that can serve as a workaround to this scenario?
IP Geolocation should work, unless when you say "network being accessed" you mean that the Android device creates a VPN tunnel to MI.
The Google Maps Geolocation API will also work off of wifi towers that the device can detect, so local wifi signals may be able to pinpoint the device location.