搜索结果是英文,但搜索语言设置为德语

时间:2015-07-09 17:17:40

标签: android skmaps

我正在使用skobbler sdk进行离线地理编码。我使用德国的离线地图,我正在寻找德国境内的国家。我已将搜索语言设置为德语。作为一个例子,我正在寻找“Niedersachsen”。传递前几个字母,例如“Nie”使SearchManager找到“Niedersachsen”但在skSearchResult变量中名称为“Lower Saxony”。因此找到了正确的状态,但语言错误(英语而不是德语)。我怎么解决这个问题?这是我的搜索代码:

public class AddressSearchListener implements SKSearchListener {

    // current list level at which to search
    private String mapPackageName;
    private AddressSearchFragment addressSearchFragment;

    public AddressSearchListener() {
        Log.d("AddressSearchListener", "begin");
        this.mapPackageName = "DE";
    }

    public void setFragment(AddressSearchFragment addressSearchFragment) {
        this.addressSearchFragment = addressSearchFragment;
    }

    public void startSearch(long parentId, SKSearchManager.SKListLevel searchLevel, String s) {
        Log.d("AddressSearchListener", "startSearch begin");
        // get a search manager object
        SKSearchManager mgr = new SKSearchManager(this);
        // get a multi-step search object
        SKMultiStepSearchSettings searchSettings = new SKMultiStepSearchSettings();

        searchSettings.setSearchLanguage(SKMaps.SKLanguage.LANGUAGE_DE);
        // set the offline package in which to search
        // the France package in this case needs to be installed
        searchSettings.setOfflinePackageCode(mapPackageName);
        // set list level of the search
        searchSettings.setListLevel(searchLevel);
        // set maximum number of results to be received
        searchSettings.setMaxSearchResultsNumber(20);
        // set the id of the parent in which to search
        searchSettings.setParentIndex(parentId);
        // set a filter for the results
        searchSettings.setSearchTerm(s);
        // initiate the search
        Log.d("AddressSearchListener", "startSearch time " + System.currentTimeMillis());
        mgr.multistepSearch(searchSettings);
    }



    @Override
    public void onReceivedSearchResults(List<SKSearchResult> skSearchResults) {
        Log.d(getClass().getName(), "onReceivedSearchResults begin");
        Log.d("AddressSearchListener", "onReceivedSearchResults time " + System.currentTimeMillis());
        List<AddressSearchResultMeta> addressSearchResults = new ArrayList<AddressSearchResultMeta>();
        for (SKSearchResult skSearchResult : skSearchResults) {
            Log.d("onReceivedSearchResults", "result: " + skSearchResult);
            AddressSearchResultMeta addressSearchResultMeta = new AddressSearchResultMeta(skSearchResult);
            addressSearchResults.add(addressSearchResultMeta);
        }
        addressSearchFragment.passResults(addressSearchResults);

    }
}

1 个答案:

答案 0 :(得分:0)

问题只是Skobbler SDK中的一个错误。它在版本2.5.1中修复。