Package globus.glsearch
Class GLSearch
- java.lang.Object
-
- globus.glmap.GLNativeObject
-
- globus.glsearch.GLSearch
-
@ParametersAreNonnullByDefault 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
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.GLMapValue[]LocalizedAddressNames(globus.glmap.GLMapVectorObject object, globus.glmap.GLMapLocaleSettings localeSettings)Returns all address names associated with objectstatic globus.glmap.GLMapVectorObjectMapObjectNearPoint(globus.glmap.GLMapView 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 collationglobus.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(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(globus.glmap.GLMapView mapView, 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
-
GetSearchCategory
@Nullable public static GLSearchCategory GetSearchCategory(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(globus.glmap.GLMapVectorObject object)
-
GetAddress
@Nullable public static globus.glmap.GLMapValue GetAddress(globus.glmap.GLMapVectorObject object, int style, 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(globus.glmap.GLMapVectorObject object, 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(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, 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, 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, java.lang.String a, 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, java.util.List<GLSearchFilter> filters)
-
Nearest
@Nullable public static globus.glmap.GLMapVectorObject Nearest(double lat, double lon, double maxDist, java.util.List<GLSearchFilter> filters, GLSearchCategories categories)
-
setTiles
public void setTiles(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(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(globus.glmap.GLMapBBox bbox)
Sets bounding box where search will be performed- Parameters:
bbox- Search bounding box.
-
setCenter
public void setCenter(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(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(GLSearch.ResultsCallback callback)
Starts search.- Parameters:
callback- will be called when search is finished or when search needs information about custom object.
-
search
public globus.glmap.GLMapVectorObjectList search()
Performs search synchronously- Returns:
- result of search
-
merge
public java.lang.Object[] merge(globus.glmap.GLMapVectorObjectList searchResults, java.util.List customObjects, 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.
-
-