Плагин позиционирования JS для использования в Китае
Характеристика:
PS:
Из -за ограничений браузера могут возникнуть проблемы с использованием позиционирования H5 веб -страницы доменного имени HTTP, таких как неточное позиционирование, запрещенное позиционирование и т. Д. Если вы хотите, чтобы результат позиционирования был более точным, лучше всего использовать доменное имя HTTPS;
Файл местоположения этого плагина хранится в стороннем CDN. Если вы хотите сохранить его на своем собственном CDN, вы можете обратиться к введению к использованию функции SetConfig
Журнал обновления:
yarn add @pikaz/location
npm i -S @pikaz/location import { getLocation } from '@pikaz/location' < script
type =" text/javascript "
src =" https://cdn.jsdelivr.net/npm/@pikaz/location "
> </ script >
或者
< script type =" text/javascript " src =" https://unpkg.com/@pikaz/location " > </ script > const { getLocation } = window . pikazLocation| Название метода | Метод Описание | Параметры/объект | Описание параметра | Значение параметра по умолчанию |
| SetConfig | Установите глобальную конфигурацию (используйте конфигурацию по умолчанию, если не вызывается) | Тайм -аут: номер/необязательный | Тайм -аут по умолчанию для всех функций позиционирования, в миллисекундах | 10000 |
| URL: строка/необязательно | Статический файл CDN -адрес | https://cdn.jsdelivr.net/npm/@pikaz/location/lib | ||
| getLocation | Функция позиционирования по умолчанию предпочтительнее использовать позиционирование HTML5. Если позиционирование HTML5 не удалось, оно автоматически переключится на позиционирование IP. | Параметры, соответствующие типу позиционирования, такие же, как и метод Geth5location и метод Getiplocation ниже | - | - |
| Geth5location | Позиционирование HTML5 | Тайм -аут: номер/необязательный | Тайм -аут | 10000 |
| EnableHighaccuracy: логический/необязательный | Сообщить ли высокое расположение с помощью GPS (больше трудоемки) | ЛОЖЬ | ||
| Деталь: логический/необязательный | Требуются ли данные о адресах (больше трудоемки) | ЛОЖЬ | ||
| Широта: номер/необязательный | Вручную передавать информацию о широте и информации о долготе. Широта и долгота должны быть переданы одновременно. Если нет, используйте местоположение устройства | - | ||
| Долгота: номер/необязательный | Вы можете вручную передать информацию о широте и информации о долготе. Широта и долгота должны передаваться одновременно. Если вы не проходите, вы можете использовать позиционирование устройства. | - | ||
| getiplocation | Позиционирование IP | Тайм -аут: номер/необязательный | Тайм -аут | 10000 |
| Деталь: логический/необязательный | Требуются ли данные о адресах (больше трудоемки) | ЛОЖЬ | ||
| IP: строка/необязательно | Вы можете вручную передать IP -адрес в формате IPv4 (например, 114.114.114.114), чтобы запросить информацию о адресах. Если вы не передаете его, вы можете использовать местоположение IP устройства. | - | ||
| SearchAddress | Установите текст адреса | Тайм -аут: номер/необязательный | Тайм -аут | 10000 |
| Деталь: логический/необязательный | Требуются ли данные о адресах (больше трудоемки) | ЛОЖЬ | ||
| Адрес: строка/требуется | Строка текста адреса должна иметь полную или аббревиатуру на провинциальном или муниципальном уровне и не может содержать только имена округов и округа, такие как Шэньчжэнь, Гуандун/Шэньчжэнь Наншан | - | ||
| SearchCodeadDress | Региональный запрос кода | Тайм -аут: номер/необязательный | Тайм -аут | 10000 |
| Деталь: логический/необязательный | Требуются ли данные о адресах (больше трудоемки) | ЛОЖЬ | ||
| Код: строка/требуется | Региональный код | - | ||
| список поиска | Трехсторонняя связь между провинциями, городами и районами проводится для получения списка регионов нижнего уровня в регионе | Код: строка/необязательный | Региональный код, если не передается, получите список всех провинциальных регионов | - |
| SearchCodedetail | Получите подробную информацию об одном регионе, кодирующемся, эквивалентной для детализации данных другими методами | Тайм -аут: номер/необязательный | Тайм -аут | 10000 |
| Код: строка/требуется | Региональный код | - |
ПРИМЕЧАНИЕ. Если данные включены, подробная информация о провинции, городе и округе будет возвращена на основе исходной информации о базовом позиционировании.
Описание: Установите глобальную конфигурацию (используйте конфигурацию по умолчанию, если не вызывается)
Вы можете загрузить всю статическую папку в корневой каталог проекта в OSS и передать адрес ссылки статической папки в качестве URL. Например, статическую папку на OSS можно получить через https://xxx.com/file/static, а URL может быть передан на https://xxx.com/file. Если не установлен, URL использует публичные адреса CDN, такие как https://cdn.jsdelivr.net/npm/@pikaz/location/lib по умолчанию (сторонняя CDN может быть нестабильным, лучше всего загрузить файл местоположения)
import { setConfig } from '@pikaz/location'
setConfig ( {
// 超时时间
timeout : 10000 ,
// 您的oss地址
url : 'https://unpkg.com/@pikaz/location/lib' ,
} ) Примечание. Функция позиционирования по умолчанию предпочтительнее использовать позиционирование HTML5. Если позиционирование HTML5 не удалось, оно автоматически переключится на позиционирование IP.
import { getLocation } from '@pikaz/location'
getLocation ( )
. then ( ( res ) => {
// 返回数据结构: {
// ...,//返回对应定位类型数据,同下方的getH5Location和getIpLocation返回数据格式
// type:"h5"//定位类型:h5/ip
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) Примечание: функция позиционирования HTML5. Рекомендуется использовать протокол HTTPS для позиционирования HTML5. Если это HTTP, то позиционирование HTML5 может привести к неточному позиционированию или неспособности позиционировать (в зависимости от политики браузера), и обеспечение высокого расположения будет более трудоемким;
import { getH5Location } from '@pikaz/location'
getH5Location ( {
// 开启gps高精度定位
enableHighAccuracy : true ,
} )
. then ( ( res ) => {
// 返回数据结构:{
// address: "广东省深圳市福田区"//完整地址
// city: "深圳市"//市级名称
// code: "440304"//地区编码
// district: "福田区"//区县级名称
// latitude: 22.547//区县级纬度
// longitude: 114.085947//区县级经度
// province: "广东省"//省级名称
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) Примечание. Функция позиционирования IP. Позиционирование IP является менее точным и может быть неточным, чем HTML5. Однако, если пользователь отказывается на авторизацию позиционирования, позиционирование IP может использоваться в качестве гарантийного решения;
import { getIpLocation } from '@pikaz/location'
getIpLocation ( )
. then ( ( res ) => {
// 返回数据结构:{
// address: "江苏省南京市"//完整地址
// city: "南京市"//市级名称
// code: "320100"//地区编码
// district: ""//区县级名称
// province: "江苏省"//省级名称
// ip: "114.114.114.114"//ip地址
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) Примечание: текст адреса разрешения должен содержать полную или аббревиатуру провинциального или муниципального уровня, и не может включать в себя имена округов и округов, таких как Шэньчжэнь, провинция Гуандун, Шэньчжэнь, провинция Гуанджн, Наншан, Гуандж/Шензхен/Шензенс/Шенжен/Шензенс/Шенжен/Шенжн.
import { searchAddress } from '@pikaz/location'
searchAddress ( {
address : '广东福田' ,
} )
. then ( ( res ) => {
// 返回数据结构:{
// address: "广东省深圳市福田区"//完整地址
// city: "深圳市"//市级名称
// code: "440304"//地区编码
// district: "福田区"//区县级名称
// province: "广东省"//省级名称
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) Описание: Информация о адресах запроса регионального кода
import { searchCodeAddress } from '@pikaz/location'
searchCodeAddress ( {
code : '440304' ,
} )
. then ( ( res ) => {
// 返回数据结构:{
// address: "广东省深圳市福田区"//完整地址
// city: "深圳市"//市级名称
// code: "440304"//地区编码
// district: "福田区"//区县级名称
// province: "广东省"//省级名称
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) Примечание. Провинциальные, муниципальные и районные связи на трех уровнях передают соответствующий код административной единицы, чтобы получить список административных единиц более низкого уровня; Если код административной единицы не передается, получите список провинциальных единиц по умолчанию
import { searchList } from '@pikaz/location'
searchList ( {
code : '110000' ,
} )
. then ( ( res ) => {
// 返回数据结构: [
// {
// "code":"110101",//该地区编码
// "name":"东城区",//该地区名称
// },
// {
// "code":"110102",//该地区编码
// "name":"西城区",//该地区名称
// }
// ]
} )
. catch ( ( err ) => {
console . log ( err )
} ) Описание: Получите подробную информацию об одном регионе: код региона, широту и долготу, имя, имя пинеин
import { searchCodeDetail } from '@pikaz/location'
searchCodeDetail ( {
code : '440304' ,
} )
. then ( ( res ) => {
// {
// "code": "440304", //该地区编码
// "location": { //该地区经纬度
// "latitude": 22.521541,
// "longitude": 114.05498
// },
// "name": "福田区", //该地区名称
// "pinyin": "futianqu" //该地区拼音
// }
} )
. catch ( ( err ) => {
console . log ( err )
} ) ПРИМЕЧАНИЕ. Если включена, подробная информация о адресах будет возвращена в исходные данные возврата.
import { getH5Location } from '@pikaz/location'
getH5Location ( {
// 获取详细地址信息
detail : true ,
} )
. then ( ( res ) => {
// {
// address: "广东省深圳市福田区" //完整地址
// city: "深圳市" //市级名称
// code: "440304" //地区编码
// district: "福田区" //区县级名称
// latitude: 22.547 //区县级纬度
// longitude: 114.085947 //区县级经度
// province: "广东省" //省级名称
// "detail": { //详细地址信息
// "province": {
// "code": "440000", //省级地区编码
// "location": { //省级地区经纬度
// "latitude": 23.13171,
// "longitude": 113.26627
// },
// "name": "广东省", //省级名称
// "pinyin": "guangdong" //省级名称拼音
// },
// "city": {
// "code": "440300", //市级地区编码
// "location": { //市级地区经纬度
// "latitude": 22.54286,
// "longitude": 114.05956
// },
// "name": "深圳市", //市级名称
// "pinyin": "shenzhen" //市级名称拼音
// },
// "district": {
// "code": "440304", //区县级地区编码
// "location": { //区县级地区经纬度
// "latitude": 22.521541,
// "longitude": 114.05498
// },
// "name": "福田区", //区县级名称
// "pinyin": "futianqu" //区县级名称拼音
// }
// }
} )
. catch ( ( err ) => {
console . log ( err )
} )