如何在Flutter的HERE SDK中使用自定义POI与自定义数据层?
前置条件
- 已订阅Here Explore SDK套餐
- SDK已添加至项目并通过以下信息初始化:
- accessKeyId
- accessKeySecret
Future<void> initializeHERESDK() async { SdkContext.init(); const accessKeyId = "___access_key_id_here___"; const accessKeySecret = "___access_key_secret_here___"; final sdkOptions = SDKOptions.withAccessKeySecret( accessKeyId, accessKeySecret, ); try { await SDKNativeEngine.makeSharedInstance(sdkOptions); } on InstantiationException { throw Exception("Failed to initialize the HERE SDK."); } }
- 地图已正常显示
- 基于HERE默认数据的搜索及其他内置方法可正常工作
- 后端已将自定义POI上传至HERE企业后台作为自定义数据层
问题
我们无法使用搜索及其他内置方法操作自定义POI/自定义数据层,也无法将该图层添加至地图或进行获取。
已尝试方案
- 使用
searchEngine.searchByAddress()方法,传入SQL表达式作为查询参数:
Future<void> search() { final hereSearchEngine = SearchEngine(); final query = "SELECT * FROM poi WHERE T2A > 0 AND R > 0"; final GeoCoordinates areaCenter = GeoCoordinates( 52.0907, 5.1214, ); final SearchOptions searchOptions = SearchOptions(); searchOptions.maxItems = 100; hereSearchEngine.searchByAddress( AddressQuery.withAreaCenter( query, areaCenter, ), searchOptions, (error, places) { if (error != null) { print('$error'); } if (places == null || places.isEmpty) { print('NO PLACES'); } places?.forEach((place) { print('${place.title}'); }); }, ); }
已测试多种SQL表达式变体,但均返回SearchError.noResultsFound
- 尝试使用MapLayer与MapLayerBuilder,但无法指定后端已上传的自定义图层
- 尝试将自定义图层下载为.WKT文件并解析后使用本地数据,但该方案并非合理解决方案
技术疑问
- 如何直接在Flutter Here Explore SDK中使用包含自定义POI列表的自定义数据层?能否提供代码示例?
- 如何将自定义数据层添加至HereMap组件或HereMapController?
- 如何区分自定义POI与默认POI,使SDK内置方法基于自定义POI操作(如搜索自定义POI等)?
- 如何为自定义图层设置SQL表达式过滤器?
内容的提问来源于stack exchange,提问作者Olle Kyrychenko
相关产品推荐
相关产品推荐

