因为原生接口成功率很低,JS-API会优先调用精确IP定位服务,在IP定位失败的时候,尝试使用浏览器原生定位接口进行定位,如果原生定位接口也定位失败,则返回error事件或回调error信息。定位成功之后我们会对浏览器定位的经纬度结果进行向高德坐标的转化,并对所有有效定位结果融合地址信息后返回complete事件或者回调complete信息。
移动端:
如果开发者开启了sdk辅助定位,那么安卓手机上我们会优先尝试调用sdk的定位接口,失败之后优先调用浏览器原生定位接口进行定位,浏览器定位失败之后尝试进行精确IP定位,如果以上三种定位全部尝试失败则返回error事件或回调error信息,否则和PC端的一样,定位成功之后进行高德坐标转化和地址融合。
那么问题来了:如果app项目未开启sdk辅助定位功能呢?例如开发ionic2 项目
二、我们用的是web定位方式即网络混合定位,前提是有地图实例,调用地图自带的定位插件,设置
enableHighAccuracy: true, //是否使用高精度定位,默认:true 这个属性 可开启GPS定位。GPS定位的注意事项:
1.确认手机带GPS模块并打开;
2.手机上的安全软件(例如360、安全管家或系统自带的安全中心)不要限制app的定位权限;
例如:MIUI系统在:安全中心-权限管理-定位里,检查一下是否限制了app的定位权限
3.GPS定位要在开阔地带,室内无法接收到GPS信号,所以不要在室内尝试;
4.安卓系统运行时间长了,会有一些系统的因素造成的bug,确认以上三点没问题的还不能定位的,重启手机一下试试;
5.下载一款GPS测试软件(GPS Test等),测试手机gps是否正常。
二、原生定位
Native Geocoder是原生GPS定位插件,但可能对定制系统支持的不太好。
例如ionic 的 Geolocation
坐标需要转换 待完成。。。