Package globus.glsearch
Class GLSearch
- java.lang.Object
-
- globus.glmap.GLNativeObject
-
- globus.glsearch.GLSearch
-
public class GLSearch extends globus.glmap.GLNativeObjectGLSearchOfflinecontains a set of parameters that defines search in offline maps
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceGLSearch.AddressStylestatic interfaceGLSearch.CustomObjectInfoCallbackstatic interfaceGLSearch.MatchTypestatic interfaceGLSearch.ResultsCallbackCallback that provides information for custom objects for search.static interfaceGLSearch.TagSetstatic interfaceGLSearch.TagSetMask
-
Constructor Summary
Constructors Constructor Description GLSearch()Default constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddFilter(GLSearchFilter filter)Adds filter to search.voidcancel()Cancels search operation.static intCollate(long collator, java.lang.String a, java.lang.String b)Compare to string with collatorstatic longCreateCollator()Creates ICU collator with strength set to Primary.static longCreateNumericCollator()Creates ICU collator with strength set to Primary and numeric collation is ON.static voidDestroyCollator(long collator)Destroy collatorstatic voidDestroyWords(long words)Destroy native object returned by GLSearch#PrepareWords(long, String[]).static globus.glmap.GLMapValueFindWords(long collator, java.lang.String string, long words)Split string into words.static globus.glmap.GLMapValueGetAddress(globus.glmap.GLMapVectorObject object, int style, globus.glmap.GLMapLocaleSettings localeSettings)Returns address with given stylestatic GLSearchCategoryGetSearchCategory(globus.glmap.GLMapVectorObject object)Detects category for vector objectstatic voidInitialize(android.content.Context context)Call this method before using any other method from `globus.glsearch`static globus.glmap.GLMapVectorObjectLoadMergedRelationLines(globus.glmap.GLMapRelation relation, boolean isForward, globus.glmap.GLMapInfo map)Load all lines from relation in onestatic globus.glmap.GLMapValue[]LocalizedAddressNames(globus.glmap.GLMapVectorObject object, globus.glmap.GLMapLocaleSettings localeSettings)Returns all address names associated with objectstatic globus.glmap.GLMapVectorObjectMapObjectNearPoint(globus.glmap.GLMapViewRenderer mapView, globus.glmap.MapPoint point, double maxDistance)Returns object near point on mapstatic android.util.SparseArray<globus.glmap.GLMapValue>MatchedCategoryTags(globus.glmap.GLMapVectorObject object)java.lang.Object[]merge(globus.glmap.GLMapVectorObjectList searchResults, java.util.List customObjects, GLSearch.CustomObjectInfoCallback infoCallback)Merge search results with custom objectsstatic globus.glmap.GLMapVectorObjectNearest(double lat, double lon, double maxDist, java.util.List<GLSearchFilter> filters)static globus.glmap.GLMapVectorObjectNearest(double lat, double lon, double maxDist, java.util.List<GLSearchFilter> filters, GLSearchCategories categories)static longPrepareWords(long collator, java.lang.String[] words)Prepares words for collationstatic globus.glmap.GLMapRelation[]RelationsNearPoint(globus.glmap.GLMapViewRenderer mapView, globus.glmap.MapPoint point, double maxDistance, GLSearchFilter[] filters)Search for relations near point on mapglobus.glmap.GLMapVectorObjectListsearch()Performs search synchronouslyvoidsearchAsync(GLSearch.ResultsCallback callback)Starts search.voidsetBBox(globus.glmap.GLMapBBox bbox)Sets bounding box where search will be performedvoidsetCenter(globus.glmap.MapPoint center)Sets center of search.voidsetLimit(int limit)Sets maximum number of results to fetch from mapvoidsetLocaleSettings(globus.glmap.GLMapLocaleSettings localeSettings)Sets locale settings that used to sort results by importance.voidsetNeedEnclosingAreas(boolean needEnclosingAreas)Set this value to `YES` if you plan to get address of objects.voidsetObjectTypes(int objectTypes)Set object typesvoidsetTiles(long[] tiles)Adds tile hashes to use for search (child tiles will be skipped)static java.lang.String[]SplitByWords(java.lang.String string)Split string into words using ICU root rules
-
-
-
Method Detail
-
Initialize
public static void Initialize(@NonNull android.content.Context context)Call this method before using any other method from `globus.glsearch`- Parameters:
context- context needed to load icu and categories data
-
MapObjectNearPoint
public static globus.glmap.GLMapVectorObject MapObjectNearPoint(@NonNull globus.glmap.GLMapViewRenderer mapView, @NonNull globus.glmap.MapPoint point, double maxDistance)Returns object near point on map- Parameters:
mapView- Map viewpoint- Point on mapmaxDistance- Distance in points- Returns:
- Vector object on map
-
RelationsNearPoint
public static globus.glmap.GLMapRelation[] RelationsNearPoint(@NonNull globus.glmap.GLMapViewRenderer mapView, @NonNull globus.glmap.MapPoint point, double maxDistance, @Nullable GLSearchFilter[] filters)Search for relations near point on map- Parameters:
mapView- Map viewpoint- Point on mapmaxDistance- Distance in pointsfilters- Filters for relations- Returns:
- relations near point
-
LoadMergedRelationLines
@Nullable public static globus.glmap.GLMapVectorObject LoadMergedRelationLines(globus.glmap.GLMapRelation relation, boolean isForward, @Nullable globus.glmap.GLMapInfo map)Load all lines from relation in one- Parameters:
relation- relation to loadisForward- true for forward route, false for backward routemap- map from where to load relation. if null - will load from random map- Returns:
- vector object with multiline
-
GetSearchCategory
@Nullable public static GLSearchCategory GetSearchCategory(@NonNull globus.glmap.GLMapVectorObject object)
Detects category for vector object- Parameters:
object- Vector object- Returns:
- Category that matches to object
-
MatchedCategoryTags
@Nullable public static android.util.SparseArray<globus.glmap.GLMapValue> MatchedCategoryTags(@NonNull globus.glmap.GLMapVectorObject object)
-
GetAddress
@Nullable public static globus.glmap.GLMapValue GetAddress(@NonNull globus.glmap.GLMapVectorObject object, int style, @NonNull globus.glmap.GLMapLocaleSettings localeSettings)Returns address with given style- Parameters:
object- vector objectstyle- style of addresslocaleSettings- locale settings- Returns:
- address formatted with given style
-
LocalizedAddressNames
@Nullable public static globus.glmap.GLMapValue[] LocalizedAddressNames(@NonNull globus.glmap.GLMapVectorObject object, @NonNull globus.glmap.GLMapLocaleSettings localeSettings)Returns all address names associated with object- Parameters:
object- vector objectlocaleSettings- Locale settings used to find name- Returns:
- array of address names
-
SplitByWords
@NonNull public static java.lang.String[] SplitByWords(@NonNull java.lang.String string)Split string into words using ICU root rules- Parameters:
string- string to split into words- Returns:
- words from string
-
PrepareWords
public static long PrepareWords(long collator, @NonNull java.lang.String[] words)Prepares words for collation- Parameters:
collator- collator that will be used in collationwords- words to prepare- Returns:
- native object. Must be destroyed when not needed.
-
DestroyWords
public static void DestroyWords(long words)
Destroy native object returned by GLSearch#PrepareWords(long, String[]).- Parameters:
words- native object
-
FindWords
@Nullable public static globus.glmap.GLMapValue FindWords(long collator, @NonNull java.lang.String string, long words)Split string into words. Then checks if all prepared words are equal to start of any word in string- Parameters:
collator- collator to usestring- string where prepared words will be checkedwords- prepared words- Returns:
- value that contains same string, but with highlight information. Null if not all prepared words are in string
-
CreateCollator
public static long CreateCollator()
Creates ICU collator with strength set to Primary. For example "Straße" equal to "sTrassE" with this collator- Returns:
- native collator object. Must be destroyed when not needed.
-
CreateNumericCollator
public static long CreateNumericCollator()
Creates ICU collator with strength set to Primary and numeric collation is ON. For example "Straße 10" greater "sTrassE 2" with this collator- Returns:
- native collator object. Must be destroyed when not needed.
-
DestroyCollator
public static void DestroyCollator(long collator)
Destroy collator- Parameters:
collator- native collator object
-
Collate
public static int Collate(long collator, @Nullable java.lang.String a, @Nullable java.lang.String b)Compare to string with collator- Parameters:
collator- collator to usea- the first object to be compared.b- the second object to be compared.- Returns:
- a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
-
Nearest
@Nullable public static globus.glmap.GLMapVectorObject Nearest(double lat, double lon, double maxDist, @Nullable java.util.List<GLSearchFilter> filters)
-
Nearest
@Nullable public static globus.glmap.GLMapVectorObject Nearest(double lat, double lon, double maxDist, @Nullable java.util.List<GLSearchFilter> filters, @NonNull GLSearchCategories categories)
-
setTiles
public void setTiles(@NonNull long[] tiles)Adds tile hashes to use for search (child tiles will be skipped)- Parameters:
tiles- Array of tile hashes public native void setTiles(long tiles[]);
-
setLocaleSettings
public void setLocaleSettings(@NonNull globus.glmap.GLMapLocaleSettings localeSettings)Sets locale settings that used to sort results by importance. Results in user language displayed on top.- Parameters:
localeSettings- Language priority settings.
-
setLimit
public void setLimit(int limit)
Sets maximum number of results to fetch from map- Parameters:
limit- Results limit
-
setBBox
public void setBBox(@NonNull globus.glmap.GLMapBBox bbox)Sets bounding box where search will be performed- Parameters:
bbox- Search bounding box.
-
setCenter
public void setCenter(@NonNull globus.glmap.MapPoint center)Sets center of search. Distance from this center will define importance of object. Usually center is user location or center of the screen.- Parameters:
center- Center point.
-
addFilter
public void addFilter(@NonNull GLSearchFilter filter)Adds filter to search. Result of search will contain objects that matches all filters- Parameters:
filter- filter to add.
-
setNeedEnclosingAreas
public void setNeedEnclosingAreas(boolean needEnclosingAreas)
Set this value to `YES` if you plan to get address of objects. Loading address after search is much faster (cache reuse, bulk loading)- Parameters:
needEnclosingAreas- if `YES` search will load enclosing areas.
-
setObjectTypes
public void setObjectTypes(int objectTypes)
Set object types- Parameters:
objectTypes- object types
-
searchAsync
public void searchAsync(@NonNull GLSearch.ResultsCallback callback)Starts search.- Parameters:
callback- will be called when search is finished or when search needs information about custom object.
-
search
@NonNull public globus.glmap.GLMapVectorObjectList search()
Performs search synchronously- Returns:
- result of search
-
merge
public java.lang.Object[] merge(@NonNull globus.glmap.GLMapVectorObjectList searchResults, @NonNull java.util.List customObjects, @NonNull GLSearch.CustomObjectInfoCallback infoCallback)Merge search results with custom objects- Parameters:
searchResults- search resultscustomObjects- custom objectsinfoCallback- callback that will provide information about object- Returns:
- merged array
-
cancel
public void cancel()
Cancels search operation.
-
-