geolocation showing wrong location in google map
When I use http://html5demos.com/geo to locate myself, it shows wrong location(开发者_运维问答wrong city) in FF and chrome. Any reason why this is happening
I had the same problem using Chrome on Windows, but I got it to work, at least some of the time.
I was also using the example http://html5demos.com/geo
The location was not just inaccurate, it was also in the wrong city.
I tried the same example on my iPad (Safari) and there the location was correct. My iPad is using the same WiFi network as my PC, so I then knew it was not a problem with my ISP returning the wrong location, it was to do with the browser on my PC.
I got it to show the correct location in Chrome by going into the Chrome settings and clearing the cache and cookies.
It wasn't sufficient to just select in Chrome "Tools/Clear Browsing Data/Cookies & Cache", it was only after in Chrome I selected "Settings/Privacy/Content Settings/All Cookies and Site Data" and deleting all cookies, did the example show the correct location.
Update 1: I tried the same geolocation example the next day, and to my annoyance it was again showing the wrong city. I tried to get it to work by clearing the Chrome settings as described above and this time this solution didn't work. However, when I used the application CCleaner and selected Cleaner/Applications and cleared all of the Chrome data (internet cache, internet history, cookies and session) the geo example showed the correct location. I'm using the latest version of Chrome. Hopefully in future versions it will work more consistently.
Update 2: I tried the procedure above at a later date and couldn't get it to produce the correct location at all. It could be that the geolocation is now returning the location of my internet service provider, rather than my location, using my IP and Google Location Services. Of course this location is fairly useless. The reason why my iPad is returning the correct location is probably because it contains an inbuilt GPS. The iPad 3G / 4G have a GPS chip built in to the GSM receiver chip, whereas WiFi only models have no GPS. When 'location services' are switched off in the iPad settings, location via both GPS and IP are switched off. It would be useful just to be able to switch off the GPS on my iPad and just use IP location, but I'm not sure if that is possible.
Update 3. As I mentioned, I'm using a WiFi stick in my PC. I have noticed that when I look at the available WiFi networks (with View Available Wireless Networks) and mine is the only network, the geolocation example returns a location in a different city, but if any of my neighbours have a WiFi network in range of my PC, the geolocation example returns my exact location, to within a few metres. i.e. the geolocation in the browser is clever enough to use this extra information to locate me.
(I think the other answers to this question completely on the wrong track. The questioner states that the location was being shown in the wrong city, so the question is not to do with the location accuracy)
Different devices have different degrees of accuracy and it is important that your application be aware of the difference. A cell phone that has a GPS unit inside of it that is switched on is usually accurate within three meters. A cell phone without a GPS unit, with the GPS unit switched off to maximize battery, or at a location where the GPS can’t contact the GPS satellites will have to use cell tower triangulation to estimate the users location and is typically accurate within 3000 meters which is accurate enough to know what neighborhood the user is in but completely useless to tell them what building they are looking at.
If the user is accessing your site from a computer connected to a land-based broadband connection it can usually pinpoint the precise address by consulting a provider database and pinpointing the exact address from the DSL or cable provider.
To get the accuracy of the location information, you can query the accuracy property on the coords object. The accuracy property isn’t exact by any means but it will give your application a good sense as to whether or not you have a nearly precise position or a neighborhood.
According to the Firefox geolocation FAQ, Firefox uses Google for location services. It sends Google the following information:
- Your IP address
- Information about nearby Wi-Fi access points
- A random Google-assigned identifier (changed weekly)
I assume it will also use GPS data if your computer has a receiver installed, but the FAQ doesn't mention that. Maybe because there's no need to use Google's sever if you have GPS data available.
I assume that Chrome, as a Google product, is using the same geolocation database.
As for why you're getting incorrect answers, that would reside in Google's database. There are most definitely errors in there. For instance, my office computer shows up in Mexico city even though my IP address and the IP address of my employer's proxy server are both in Plano, Texas, and all other IP-to-location databases have this correct (taken from the registered whois data for the address.)
Here are two Google pages that they claim will help, although they haven't done a thing for me yet:
- https://support.google.com/websearch/answer/873
- https://support.google.com/websearch/contact/ip
The latter (contact/ip) is a form for reporting Google location problems that manifest as Google redirecting you to the wrong country's home page. They say it may take over a month to correct the database. I've been waiting nearly two months with no luck.
There are Firefox add-ons that can be used to force your browser to report a specific location. They're meant for debugging location-aware web services, but they could also be used in a case like this, where the normal method isn't working.
I think if you could user the the method watchPosition()
instead of getCurrentPosition()
the coordinates will be updated too much which will produce a better result
note : it's better to use another browser other than chrome it doesn't support the watchPosition()
method good enough
I figured it out. Every mobile phone has its location mode default to High Accuracy. High Accuracy uses GPS, Wi-Fi, Bluetooth, or mobile Networks to determine location.
This might be a challenge as there are many variables to getting a device's location.
The solution will be to change the location mode from High Accuracy, to Device only or GPS only.
Device only or GPS only is supposed to use just GPS and device sensors to determine location. I have tried it, it works like a charm.
Use link below to change Location mode https://www.verizon.com/support/knowledge-base-106080/
I depends on which method is used to get your location. If it uses IP then you could show up pretty much anywhere. If it uses Wifi then it might be just be biased data.
精彩评论