原生API
地理位置API 通过 navigator.geolocation
来获取。必须支持 https。必须授权。必须可以访问google(因为使用的人家的服务)所以科学上网。
if ("geolocation" in navigator) { /* 地理位置服务可用 */ } else { /* 地理位置服务不可用 */ } // 获取一次 navigator.geolocation.getCurrentPosition(function(position) { console.log('getCurrentPosition:success', position, position.coords.latitude, position.coords.longitude); }, function(a,b,c,d,e){ console.log('getCurrentPosition:success', a,b,c,d,e); }); // 如果有改变会实时通知 navigator.geolocation.watchPosition(function(position) { console.log('watchPosition:success', position, position.coords.latitude, position.coords.longitude); }, function(a,b,c,d,e){ console.log('watchPosition:success', a,b,c,d,e); });
百度地图
Web API
接口https://api.map.baidu.com/location/ip
JavaScript API
- 浏览器定位 优先调用浏览器H5定位接口,如果失败会调用IP定位
- IP定位 根据用户IP 返回城市级别的定位结果
- 定位SDK辅助定位 当您的APP中有内置的Web页面,同时在Web页面需要提供您的当前位置信息时,可调用集成在App中的百度地图定位SDK来获取更精准的位置信息
高德地图
JS API
AMap.Geolocation
定位插件,整合了浏览器定位、精确IP定位、sdk辅助定位多种手段
AMap.CitySearch
城市查询,IP定位获取当前城市信息