## 介绍 供中国地区使用的 js 定位插件 特性: * 支持浏览器 h5 定位、ip 定位、经纬度查询地址、ip 查询、地区编码查询地址、地址文本解析、省市区三级联动列表搜索 * 定位信息文件已做压缩处理,如果有启用 gzip 时部分定位大约只会花费几十k * web端定位库,无需在服务端额外运行定位服务,没有并发限制、次数限制且无收费 ps: * 由于浏览器限制,http 域名的网页使用 h5 定位可能会出现问题,如定位不准、禁止定位等,如果想要定位结果更加精准,最好使用 https 域名; * 该插件的定位文件存放在第三方 cdn 中,若想存放至自己的 cdn 上,则可参考[setConfig](#setConfig)函数使用方法介绍 更新日志: * [0.1.x文档请点击这里](https://github.com/pikaz-18/pikaz-location/blob/master/version/0.1.7.md),1.x.x版本相比0.1.x版本有破坏性更新,如需升级注意重新对接文档。 * 相比0.1.x版本新增了ip查询地址、地址文本解析、地区编码查询地址。 * 重构了ip定位方法,使用ip文件处理ip定位,对第三方的ip定位无依赖,ip获取默认会缓存一天,也可自行结合自己服务获取用户ip进行ip定位。 * 对定位文件进行优化,使每次定位所加载的文件更小,且对所有加载过的定位文件进行持久化缓存,第二次对于同市的定位速度在100ms以内。 ## [demo 示例点击这里一键体验](https://pikaz-18.github.io/pikaz-location/example/index.html) ## [demo 代码点击这里一键copy](https://github.com/pikaz-18/pikaz-location/blob/master/example/index.html) ## 安装 ### with npm or yarn ```bash yarn add @pikaz/location npm i -S @pikaz/location ``` ```js import { getLocation } from "@pikaz/location"; ``` ### with cdn ```html 或者 ``` ```js const { getLocation } = window.pikazLocation; ``` ### 方法函数
方法名 | 方法说明 | 参数/object | 参数说明 | 默认参数值 |
setConfig | 设置全局配置(不调用则使用默认配置) | timeout: Number/选填 | 所有定位函数默认超时时间,单位毫秒 | 10000 |
url: String/选填 | 静态文件cdn地址 | https://cdn.jsdelivr.net/npm/@pikaz/location/lib | ||
getLocation | 默认定位函数,优先使用html5定位,html5定位失败,则会自动切换为ip定位 | 对应定位类型的参数同下方的getH5Location方法和getIpLocation方法 | - | - |
getH5Location | html5定位 | timeout: Number/选填 | 超时时间 | 10000 |
enableHighAccuracy: Boolean/选填 | 是否开启设备gps启用高精度定位(更耗时) | false | ||
detail: Boolean/选填 | 是否需要地址详细信息(更耗时) | false | ||
latitude: Number/选填 | 手动传入经纬度查询地址信息,latitude与longitude需同时传入,不传则使用设备定位 | - | ||
longitude: Number/选填 | 可手动传入经纬度查询地址信息,latitude与longitude需同时传入,不传则使用设备定位 | - | ||
getIpLocation | ip定位 | timeout: Number/选填 | 超时时间 | 10000 |
detail: Boolean/选填 | 是否需要地址详细信息(更耗时) | false | ||
ip: String/选填 | 可手动传入ipv4格式的ip地址(如114.114.114.114)查询地址信息,不传则使用设备ip定位 | - | ||
searchAddress | 解析地址文本 | timeout: Number/选填 | 超时时间 | 10000 |
detail: Boolean/选填 | 是否需要地址详细信息(更耗时) | false | ||
address: String/必填 | 地址文本字符串,必须带有省级或市级的全写或简写,不能只包含区县名称,如广东深圳/深圳南山 | - | ||
searchCodeAddress | 地区编码查询 | timeout: Number/选填 | 超时时间 | 10000 |
detail: Boolean/选填 | 是否需要地址详细信息(更耗时) | false | ||
code: String/必填 | 地区编码 | - | ||
searchList | 省市区三级联动,传入地区编码获取该地区下级地区列表 | code: String/选填 | 地区编码,若不传则获取所有省级地区列表 | - |
searchCodeDetail | 获取单个地区编码的详细信息,等同于其他方法中的detail数据 | timeout: Number/选填 | 超时时间 | 10000 |
code: String/必填 | 地区编码 | - |