| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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<Poi> {
- 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<DataModel> {
- constructor() {
- super();
- }
- /**
- * 逆地址编码,根据经纬度获取详细地址
- * @param lat 纬度
- * @param lng 经度
- * @returns 详细地址
- */
- async regeo(lat: number, lng: number) {
- const data = (await this.post<any>(`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();
|