SKmaps 无法执行多级搜索
SKmaps failed to perform multi level search
我想在我的应用程序中进行多级离线搜索。
我按照官方 Skobbler 页面上的说明进行操作,唯一不同的是我没有下载法国地图,而是下载了怀俄明州地图。
它的离线包代码是USWY如果我是对的
-(void)prepareForSearch{
[SKSearchService sharedInstance].searchServiceDelegate = self;
[SKSearchService sharedInstance].searchResultsNumber = 500;
_listLevel = SKCountryList;
_searchSettings = [SKMultiStepSearchSettings multiStepSearchSettings];
_searchSettings.listLevel = _listLevel;
_searchSettings.offlinePackageCode = @"USWY";
_searchSettings.parentIndex=-1;
}
- (IBAction)searchAction:(UIButton *)sender {
_searchSettings.searchTerm = [NSString stringWithFormat:@"%@",_searchBar.text];
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:_searchSettings];
}
-(void)searchService:(SKSearchService *)searchService didRetrieveMultiStepSearchResults:(NSArray *)searchResults
{
if ([searchResults count] !=0 && _listLevel<SKInvalidListLevel){
if (_listLevel == SKCountryList) {
_listLevel = SKCityList;
}
else{
_listLevel++;
}
SKSearchResult *searchResult = searchResults[0];
SKMultiStepSearchSettings* multiStepSearchObject = [SKMultiStepSearchSettings multiStepSearchSettings];
multiStepSearchObject.listLevel = _listLevel++;
multiStepSearchObject.offlinePackageCode = _searchSettings.offlinePackageCode;
multiStepSearchObject.searchTerm = _searchBar.text;
multiStepSearchObject.parentIndex = searchResult.identifier;
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:multiStepSearchObject];
}
}
-(void)searchServiceDidFailToRetrieveMultiStepSearchResults:(SKSearchService *)searchService
{
NSLog(@"Multi Level Search failed");
}
无论我输入什么作为 searchTerm,我最终都会得到 "MultiLevel Search Failed"。
从这个屏幕截图中,您可以看到我的怀俄明州地图包包含在我的 SKMaps.bundle 中:
(此外,如果有人能回答我这个问题:我的应用程序和测试应用程序的模拟器文件夹中的版本控制不同,我从那里下载了一个离线包。因此,出于测试目的,我制作了两个文件夹并将怀俄明州的包放在两个文件夹中其中(20140807 和 20140910)。这有什么规定吗?)
可能是什么问题?
好的,几天后我设法找到了问题的根源。
首先,我发现我使用的是哪个版本,它是 20140910。
其次,由于某种原因,无法识别包含地图的整个文件夹。因此,我将整个 SKMaps.bundle 连同 Skobbler 团队提供的演示应用程序中的一些预捆绑地图一起放入我的项目中,现在一切正常。
我想在我的应用程序中进行多级离线搜索。 我按照官方 Skobbler 页面上的说明进行操作,唯一不同的是我没有下载法国地图,而是下载了怀俄明州地图。
它的离线包代码是USWY如果我是对的
-(void)prepareForSearch{
[SKSearchService sharedInstance].searchServiceDelegate = self;
[SKSearchService sharedInstance].searchResultsNumber = 500;
_listLevel = SKCountryList;
_searchSettings = [SKMultiStepSearchSettings multiStepSearchSettings];
_searchSettings.listLevel = _listLevel;
_searchSettings.offlinePackageCode = @"USWY";
_searchSettings.parentIndex=-1;
}
- (IBAction)searchAction:(UIButton *)sender {
_searchSettings.searchTerm = [NSString stringWithFormat:@"%@",_searchBar.text];
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:_searchSettings];
}
-(void)searchService:(SKSearchService *)searchService didRetrieveMultiStepSearchResults:(NSArray *)searchResults
{
if ([searchResults count] !=0 && _listLevel<SKInvalidListLevel){
if (_listLevel == SKCountryList) {
_listLevel = SKCityList;
}
else{
_listLevel++;
}
SKSearchResult *searchResult = searchResults[0];
SKMultiStepSearchSettings* multiStepSearchObject = [SKMultiStepSearchSettings multiStepSearchSettings];
multiStepSearchObject.listLevel = _listLevel++;
multiStepSearchObject.offlinePackageCode = _searchSettings.offlinePackageCode;
multiStepSearchObject.searchTerm = _searchBar.text;
multiStepSearchObject.parentIndex = searchResult.identifier;
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:multiStepSearchObject];
}
}
-(void)searchServiceDidFailToRetrieveMultiStepSearchResults:(SKSearchService *)searchService
{
NSLog(@"Multi Level Search failed");
}
无论我输入什么作为 searchTerm,我最终都会得到 "MultiLevel Search Failed"。
从这个屏幕截图中,您可以看到我的怀俄明州地图包包含在我的 SKMaps.bundle 中: (此外,如果有人能回答我这个问题:我的应用程序和测试应用程序的模拟器文件夹中的版本控制不同,我从那里下载了一个离线包。因此,出于测试目的,我制作了两个文件夹并将怀俄明州的包放在两个文件夹中其中(20140807 和 20140910)。这有什么规定吗?)
可能是什么问题?
好的,几天后我设法找到了问题的根源。
首先,我发现我使用的是哪个版本,它是 20140910。
其次,由于某种原因,无法识别包含地图的整个文件夹。因此,我将整个 SKMaps.bundle 连同 Skobbler 团队提供的演示应用程序中的一些预捆绑地图一起放入我的项目中,现在一切正常。