Api 使用google.loader.ClientLocation获取用户位置对我有效,但对其他人无效

Api 使用google.loader.ClientLocation获取用户位置对我有效,但对其他人无效,api,geolocation,google.load,Api,Geolocation,Google.load,我正在尝试使用google.loader.ClientLocation和maps api来获取访问者的位置,并在其上居中放置一张地图。以下内容对我来说很好(在Safari、Firefox和Chrome上),但我的一个朋友(在Safari和Firefox上)测试了一下,他看到一个带有Google徽标的白色框 <script type="text/javascript" src="http://www.google.com/jsapi?key=MykeyHere"></scrip

我正在尝试使用google.loader.ClientLocation和maps api来获取访问者的位置,并在其上居中放置一张地图。以下内容对我来说很好(在Safari、Firefox和Chrome上),但我的一个朋友(在Safari和Firefox上)测试了一下,他看到一个带有Google徽标的白色框

 <script type="text/javascript" src="http://www.google.com/jsapi?key=MykeyHere"></script>

  <script type="text/javascript">
   google.load("maps", "2");
  </script>

  <script type="text/javascript"> 

      function initialize() {
        if (GBrowserIsCompatible()) {
          var map = new GMap2(document.getElementById("local_map"));
    map.setMapType(G_PHYSICAL_MAP);
    map.setCenter(new GLatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude), 15);
          // map.setCenter(new GLatLng(54.5975, -5.920278), 15);
          map.setUIToDefault();

        } 

      </script>

加载(“地图”,“2”);
函数初始化(){
if(GBrowserIsCompatible()){
var-map=newgmap2(document.getElementById(“local_-map”);
设置映射类型(G_物理_映射);
setCenter(新的GLatLng(google.loader.ClientLocation.latitude,google.loader.ClientLocation.longitude),15);
//赛特中心地图(新格拉特林(54.5975,-5.920278),15);
map.setUIToDefault();
} 

你知道哪里出了问题吗?该网站位于(地图在底部附近)

Google ClientLocation使用IP地址地理定位。有几个IP地址地理定位提供商(右侧侧边栏中的相关问题将为你提供其中几个)他们会给不同的用户提供不同的结果。Google ClientLocation无法定位每个人,也不会总是给出像某些竞争对手那样精确或准确的答案

例如,在上,我使用Google ClientLocation和,Google ClientLocation现在找不到我在家,而IPInfoDB认为我在Sunnyvale而不是Berkeley。你可能会发现一个提供商比其他提供商更好(特别是如果你为其数据库付费的话),但我怀疑,如果你真的需要,最可靠的方法是使用多个,并希望至少有一个会有结果。你应该事先知道,IP地理定位并不总是适用于所有用户(例如,匿名代理背后的用户永远不会以这种方式定位)


同样,如果您想要更精确的位置,可以使用Javascript API向浏览器询问用户的确切位置。在受支持的浏览器上,用户将收到一个小弹出窗口,询问他们的许可,如果允许,浏览器将使用GPS(例如iPhone上的Mobile Safari)或WiFi三角测量(Firefox 3.5+)确定纬度和经度。你可以看到它是如何工作的,并将其与IP地理位置进行比较。不是所有浏览器都支持,但越来越多的浏览器支持。

谢谢,所以基本上这不是一门精确的科学。IP地址是唯一没有GPS功能获取位置的方法吗?@Chris,没错,这不精确。你可以使用Javasccript W3C Geolocation API从浏览器中获取更精确的位置(可能使用GPS或WiFi三角测量或其他方法,具体取决于浏览器和计算机)。我在答案中添加了一些链接以提供更多上下文。访问测试页面时,我会得到“实际上,我无法通过这种方式猜测您的位置”。