Search code examples
androidskmaps

Search Results are in english though Search Language set to german


I am doing offline geocoding with skobbler sdk. I use the offline map for Germany and I am searching for States within Germany. I have set the search language to German. As an example I am looking for "Niedersachsen". Passing the first few letters, e.g. "Nie" makes the SearchManager find "Niedersachsen" but in the skSearchResult variable the name is "Lower Saxony". So the correct State is found but in the wrong language(english instead of german). How can I solve this? Here is my piece of codes which does the search:

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);

    }
}

Solution

  • The issue was just a bug within Skobbler SDK. It is fixed in version 2.5.1.