expo-gaode-map-navigation 2.0.12 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/android/build.gradle +8 -4
- package/android/src/main/AndroidManifest.xml +8 -0
- package/android/src/main/java/expo/modules/gaodemap/map/ExpoGaodeMapOfflineModule.kt +83 -15
- package/android/src/main/java/expo/modules/gaodemap/map/ExpoGaodeMapView.kt +13 -3
- package/android/src/main/java/expo/modules/gaodemap/map/managers/UIManager.kt +36 -39
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/ClusterView.kt +5 -2
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/HeatMapView.kt +122 -10
- package/android/src/main/java/expo/modules/gaodemap/map/overlays/HeatMapViewModule.kt +2 -2
- package/android/src/main/java/expo/modules/gaodemap/map/search/ExpoGaodeMapSearchModule.kt +751 -0
- package/build/map/ExpoGaodeMapOfflineModule.d.ts +5 -0
- package/build/map/ExpoGaodeMapOfflineModule.d.ts.map +1 -1
- package/build/map/ExpoGaodeMapOfflineModule.js.map +1 -1
- package/build/map/components/overlays/HeatMap.d.ts.map +1 -1
- package/build/map/components/overlays/HeatMap.js +21 -2
- package/build/map/components/overlays/HeatMap.js.map +1 -1
- package/build/map/index.d.ts +3 -0
- package/build/map/index.d.ts.map +1 -1
- package/build/map/index.js +3 -0
- package/build/map/index.js.map +1 -1
- package/build/map/search/ExpoGaodeMapSearch.types.d.ts +340 -0
- package/build/map/search/ExpoGaodeMapSearch.types.d.ts.map +1 -0
- package/build/map/search/ExpoGaodeMapSearch.types.js +19 -0
- package/build/map/search/ExpoGaodeMapSearch.types.js.map +1 -0
- package/build/map/search/ExpoGaodeMapSearchModule.d.ts +74 -0
- package/build/map/search/ExpoGaodeMapSearchModule.d.ts.map +1 -0
- package/build/map/search/ExpoGaodeMapSearchModule.js +47 -0
- package/build/map/search/ExpoGaodeMapSearchModule.js.map +1 -0
- package/build/map/search/index.d.ts +156 -0
- package/build/map/search/index.d.ts.map +1 -0
- package/build/map/search/index.js +171 -0
- package/build/map/search/index.js.map +1 -0
- package/build/map/types/map-view.types.d.ts +4 -2
- package/build/map/types/map-view.types.d.ts.map +1 -1
- package/build/map/types/map-view.types.js.map +1 -1
- package/build/map/utils/ErrorHandler.js +11 -11
- package/build/map/utils/ErrorHandler.js.map +1 -1
- package/build/map/utils/OfflineMapManager.d.ts +4 -0
- package/build/map/utils/OfflineMapManager.d.ts.map +1 -1
- package/build/map/utils/OfflineMapManager.js +6 -0
- package/build/map/utils/OfflineMapManager.js.map +1 -1
- package/expo-module.config.json +4 -2
- package/ios/ExpoGaodeMapNaviView.swift +16 -17
- package/ios/ExpoGaodeMapNavigation.podspec +2 -1
- package/ios/map/ExpoGaodeMapOfflineModule.swift +61 -0
- package/ios/map/ExpoGaodeMapSearchModule.swift +773 -0
- package/ios/map/modules/LocationManager.swift +9 -3
- package/ios/map/overlays/PolylineView.swift +6 -12
- package/package.json +1 -1
- package/plugin/build/withGaodeMap.js +12 -0
- package/android/src/main/java/expo/modules/gaodemap/navigation/managers/RouteCalculator.kt +0 -173
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
+
/**
|
|
3
|
+
* 在加载原生搜索模块前,强制校验基础地图组件是否已安装。
|
|
4
|
+
* 支持两种“基础地图提供者”:expo-gaode-map 或 expo-gaode-map-navigation(导航内置地图)。
|
|
5
|
+
* 这样可避免导航与核心包的 SDK 冲突时无法使用搜索模块的问题。
|
|
6
|
+
*/
|
|
7
|
+
function ensureBaseInstalled() {
|
|
8
|
+
try {
|
|
9
|
+
// 检查核心地图原生模块是否存在
|
|
10
|
+
// 无论是安装了 expo-gaode-map 还是 expo-gaode-map-navigation,
|
|
11
|
+
// 原生端都会注册名为 'ExpoGaodeMap' 的模块。
|
|
12
|
+
// 我们通过 requireNativeModule 来检测,避免在 JS 层面引入对包的硬依赖。
|
|
13
|
+
requireNativeModule('ExpoGaodeMap');
|
|
14
|
+
}
|
|
15
|
+
catch (_) {
|
|
16
|
+
const msg = '[expo-gaode-map-navigation] 未检测到基础地图原生模块。\n' +
|
|
17
|
+
'请确保已安装以下任一包并重新构建应用 (npx expo prebuild):\n' +
|
|
18
|
+
' - expo-gaode-map-navigation(导航包,内置地图能力)';
|
|
19
|
+
throw new Error(msg);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 高德地图搜索模块
|
|
24
|
+
*
|
|
25
|
+
* 提供 POI 搜索、周边搜索、沿途搜索、多边形搜索和输入提示功能
|
|
26
|
+
*/
|
|
27
|
+
let nativeModuleCache = null;
|
|
28
|
+
function getNativeModule() {
|
|
29
|
+
ensureBaseInstalled();
|
|
30
|
+
if (!nativeModuleCache) {
|
|
31
|
+
nativeModuleCache = requireNativeModule('ExpoGaodeMapSearch');
|
|
32
|
+
}
|
|
33
|
+
return nativeModuleCache;
|
|
34
|
+
}
|
|
35
|
+
function getBoundNativeValue(module, prop) {
|
|
36
|
+
const value = Reflect.get(module, prop, module);
|
|
37
|
+
if (typeof value === 'function') {
|
|
38
|
+
return (...args) => value.apply(module, args);
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
export default new Proxy({}, {
|
|
43
|
+
get(_target, prop) {
|
|
44
|
+
return getBoundNativeValue(getNativeModule(), prop);
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=ExpoGaodeMapSearchModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpoGaodeMapSearchModule.js","sourceRoot":"","sources":["../../../src/map/search/ExpoGaodeMapSearchModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAiBxD;;;;GAIG;AACH,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,iBAAiB;QACjB,sDAAsD;QACtD,gCAAgC;QAChC,kDAAkD;QAClD,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GACP,6CAA6C;YAC7C,2CAA2C;YAC3C,2CAA2C,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAwED;;;;GAIG;AACH,IAAI,iBAAiB,GAAwC,IAAI,CAAC;AAElE,SAAS,eAAe;IACtB,mBAAmB,EAAE,CAAC;IACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,mBAAmB,CAA+B,oBAAoB,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAoC,EACpC,IAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAC3B,KAA2C,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAe,IAAI,KAAK,CAAC,EAAkC,EAAE;IAC3D,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,mBAAmB,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC,CAAC","sourcesContent":["\nimport { requireNativeModule } from 'expo-modules-core';\n\nimport {\n AlongSearchOptions,\n InputTipsOptions,\n InputTipsResult,\n NearbySearchOptions,\n POI,\n POISearchOptions,\n PolygonSearchOptions,\n ReGeocodeOptions,\n ReGeocodeResult,\n RoutePOIType,\n SearchResult,\n} from './ExpoGaodeMapSearch.types';\n\n\n/**\n * 在加载原生搜索模块前,强制校验基础地图组件是否已安装。\n * 支持两种“基础地图提供者”:expo-gaode-map 或 expo-gaode-map-navigation(导航内置地图)。\n * 这样可避免导航与核心包的 SDK 冲突时无法使用搜索模块的问题。\n */\nfunction ensureBaseInstalled() {\n try {\n // 检查核心地图原生模块是否存在\n // 无论是安装了 expo-gaode-map 还是 expo-gaode-map-navigation,\n // 原生端都会注册名为 'ExpoGaodeMap' 的模块。\n // 我们通过 requireNativeModule 来检测,避免在 JS 层面引入对包的硬依赖。\n requireNativeModule('ExpoGaodeMap');\n } catch (_) {\n const msg =\n '[expo-gaode-map-navigation] 未检测到基础地图原生模块。\\n' +\n '请确保已安装以下任一包并重新构建应用 (npx expo prebuild):\\n' +\n ' - expo-gaode-map-navigation(导航包,内置地图能力)';\n throw new Error(msg);\n }\n}\n\ndeclare class ExpoGaodeMapSearchModuleType {\n /**\n * 初始化搜索模块(可选)\n *\n * 如果 API Key 已通过以下方式设置,则无需调用此方法:\n * 1. app.json 的 plugins 中配置了 iosKey(推荐)\n * 2. 调用了 ExpoGaodeMap.initSDK()\n * 3. 在 AppDelegate 中手动设置\n *\n * 此方法会在首次调用搜索功能时自动执行,手动调用可以提前检测配置问题。\n */\n initSearch(): void;\n /**\n * 搜索 POI(兴趣点)\n * 根据关键词和可选参数返回匹配的 POI 列表。\n *\n * @param options 搜索参数,包含关键词、城市、类型等\n * @returns 匹配的 POI 列表\n */\n searchPOI(options: POISearchOptions): Promise<SearchResult>;\n /**\n * 搜索周边 POI\n * 根据位置和半径返回周边的 POI 列表。\n *\n * @param options 搜索参数,包含位置、半径、类型等\n * @returns 周边的 POI 列表\n */\n searchNearby(options: NearbySearchOptions): Promise<SearchResult>;\n /**\n * 搜索沿途 POI\n * 根据路线和半径返回沿途的 POI 列表。\n *\n * @param options 搜索参数,包含路线、半径、类型等\n * @returns 沿途的 POI 列表\n */\n searchAlong(options: AlongSearchOptions): Promise<SearchResult>;\n /**\n * 搜索多边形内的 POI\n * 根据多边形区域返回其内的 POI 列表。\n *\n * @param options 搜索参数,包含多边形区域、类型等\n * @returns 多边形内的 POI 列表\n */\n searchPolygon(options: PolygonSearchOptions): Promise<SearchResult>;\n /**\n * 获取输入提示\n * 根据用户输入返回可能的搜索建议。\n *\n * @param options 输入提示参数,包含关键词、城市等\n * @returns 输入提示结果\n */\n getInputTips(options: InputTipsOptions): Promise<InputTipsResult>;\n /**\n * 逆地理编码\n * 根据经纬度返回地址信息。\n *\n * @param options 逆地理编码参数,包含经纬度等\n * @returns 逆地理编码结果\n */\n reGeocode(options: ReGeocodeOptions): Promise<ReGeocodeResult>;\n /**\n * 获取 POI 详情\n * 根据 POI ID 返回详细信息。\n *\n * @param id POI 唯一标识符\n * @returns POI 详情\n */\n getPoiDetail(id: string): Promise<POI>;\n}\n\n/**\n * 高德地图搜索模块\n *\n * 提供 POI 搜索、周边搜索、沿途搜索、多边形搜索和输入提示功能\n */\nlet nativeModuleCache: ExpoGaodeMapSearchModuleType | null = null;\n\nfunction getNativeModule(): ExpoGaodeMapSearchModuleType {\n ensureBaseInstalled();\n if (!nativeModuleCache) {\n nativeModuleCache = requireNativeModule<ExpoGaodeMapSearchModuleType>('ExpoGaodeMapSearch');\n }\n return nativeModuleCache;\n}\n\nfunction getBoundNativeValue(\n module: ExpoGaodeMapSearchModuleType,\n prop: PropertyKey\n): unknown {\n const value = Reflect.get(module as object, prop, module as object);\n if (typeof value === 'function') {\n return (...args: unknown[]) =>\n (value as (...fnArgs: unknown[]) => unknown).apply(module, args);\n }\n return value;\n}\n\nexport default new Proxy({} as ExpoGaodeMapSearchModuleType, {\n get(_target, prop) {\n return getBoundNativeValue(getNativeModule(), prop);\n },\n});\n\nexport type { RoutePOIType };\n"]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { Coordinates, POI, POISearchOptions, NearbySearchOptions, AlongSearchOptions, PolygonSearchOptions, InputTipsOptions, InputTip, SearchResult, InputTipsResult, ReGeocodeOptions, ReGeocodeResult, AddressComponent, Road, RoadCross, AOI, RoutePOIType } from './ExpoGaodeMapSearch.types';
|
|
2
|
+
/**
|
|
3
|
+
* 初始化搜索模块(可选)
|
|
4
|
+
*
|
|
5
|
+
* 如果 API Key 已通过以下方式设置,则无需调用此方法:
|
|
6
|
+
* 1. app.json 的 plugins 中配置了 iosKey(推荐)
|
|
7
|
+
* 2. 调用了 ExpoGaodeMap.initSDK()
|
|
8
|
+
* 3. 在 AppDelegate 中手动设置
|
|
9
|
+
*
|
|
10
|
+
* 此方法会在首次调用搜索功能时自动执行,手动调用可以提前检测配置问题。
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { initSearch } from 'expo-gaode-map-navigation';
|
|
15
|
+
*
|
|
16
|
+
* // 可选:提前初始化以检测问题
|
|
17
|
+
* initSearch();
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function initSearch(): void;
|
|
21
|
+
/**
|
|
22
|
+
* POI 搜索
|
|
23
|
+
*
|
|
24
|
+
* @param options 搜索选项
|
|
25
|
+
* @returns 搜索结果
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const result = await searchPOI({
|
|
30
|
+
* keyword: '酒店',
|
|
31
|
+
* city: '北京',
|
|
32
|
+
* pageSize: 20,
|
|
33
|
+
* pageNum: 1,
|
|
34
|
+
* });
|
|
35
|
+
* console.log('找到', result.total, '个结果');
|
|
36
|
+
* result.pois.forEach(poi => {
|
|
37
|
+
* console.log(poi.name, poi.address);
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function searchPOI(options: POISearchOptions): Promise<SearchResult>;
|
|
42
|
+
/**
|
|
43
|
+
* 周边搜索
|
|
44
|
+
*
|
|
45
|
+
* @param options 搜索选项
|
|
46
|
+
* @returns 搜索结果
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const result = await searchNearby({
|
|
51
|
+
* keyword: '餐厅',
|
|
52
|
+
* center: { latitude: 39.9, longitude: 116.4 },
|
|
53
|
+
* radius: 1000,
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function searchNearby(options: NearbySearchOptions): Promise<SearchResult>;
|
|
58
|
+
/**
|
|
59
|
+
* 沿途搜索
|
|
60
|
+
*
|
|
61
|
+
* @param options 搜索选项
|
|
62
|
+
* @returns 搜索结果
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const result = await searchAlong({
|
|
67
|
+
* keyword: '加油站',
|
|
68
|
+
* polyline: [
|
|
69
|
+
* { latitude: 39.9, longitude: 116.4 },
|
|
70
|
+
* { latitude: 39.91, longitude: 116.41 },
|
|
71
|
+
* ],
|
|
72
|
+
* range: 500,
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function searchAlong(options: AlongSearchOptions): Promise<SearchResult>;
|
|
77
|
+
/**
|
|
78
|
+
* 多边形搜索
|
|
79
|
+
*
|
|
80
|
+
* @param options 搜索选项
|
|
81
|
+
* @returns 搜索结果
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const result = await searchPolygon({
|
|
86
|
+
* keyword: '学校',
|
|
87
|
+
* polygon: [
|
|
88
|
+
* { latitude: 39.9, longitude: 116.4 },
|
|
89
|
+
* { latitude: 39.91, longitude: 116.4 },
|
|
90
|
+
* { latitude: 39.91, longitude: 116.41 },
|
|
91
|
+
* ],
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function searchPolygon(options: PolygonSearchOptions): Promise<SearchResult>;
|
|
96
|
+
/**
|
|
97
|
+
* 输入提示
|
|
98
|
+
*
|
|
99
|
+
* @param options 搜索选项
|
|
100
|
+
* @returns 提示结果
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const result = await getInputTips({
|
|
105
|
+
* keyword: '天安门',
|
|
106
|
+
* city: '北京',
|
|
107
|
+
* });
|
|
108
|
+
* result.tips.forEach(tip => {
|
|
109
|
+
* console.log(tip.name, tip.address);
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function getInputTips(options: InputTipsOptions): Promise<InputTipsResult>;
|
|
114
|
+
/**
|
|
115
|
+
* 逆地理编码(坐标转地址)
|
|
116
|
+
*
|
|
117
|
+
* @param options 逆地理编码选项
|
|
118
|
+
* @returns 逆地理编码结果
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* const result = await reGeocode({
|
|
123
|
+
* location: { latitude: 39.9, longitude: 116.4 },
|
|
124
|
+
* radius: 1000,
|
|
125
|
+
* });
|
|
126
|
+
* console.log(result.formattedAddress);
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare function reGeocode(options: ReGeocodeOptions): Promise<ReGeocodeResult>;
|
|
130
|
+
/**
|
|
131
|
+
* POI 详情查询
|
|
132
|
+
*
|
|
133
|
+
* @param id POI ID
|
|
134
|
+
* @returns POI 详情
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const poi = await getPoiDetail('B000A83M61');
|
|
139
|
+
* console.log(poi.name, poi.address);
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare function getPoiDetail(id: string): Promise<POI>;
|
|
143
|
+
export type { Coordinates, POI, POISearchOptions, NearbySearchOptions, AlongSearchOptions, PolygonSearchOptions, InputTipsOptions, InputTip, SearchResult, InputTipsResult, ReGeocodeOptions, ReGeocodeResult, AddressComponent, Road, RoadCross, AOI, RoutePOIType, };
|
|
144
|
+
export { SearchType } from './ExpoGaodeMapSearch.types';
|
|
145
|
+
declare const _default: {
|
|
146
|
+
initSearch: typeof initSearch;
|
|
147
|
+
searchPOI: typeof searchPOI;
|
|
148
|
+
searchNearby: typeof searchNearby;
|
|
149
|
+
searchAlong: typeof searchAlong;
|
|
150
|
+
searchPolygon: typeof searchPolygon;
|
|
151
|
+
getInputTips: typeof getInputTips;
|
|
152
|
+
reGeocode: typeof reGeocode;
|
|
153
|
+
getPoiDetail: typeof getPoiDetail;
|
|
154
|
+
};
|
|
155
|
+
export default _default;
|
|
156
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/map/search/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,GAAG,EACH,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAEtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAEpF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAExF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEtF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3D;AAGD,YAAY,EACV,WAAW,EACX,GAAG,EACH,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,GAAG,EACH,YAAY,GACb,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;;AAGxD,wBASE"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import ExpoGaodeMapSearchModule from './ExpoGaodeMapSearchModule';
|
|
2
|
+
/**
|
|
3
|
+
* 初始化搜索模块(可选)
|
|
4
|
+
*
|
|
5
|
+
* 如果 API Key 已通过以下方式设置,则无需调用此方法:
|
|
6
|
+
* 1. app.json 的 plugins 中配置了 iosKey(推荐)
|
|
7
|
+
* 2. 调用了 ExpoGaodeMap.initSDK()
|
|
8
|
+
* 3. 在 AppDelegate 中手动设置
|
|
9
|
+
*
|
|
10
|
+
* 此方法会在首次调用搜索功能时自动执行,手动调用可以提前检测配置问题。
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { initSearch } from 'expo-gaode-map-navigation';
|
|
15
|
+
*
|
|
16
|
+
* // 可选:提前初始化以检测问题
|
|
17
|
+
* initSearch();
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function initSearch() {
|
|
21
|
+
ExpoGaodeMapSearchModule.initSearch();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* POI 搜索
|
|
25
|
+
*
|
|
26
|
+
* @param options 搜索选项
|
|
27
|
+
* @returns 搜索结果
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const result = await searchPOI({
|
|
32
|
+
* keyword: '酒店',
|
|
33
|
+
* city: '北京',
|
|
34
|
+
* pageSize: 20,
|
|
35
|
+
* pageNum: 1,
|
|
36
|
+
* });
|
|
37
|
+
* console.log('找到', result.total, '个结果');
|
|
38
|
+
* result.pois.forEach(poi => {
|
|
39
|
+
* console.log(poi.name, poi.address);
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export async function searchPOI(options) {
|
|
44
|
+
return await ExpoGaodeMapSearchModule.searchPOI(options);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 周边搜索
|
|
48
|
+
*
|
|
49
|
+
* @param options 搜索选项
|
|
50
|
+
* @returns 搜索结果
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const result = await searchNearby({
|
|
55
|
+
* keyword: '餐厅',
|
|
56
|
+
* center: { latitude: 39.9, longitude: 116.4 },
|
|
57
|
+
* radius: 1000,
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export async function searchNearby(options) {
|
|
62
|
+
return await ExpoGaodeMapSearchModule.searchNearby(options);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 沿途搜索
|
|
66
|
+
*
|
|
67
|
+
* @param options 搜索选项
|
|
68
|
+
* @returns 搜索结果
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const result = await searchAlong({
|
|
73
|
+
* keyword: '加油站',
|
|
74
|
+
* polyline: [
|
|
75
|
+
* { latitude: 39.9, longitude: 116.4 },
|
|
76
|
+
* { latitude: 39.91, longitude: 116.41 },
|
|
77
|
+
* ],
|
|
78
|
+
* range: 500,
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export async function searchAlong(options) {
|
|
83
|
+
return await ExpoGaodeMapSearchModule.searchAlong(options);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 多边形搜索
|
|
87
|
+
*
|
|
88
|
+
* @param options 搜索选项
|
|
89
|
+
* @returns 搜索结果
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const result = await searchPolygon({
|
|
94
|
+
* keyword: '学校',
|
|
95
|
+
* polygon: [
|
|
96
|
+
* { latitude: 39.9, longitude: 116.4 },
|
|
97
|
+
* { latitude: 39.91, longitude: 116.4 },
|
|
98
|
+
* { latitude: 39.91, longitude: 116.41 },
|
|
99
|
+
* ],
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export async function searchPolygon(options) {
|
|
104
|
+
return await ExpoGaodeMapSearchModule.searchPolygon(options);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 输入提示
|
|
108
|
+
*
|
|
109
|
+
* @param options 搜索选项
|
|
110
|
+
* @returns 提示结果
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const result = await getInputTips({
|
|
115
|
+
* keyword: '天安门',
|
|
116
|
+
* city: '北京',
|
|
117
|
+
* });
|
|
118
|
+
* result.tips.forEach(tip => {
|
|
119
|
+
* console.log(tip.name, tip.address);
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export async function getInputTips(options) {
|
|
124
|
+
return await ExpoGaodeMapSearchModule.getInputTips(options);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 逆地理编码(坐标转地址)
|
|
128
|
+
*
|
|
129
|
+
* @param options 逆地理编码选项
|
|
130
|
+
* @returns 逆地理编码结果
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const result = await reGeocode({
|
|
135
|
+
* location: { latitude: 39.9, longitude: 116.4 },
|
|
136
|
+
* radius: 1000,
|
|
137
|
+
* });
|
|
138
|
+
* console.log(result.formattedAddress);
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export async function reGeocode(options) {
|
|
142
|
+
return await ExpoGaodeMapSearchModule.reGeocode(options);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* POI 详情查询
|
|
146
|
+
*
|
|
147
|
+
* @param id POI ID
|
|
148
|
+
* @returns POI 详情
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* const poi = await getPoiDetail('B000A83M61');
|
|
153
|
+
* console.log(poi.name, poi.address);
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export async function getPoiDetail(id) {
|
|
157
|
+
return await ExpoGaodeMapSearchModule.getPoiDetail(id);
|
|
158
|
+
}
|
|
159
|
+
export { SearchType } from './ExpoGaodeMapSearch.types';
|
|
160
|
+
// 默认导出
|
|
161
|
+
export default {
|
|
162
|
+
initSearch,
|
|
163
|
+
searchPOI,
|
|
164
|
+
searchNearby,
|
|
165
|
+
searchAlong,
|
|
166
|
+
searchPolygon,
|
|
167
|
+
getInputTips,
|
|
168
|
+
reGeocode,
|
|
169
|
+
getPoiDetail,
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/map/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAqBlE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU;IACxB,wBAAwB,CAAC,UAAU,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,OAAO,MAAM,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,OAAO,MAAM,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,OAAO,MAAM,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,OAAO,MAAM,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,OAAO,MAAM,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAuBD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO;AACP,eAAe;IACb,UAAU;IACV,SAAS;IACT,YAAY;IACZ,WAAW;IACX,aAAa;IACb,YAAY;IACZ,SAAS;IACT,YAAY;CACb,CAAC","sourcesContent":["import ExpoGaodeMapSearchModule from './ExpoGaodeMapSearchModule';\nimport type {\n Coordinates,\n POI,\n POISearchOptions,\n NearbySearchOptions,\n AlongSearchOptions,\n PolygonSearchOptions,\n InputTipsOptions,\n InputTip,\n SearchResult,\n InputTipsResult,\n ReGeocodeOptions,\n ReGeocodeResult,\n AddressComponent,\n Road,\n RoadCross,\n AOI,\n RoutePOIType,\n} from './ExpoGaodeMapSearch.types';\n\n/**\n * 初始化搜索模块(可选)\n *\n * 如果 API Key 已通过以下方式设置,则无需调用此方法:\n * 1. app.json 的 plugins 中配置了 iosKey(推荐)\n * 2. 调用了 ExpoGaodeMap.initSDK()\n * 3. 在 AppDelegate 中手动设置\n *\n * 此方法会在首次调用搜索功能时自动执行,手动调用可以提前检测配置问题。\n *\n * @example\n * ```typescript\n * import { initSearch } from 'expo-gaode-map-navigation';\n *\n * // 可选:提前初始化以检测问题\n * initSearch();\n * ```\n */\nexport function initSearch(): void {\n ExpoGaodeMapSearchModule.initSearch();\n}\n\n/**\n * POI 搜索\n * \n * @param options 搜索选项\n * @returns 搜索结果\n * \n * @example\n * ```typescript\n * const result = await searchPOI({\n * keyword: '酒店',\n * city: '北京',\n * pageSize: 20,\n * pageNum: 1,\n * });\n * console.log('找到', result.total, '个结果');\n * result.pois.forEach(poi => {\n * console.log(poi.name, poi.address);\n * });\n * ```\n */\nexport async function searchPOI(options: POISearchOptions): Promise<SearchResult> {\n return await ExpoGaodeMapSearchModule.searchPOI(options);\n}\n\n/**\n * 周边搜索\n * \n * @param options 搜索选项\n * @returns 搜索结果\n * \n * @example\n * ```typescript\n * const result = await searchNearby({\n * keyword: '餐厅',\n * center: { latitude: 39.9, longitude: 116.4 },\n * radius: 1000,\n * });\n * ```\n */\nexport async function searchNearby(options: NearbySearchOptions): Promise<SearchResult> {\n return await ExpoGaodeMapSearchModule.searchNearby(options);\n}\n\n/**\n * 沿途搜索\n * \n * @param options 搜索选项\n * @returns 搜索结果\n * \n * @example\n * ```typescript\n * const result = await searchAlong({\n * keyword: '加油站',\n * polyline: [\n * { latitude: 39.9, longitude: 116.4 },\n * { latitude: 39.91, longitude: 116.41 },\n * ],\n * range: 500,\n * });\n * ```\n */\nexport async function searchAlong(options: AlongSearchOptions): Promise<SearchResult> {\n return await ExpoGaodeMapSearchModule.searchAlong(options);\n}\n\n/**\n * 多边形搜索\n * \n * @param options 搜索选项\n * @returns 搜索结果\n * \n * @example\n * ```typescript\n * const result = await searchPolygon({\n * keyword: '学校',\n * polygon: [\n * { latitude: 39.9, longitude: 116.4 },\n * { latitude: 39.91, longitude: 116.4 },\n * { latitude: 39.91, longitude: 116.41 },\n * ],\n * });\n * ```\n */\nexport async function searchPolygon(options: PolygonSearchOptions): Promise<SearchResult> {\n return await ExpoGaodeMapSearchModule.searchPolygon(options);\n}\n\n/**\n * 输入提示\n * \n * @param options 搜索选项\n * @returns 提示结果\n * \n * @example\n * ```typescript\n * const result = await getInputTips({\n * keyword: '天安门',\n * city: '北京',\n * });\n * result.tips.forEach(tip => {\n * console.log(tip.name, tip.address);\n * });\n * ```\n */\nexport async function getInputTips(options: InputTipsOptions): Promise<InputTipsResult> {\n return await ExpoGaodeMapSearchModule.getInputTips(options);\n}\n\n/**\n * 逆地理编码(坐标转地址)\n * \n * @param options 逆地理编码选项\n * @returns 逆地理编码结果\n * \n * @example\n * ```typescript\n * const result = await reGeocode({\n * location: { latitude: 39.9, longitude: 116.4 },\n * radius: 1000,\n * });\n * console.log(result.formattedAddress);\n * ```\n */\nexport async function reGeocode(options: ReGeocodeOptions): Promise<ReGeocodeResult> {\n return await ExpoGaodeMapSearchModule.reGeocode(options);\n}\n\n/**\n * POI 详情查询\n * \n * @param id POI ID\n * @returns POI 详情\n * \n * @example\n * ```typescript\n * const poi = await getPoiDetail('B000A83M61');\n * console.log(poi.name, poi.address);\n * ```\n */\nexport async function getPoiDetail(id: string): Promise<POI> {\n return await ExpoGaodeMapSearchModule.getPoiDetail(id);\n}\n\n// 导出类型和枚举\nexport type {\n Coordinates,\n POI,\n POISearchOptions,\n NearbySearchOptions,\n AlongSearchOptions,\n PolygonSearchOptions,\n InputTipsOptions,\n InputTip,\n SearchResult,\n InputTipsResult,\n ReGeocodeOptions,\n ReGeocodeResult,\n AddressComponent,\n Road,\n RoadCross,\n AOI,\n RoutePOIType,\n};\n\nexport { SearchType } from './ExpoGaodeMapSearch.types';\n\n// 默认导出\nexport default {\n initSearch,\n searchPOI,\n searchNearby,\n searchAlong,\n searchPolygon,\n getInputTips,\n reGeocode,\n getPoiDetail,\n};\n"]}
|
|
@@ -95,14 +95,14 @@ export interface MapViewProps {
|
|
|
95
95
|
anchorV?: number;
|
|
96
96
|
/**
|
|
97
97
|
* 定位蓝点展现模式 @platform android
|
|
98
|
-
* @default '
|
|
98
|
+
* @default 'LOCATION_ROTATE_NO_CENTER' (连续定位、定位点旋转、不移动到中心)
|
|
99
99
|
*
|
|
100
100
|
* 🧭 **方向指示说明**:
|
|
101
101
|
* - Android 通过 locationType 实现方向指示(定位点依照设备方向旋转)
|
|
102
102
|
* - iOS 通过 showsHeadingIndicator 实现方向指示(显示扇形方向指示器)
|
|
103
103
|
*
|
|
104
104
|
* 📱 **Android 方向指示模式**(推荐使用以下两种):
|
|
105
|
-
* - 'LOCATION_ROTATE':
|
|
105
|
+
* - 'LOCATION_ROTATE': 定位点依照设备方向旋转,视角跟随移动到中心
|
|
106
106
|
* - 'LOCATION_ROTATE_NO_CENTER': 定位点依照设备方向旋转,视角不移动到中心 ⭐
|
|
107
107
|
*
|
|
108
108
|
* 🗺️ **其他模式**:
|
|
@@ -112,6 +112,8 @@ export interface MapViewProps {
|
|
|
112
112
|
* - 'MAP_ROTATE': 地图依照设备方向旋转(而非定位点旋转)
|
|
113
113
|
* - 'FOLLOW_NO_CENTER': 连续定位、不移动到中心,定位点不旋转
|
|
114
114
|
* - 'MAP_ROTATE_NO_CENTER': 地图依照设备方向旋转,不移动到中心
|
|
115
|
+
*
|
|
116
|
+
* 显式设置 locationType 时,会覆盖 followUserLocation 的默认模式选择。
|
|
115
117
|
*/
|
|
116
118
|
locationType?: 'SHOW' | 'LOCATE' | 'FOLLOW' | 'MAP_ROTATE' | 'LOCATION_ROTATE' | 'LOCATION_ROTATE_NO_CENTER' | 'FOLLOW_NO_CENTER' | 'MAP_ROTATE_NO_CENTER';
|
|
117
119
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-view.types.d.ts","sourceRoot":"","sources":["../../../src/map/types/map-view.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9H,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,0BAA0B,CAAC,EAAE;QAC3B,4BAA4B;QAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,2CAA2C;QAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,2CAA2C;QAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B,cAAc;QACd,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,yBAAyB;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iDAAiD;QACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,4CAA4C;QAC5C,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACrC,8CAA8C;QAC9C,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACvC,iDAAiD;QACjD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;WAIG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB
|
|
1
|
+
{"version":3,"file":"map-view.types.d.ts","sourceRoot":"","sources":["../../../src/map/types/map-view.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-view.types.js","sourceRoot":"","sources":["../../../src/map/types/map-view.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图视图相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { StyleProp, ViewStyle, NativeSyntheticEvent } from 'react-native';\nimport type { CameraPosition, CameraUpdate, LatLng, LatLngBounds, MapPoi, MapType, Point, LatLngPoint } from './common.types';\nimport type { Coordinates, ReGeocode, HeadingUpdate } from './location.types';\nimport type { FitToCoordinatesOptions } from './route-playback.types';\n\n/**\n * 定位事件数据\n */\nexport interface LocationEvent {\n /**\n * 纬度\n */\n latitude: number;\n \n /**\n * 经度\n */\n longitude: number;\n \n /**\n * 定位精度(米)\n */\n accuracy: number;\n}\n\n\n/**\n * 地图相机事件\n */\nexport interface CameraEvent {\n /**\n * 相机位置\n */\n cameraPosition: CameraPosition;\n\n /**\n * 可见区域边界\n */\n latLngBounds: LatLngBounds;\n}\n\n/**\n * 地图视图属性\n */\nexport interface MapViewProps {\n /**\n * 地图类型\n */\n mapType?: MapType;\n\n /**\n * 初始相机位置\n */\n initialCameraPosition?: CameraPosition;\n\n /**\n * 是否显示当前定位\n */\n myLocationEnabled?: boolean;\n\n /**\n * 是否跟随用户位置\n * @default false\n */\n followUserLocation?: boolean;\n\n /**\n * 定位蓝点配置\n */\n userLocationRepresentation?: {\n /** 精度圈是否显示 @default true */\n showsAccuracyRing?: boolean;\n /** 是否显示方向指示 @default true @platform ios */\n showsHeadingIndicator?: boolean;\n /** 精度圈填充颜色 支持 '#RRGGBB'、'red' 或 ARGB 数字 */\n fillColor?: string | number;\n /** 精度圈边线颜色 */\n strokeColor?: string | number;\n /** 精度圈边线宽度 @default 0 */\n lineWidth?: number;\n /** 内部蓝色圆点是否使用律动效果 @default true @platform ios */\n enablePulseAnimation?: boolean;\n /** 定位点背景色 @default 'white' @platform ios */\n locationDotBgColor?: string | number;\n /** 定位点蓝色圆点颜色 @default 'blue' @platform ios */\n locationDotFillColor?: string | number;\n /** 定位图标 支持网络图片(http/https)、本地文件(file://)或资源名称 */\n image?: string;\n /** 定位图标宽度(像素) */\n imageWidth?: number;\n /** 定位图标高度(像素) */\n imageHeight?: number;\n /**\n * 是否显示定位蓝点 @default true\n * - iOS: 对应 mapView.showsUserLocation\n * - Android: 对应 MyLocationStyle.showMyLocation() (5.1.0+)\n */\n showMyLocation?: boolean;\n /** 定位图标锚点 U 坐标 (0.0-1.0) @platform android */\n anchorU?: number;\n /** 定位图标锚点 V 坐标 (0.0-1.0) @platform android */\n anchorV?: number;\n /**\n * 定位蓝点展现模式 @platform android\n * @default '
|
|
1
|
+
{"version":3,"file":"map-view.types.js","sourceRoot":"","sources":["../../../src/map/types/map-view.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * 高德地图视图相关类型定义\n * 基于 Expo Modules API\n */\n\nimport type { StyleProp, ViewStyle, NativeSyntheticEvent } from 'react-native';\nimport type { CameraPosition, CameraUpdate, LatLng, LatLngBounds, MapPoi, MapType, Point, LatLngPoint } from './common.types';\nimport type { Coordinates, ReGeocode, HeadingUpdate } from './location.types';\nimport type { FitToCoordinatesOptions } from './route-playback.types';\n\n/**\n * 定位事件数据\n */\nexport interface LocationEvent {\n /**\n * 纬度\n */\n latitude: number;\n \n /**\n * 经度\n */\n longitude: number;\n \n /**\n * 定位精度(米)\n */\n accuracy: number;\n}\n\n\n/**\n * 地图相机事件\n */\nexport interface CameraEvent {\n /**\n * 相机位置\n */\n cameraPosition: CameraPosition;\n\n /**\n * 可见区域边界\n */\n latLngBounds: LatLngBounds;\n}\n\n/**\n * 地图视图属性\n */\nexport interface MapViewProps {\n /**\n * 地图类型\n */\n mapType?: MapType;\n\n /**\n * 初始相机位置\n */\n initialCameraPosition?: CameraPosition;\n\n /**\n * 是否显示当前定位\n */\n myLocationEnabled?: boolean;\n\n /**\n * 是否跟随用户位置\n * @default false\n */\n followUserLocation?: boolean;\n\n /**\n * 定位蓝点配置\n */\n userLocationRepresentation?: {\n /** 精度圈是否显示 @default true */\n showsAccuracyRing?: boolean;\n /** 是否显示方向指示 @default true @platform ios */\n showsHeadingIndicator?: boolean;\n /** 精度圈填充颜色 支持 '#RRGGBB'、'red' 或 ARGB 数字 */\n fillColor?: string | number;\n /** 精度圈边线颜色 */\n strokeColor?: string | number;\n /** 精度圈边线宽度 @default 0 */\n lineWidth?: number;\n /** 内部蓝色圆点是否使用律动效果 @default true @platform ios */\n enablePulseAnimation?: boolean;\n /** 定位点背景色 @default 'white' @platform ios */\n locationDotBgColor?: string | number;\n /** 定位点蓝色圆点颜色 @default 'blue' @platform ios */\n locationDotFillColor?: string | number;\n /** 定位图标 支持网络图片(http/https)、本地文件(file://)或资源名称 */\n image?: string;\n /** 定位图标宽度(像素) */\n imageWidth?: number;\n /** 定位图标高度(像素) */\n imageHeight?: number;\n /**\n * 是否显示定位蓝点 @default true\n * - iOS: 对应 mapView.showsUserLocation\n * - Android: 对应 MyLocationStyle.showMyLocation() (5.1.0+)\n */\n showMyLocation?: boolean;\n /** 定位图标锚点 U 坐标 (0.0-1.0) @platform android */\n anchorU?: number;\n /** 定位图标锚点 V 坐标 (0.0-1.0) @platform android */\n anchorV?: number;\n /**\n * 定位蓝点展现模式 @platform android\n * @default 'LOCATION_ROTATE_NO_CENTER' (连续定位、定位点旋转、不移动到中心)\n *\n * 🧭 **方向指示说明**:\n * - Android 通过 locationType 实现方向指示(定位点依照设备方向旋转)\n * - iOS 通过 showsHeadingIndicator 实现方向指示(显示扇形方向指示器)\n *\n * 📱 **Android 方向指示模式**(推荐使用以下两种):\n * - 'LOCATION_ROTATE': 定位点依照设备方向旋转,视角跟随移动到中心\n * - 'LOCATION_ROTATE_NO_CENTER': 定位点依照设备方向旋转,视角不移动到中心 ⭐\n *\n * 🗺️ **其他模式**:\n * - 'SHOW': 只定位一次\n * - 'LOCATE': 定位一次,且将视角移动到地图中心点\n * - 'FOLLOW': 连续定位、跟随移动,但定位点不旋转\n * - 'MAP_ROTATE': 地图依照设备方向旋转(而非定位点旋转)\n * - 'FOLLOW_NO_CENTER': 连续定位、不移动到中心,定位点不旋转\n * - 'MAP_ROTATE_NO_CENTER': 地图依照设备方向旋转,不移动到中心\n *\n * 显式设置 locationType 时,会覆盖 followUserLocation 的默认模式选择。\n */\n locationType?: 'SHOW' | 'LOCATE' | 'FOLLOW' | 'MAP_ROTATE' | 'LOCATION_ROTATE' |\n 'LOCATION_ROTATE_NO_CENTER' | 'FOLLOW_NO_CENTER' | 'MAP_ROTATE_NO_CENTER';\n };\n\n /**\n * 是否显示室内地图\n * \n */\n indoorViewEnabled?: boolean;\n\n /**\n * 是否显示3D建筑\n */\n buildingsEnabled?: boolean;\n\n /**\n * 是否显示标注\n */\n labelsEnabled?: boolean;\n\n /**\n * 是否显示指南针\n */\n compassEnabled?: boolean;\n\n /**\n * 是否显示缩放按钮\n * @platform android\n */\n zoomControlsEnabled?: boolean;\n\n /**\n * 是否显示比例尺\n */\n scaleControlsEnabled?: boolean;\n\n /**\n * 是否显示定位按钮\n * @platform android\n */\n myLocationButtonEnabled?: boolean;\n\n /**\n * 是否显示路况\n */\n trafficEnabled?: boolean;\n\n /**\n * 最大缩放级别\n */\n maxZoom?: number;\n\n /**\n * 最小缩放级别\n */\n minZoom?: number;\n\n /**\n * 是否启用缩放手势\n */\n zoomGesturesEnabled?: boolean;\n\n /**\n * 是否启用滑动手势\n */\n scrollGesturesEnabled?: boolean;\n\n /**\n * 是否启用旋转手势\n */\n rotateGesturesEnabled?: boolean;\n\n /**\n * 是否启用倾斜手势\n */\n tiltGesturesEnabled?: boolean;\n\n /**\n * 定位的最小更新距离(米)\n * @platform ios\n */\n distanceFilter?: number;\n\n /**\n * 最小更新角度(度)\n * @platform ios\n */\n headingFilter?: number;\n\n /**\n * 是否启用国内外地图自动切换\n * - true: 当中心点在国外时自动切换到苹果地图(iOS),国内时切换回高德地图\n * - false: 始终使用高德地图\n * @platform ios 当前仅支持 iOS 安卓因为需要使用 Google Maps SDK和谷歌服务\n * @default false\n */\n worldMapSwitchEnabled?: boolean;\n\n /**\n * 自定义地图样式\n *\n * 支持两种方式:\n * 1. 在线样式:提供 styleId(从高德开放平台获取)\n * 2. 本地样式:提供 styleDataPath 和可选的 extraStyleDataPath\n *\n * @example\n * // 使用在线样式\n * customMapStyle={{ styleId: \"your-style-id\" }}\n *\n * @example\n * // 使用本地样式文件\n * customMapStyle={{\n * styleDataPath: \"path/to/style.data\",\n * extraStyleDataPath: \"path/to/extra.data\"\n * }}\n */\n customMapStyle?: {\n /** 在线样式ID(从高德开放平台获取) */\n styleId?: string;\n /** 本地样式文件路径 */\n styleDataPath?: string;\n /** 额外样式文件路径(可选) */\n extraStyleDataPath?: string;\n };\n\n /**\n * 样式\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * 点击地图事件\n */\n onMapPress?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 点击标注点事件\n */\n onPressPoi?: (event: NativeSyntheticEvent<MapPoi>) => void;\n\n /**\n * 长按地图事件\n */\n onMapLongPress?: (event: NativeSyntheticEvent<LatLng>) => void;\n\n /**\n * 地图状态改变事件(实时触发)\n * 可配合 `cameraEventThrottleMs` 控制事件频率\n */\n onCameraMove?: (event: NativeSyntheticEvent<CameraEvent>) => void;\n\n /**\n * 地图移动事件节流间隔(毫秒)\n * `0` 表示不节流\n * @default 32\n */\n cameraEventThrottleMs?: number;\n\n /**\n * 地图状态改变完成事件\n */\n onCameraIdle?: (event: NativeSyntheticEvent<CameraEvent>) => void;\n\n /**\n * 地图加载完成事件\n */\n onLoad?: (event: NativeSyntheticEvent<{}>) => void;\n\n /**\n * 地图定位更新事件\n */\n onLocation?: (event: NativeSyntheticEvent<LocationEvent>) => void;\n\n /**\n * 子组件\n */\n children?: React.ReactNode;\n}\n\n\n/**\n * 地图视图方法\n */\nexport interface MapViewMethods {\n /**\n * 移动相机\n * @param cameraPosition 目标相机位置\n * @param duration 动画时长(毫秒)\n */\n moveCamera(cameraPosition: CameraUpdate, duration?: number): Promise<void>;\n\n /**\n * 将屏幕坐标转换为地理坐标\n * @param point 屏幕坐标\n * @returns 地理坐标\n */\n getLatLng(point: Point): Promise<LatLng>;\n\n /**\n * 设置地图中心点\n * @param center 中心点\n * @param animated 是否启用动画\n */\n setCenter(center: LatLngPoint, animated?: boolean): Promise<void>;\n\n /**\n * 设置地图缩放级别\n * @param zoom 缩放级别\n * @param animated 是否启用动画\n */\n setZoom(zoom: number, animated?: boolean): Promise<void>;\n\n /**\n * 获取相机位置\n * @returns 相机位置\n */\n getCameraPosition(): Promise<CameraPosition>;\n\n /**\n * 截取地图快照\n * @returns 快照图片文件路径\n */\n takeSnapshot(): Promise<string>;\n\n /**\n * 根据坐标集合自动移动相机\n */\n fitToCoordinates(points: LatLngPoint[], options?: FitToCoordinatesOptions): Promise<void>;\n}\n\n/**\n * MapView Ref 公开接口(用户使用)\n */\nexport interface MapViewRef {\n moveCamera(position: CameraUpdate, duration?: number): Promise<void>;\n getLatLng(point: Point): Promise<LatLng>;\n setCenter(center: LatLngPoint, animated?: boolean): Promise<void>;\n setZoom(zoom: number, animated?: boolean): Promise<void>;\n getCameraPosition(): Promise<CameraPosition>;\n takeSnapshot(): Promise<string>;\n fitToCoordinates(points: LatLngPoint[], options?: FitToCoordinatesOptions): Promise<void>;\n}\n\n/**\n * Expo 模块事件类型\n * 定义了原生模块可以触发的事件\n */\nexport type ExpoGaodeMapModuleEvents = {\n /**\n * 定位更新事件\n * 当位置发生变化时触发\n * @param location 位置信息,包含坐标和可选的逆地理编码信息\n */\n onLocationUpdate: (location: Coordinates | ReGeocode) => void;\n \n /**\n * 方向更新事件(iOS)\n * 当设备方向发生变化时触发\n * @param heading 方向信息\n */\n onHeadingUpdate: (heading: HeadingUpdate) => void;\n};\n"]}
|
|
@@ -70,7 +70,7 @@ export class ErrorHandler {
|
|
|
70
70
|
message: '高德地图 SDK 尚未初始化',
|
|
71
71
|
solution: `请在使用地图功能前先调用 initSDK():
|
|
72
72
|
|
|
73
|
-
import ExpoGaodeMapModule from 'expo-gaode-map';
|
|
73
|
+
import {ExpoGaodeMapModule} from 'expo-gaode-map-navigation';
|
|
74
74
|
|
|
75
75
|
useEffect(() => {
|
|
76
76
|
// 在组件挂载时初始化
|
|
@@ -97,7 +97,7 @@ useEffect(() => {
|
|
|
97
97
|
message: `调用高德地图前未完成隐私合规确认:${sceneText}`,
|
|
98
98
|
solution: `请在调用任何高德地图 SDK 接口前,先明确完成隐私告知与同意:
|
|
99
99
|
|
|
100
|
-
import ExpoGaodeMapModule from 'expo-gaode-map';
|
|
100
|
+
import {ExpoGaodeMapModule} from 'expo-gaode-map-navigation';
|
|
101
101
|
|
|
102
102
|
// 应用启动后,先展示你自己的隐私弹窗
|
|
103
103
|
ExpoGaodeMapModule.setPrivacyConfig({
|
|
@@ -153,7 +153,7 @@ ExpoGaodeMapModule.initSDK({
|
|
|
153
153
|
"expo": {
|
|
154
154
|
"plugins": [
|
|
155
155
|
[
|
|
156
|
-
"expo-gaode-map",
|
|
156
|
+
"expo-gaode-map-navigation",
|
|
157
157
|
{
|
|
158
158
|
"androidKey": "your-android-key",
|
|
159
159
|
"iosKey": "your-ios-key"
|
|
@@ -185,7 +185,7 @@ ExpoGaodeMapModule.initSDK({
|
|
|
185
185
|
solution: `请按以下步骤授予权限:
|
|
186
186
|
|
|
187
187
|
1️⃣ 请求权限:
|
|
188
|
-
import ExpoGaodeMapModule from 'expo-gaode-map';
|
|
188
|
+
import {ExpoGaodeMapModule} from 'expo-gaode-map-navigation';
|
|
189
189
|
|
|
190
190
|
const checkPermission = async () => {
|
|
191
191
|
// 检查权限状态
|
|
@@ -222,7 +222,7 @@ const checkPermission = async () => {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
3️⃣ Android 配置(Config Plugin 会自动添加):
|
|
225
|
-
使用 expo-gaode-map 的 Config Plugin 会自动添加必要的权限声明`,
|
|
225
|
+
使用 expo-gaode-map-navigation 的 Config Plugin 会自动添加必要的权限声明`,
|
|
226
226
|
docUrl: `${this.docBaseUrl}/guide/getting-started.html#权限配置`,
|
|
227
227
|
});
|
|
228
228
|
}
|
|
@@ -273,13 +273,13 @@ ExpoGaodeMapModule.setDesiredAccuracy(0); // 最佳精度`,
|
|
|
273
273
|
static nativeModuleUnavailable() {
|
|
274
274
|
return new GaodeMapError({
|
|
275
275
|
type: ErrorType.NATIVE_MODULE_UNAVAILABLE,
|
|
276
|
-
message: 'expo-gaode-map 原生模块不可用',
|
|
276
|
+
message: 'expo-gaode-map-navigation 原生模块不可用',
|
|
277
277
|
solution: `请检查以下步骤:
|
|
278
278
|
|
|
279
279
|
1️⃣ 确认已正确安装:
|
|
280
|
-
npm install expo-gaode-map
|
|
280
|
+
npm install expo-gaode-map-navigation
|
|
281
281
|
# 或
|
|
282
|
-
bun install expo-gaode-map
|
|
282
|
+
bun install expo-gaode-map-navigation
|
|
283
283
|
|
|
284
284
|
2️⃣ 重新构建原生代码:
|
|
285
285
|
npx expo prebuild --clean
|
|
@@ -287,7 +287,7 @@ npx expo run:android
|
|
|
287
287
|
npx expo run:ios
|
|
288
288
|
|
|
289
289
|
3️⃣ 检查 Expo 版本兼容性:
|
|
290
|
-
• expo-gaode-map 需要 Expo SDK 49+
|
|
290
|
+
• expo-gaode-map-navigation 需要 Expo SDK 49+
|
|
291
291
|
• 不支持 Expo Go,必须使用 Development Build
|
|
292
292
|
|
|
293
293
|
4️⃣ 检查是否与其他包冲突:
|
|
@@ -313,7 +313,7 @@ cd ios && pod deintegrate && pod install && cd ..`,
|
|
|
313
313
|
2️⃣ 使用 ref 获取地图实例后再调用方法
|
|
314
314
|
|
|
315
315
|
正确用法:
|
|
316
|
-
import { MapView, MapViewRef } from 'expo-gaode-map';
|
|
316
|
+
import { MapView, MapViewRef } from 'expo-gaode-map-navigation';
|
|
317
317
|
|
|
318
318
|
const App = () => {
|
|
319
319
|
const mapRef = useRef<MapViewRef>(null);
|
|
@@ -456,7 +456,7 @@ export class ErrorLogger {
|
|
|
456
456
|
static warn(message, details) {
|
|
457
457
|
if (!this.isEnabled)
|
|
458
458
|
return;
|
|
459
|
-
console.warn(`⚠️ expo-gaode-map: ${message}`, details || '');
|
|
459
|
+
console.warn(`⚠️ expo-gaode-map-navigation: ${message}`, details || '');
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
462
|
//# sourceMappingURL=ErrorHandler.js.map
|