import { DataModel, transformArrayDataModel, type NewDataModel } from '@imengyu/js-request-transform'; import { MapServerRequestModule } from '../RequestModules'; import { type QueryParams } from '@imengyu/imengyu-utils'; export class Poi extends DataModel { constructor() { super(Poi, "Poi"); this.setNameMapperCase('Camel', 'Snake'); this._convertTable = { location: { clientSide: 'splitCommaArray' }, }; this._convertKeyType = (key, direction) => { if (key.endsWith('Time')) return { clientSide: 'date', serverSide: 'string', }; return undefined; }; } name = ''; location = [] as number[]; type = ''; address = ''; cityname = ''; } export class MapApi extends MapServerRequestModule { constructor() { super(); } /** * 逆地址编码,根据经纬度获取详细地址 * @param lat 纬度 * @param lng 经度 * @returns 详细地址 */ async regeo(lat: number, lng: number) { const data = (await this.post(`https://subserver.wenlvti.net/localgeo/localGeo/getGeo`, `逆地址编码`, { lat: lat.toFixed(6), lng: lng.toFixed(6), })); return data.raw as { formatAddress: string, province: string, city: string, district: string, street: string, adcode: string, level: null } } loadCityData() { return new Promise((resolve, reject) => { uni.request({ url: 'https://mn.wenlvti.net/app_static/xiangyuan/data/ChinaCityData.slim.json', method: 'GET', success(result) { if (result.statusCode === 200) { resolve(result.data); } else { reject(new Error(`请求失败,状态码:${result.statusCode}`)); } }, fail(error) { reject(error); } }) }); } loadCountryGeoJsonData() { return new Promise((resolve, reject) => { uni.request({ url: 'https://mn.wenlvti.net/app_static/xiangyuan/data/100000_full.json', method: 'GET', success(result) { if (result.statusCode === 200) { resolve(result.data); } else { reject(new Error(`请求失败,状态码:${result.statusCode}`)); } }, fail(error) { reject(error); } }) }); } loadGeoJsonData(code: string) { return new Promise((resolve, reject) => { uni.request({ url: `https://mn.wenlvti.net/app_static/xiangyuan/data/${code}_full.json`, method: 'GET', success(result) { if (result.statusCode === 200) { resolve(result.data); } else { reject(new Error(`请求失败,状态码:${result.statusCode}`)); } }, fail(error) { reject(error); } }) }); } } export default new MapApi();