com.supermap.analyst.addressmatching
类 AddressSearch
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.InternalHandleDisposable
-
- com.supermap.analyst.addressmatching.AddressSearch
-
- 所有已实现的接口:
- IDisposable
public class AddressSearch extends com.supermap.data.InternalHandleDisposable新的地址加载和匹配相分离的中文地址模糊匹配类。该类根据中文地址库数据创建地址索引,提供中文地址模糊匹配的方法。
中文地址模糊匹配的实现流程和注意事项:
- 指定中文地址库数据创建的地址索引的目录,创建一个中文地址匹配对象;
- 调用match对象,指定要搜索的地址所在城市,必须是中文地址数据库中市级字段中的值,再指定要搜索的中文地址和返回个数;
- 系统对待匹配的关键字进行分词,然后去匹配指定数据集中指定字段中的内容,通过一定的运算,返回匹配的结果。
- 示范代码:
- 以下代码示范如何进行中文地址模糊匹配。
public AddressMatchResults addressMatchResult() { //创建中文地址模糊匹配对象 AddressSearch addressSearch = new AddressSearch("D:/GeoCode/index"); //调用匹配方法 AddressMatchResults addressMatchResults = addressSearch.match("北京","超图大厦",10); //返回匹配结果 return addressMatchResults; }
-
-
构造器概要
构造器 构造器和说明 AddressSearch()地址匹配对象构建方法。AddressSearch(String indexDirectory)已过时。此方法已废弃,请使用支持地址匹配参数设置类的新方法AddressSearch.setSetting(AddressSearchSetting)替换。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 voiddispose()释放对象所占用的资源。AddressMatchResultsget(int resultCount, int startPosition)获取匹配结果的接口,和match方法结合使用。PrjCoordSysgetPrjCoordSys()获取地址的投影信息。AddressSearchSettinggetSetting()返回中文地址模糊匹配的参数设置对象。static booleanisSupportReverse(String searchDirectory)判断索引数据是否支持逆向匹配。booleanisValidLowestGroupName(String value)通过该方法可以判断AddressSearchSetting类设置的三级分组字段是否正确。booleanisValidSecondaryGroupName(String value)通过该方法可以判断AddressSearchSetting类设置的二级分组字段是否正确。booleanisValidTopGroupName(String value)通过该方法可以判断AddressSearchSetting类设置的一级分组字段是否正确。intmatch(Geometry geometry, double dDistance)逆向地址匹配接口,和get方法结合使用。AddressSearchResultmatch(Geometry geometry, double dDistance, AddressSearchSetting addressSearchSetting)逆向地址匹配接口 该接口为多线程使用提供,只需加载一次索引文件。intmatch(String searchAddress)新的地址匹配接口,和get方法结合使用。AddressSearchResultmatch(String searchAddress, AddressSearchSetting addressSearchSetting)地址匹配接口 该接口为多线程使用提供,只需加载一次索引文件。AddressMatchResultsmatch(String searchCity, String searchAddress, int resultCount)已过时。此方法已废弃,请使用支持地址匹配参数设置类的新方法AddressSearch.match(String, AddressSearchSetting)替换。static voidsetIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)voidsetSetting(AddressSearchSetting value)设置中文地址模糊匹配的参数设置对象。
-
-
-
构造器详细资料
-
AddressSearch
public AddressSearch()
地址匹配对象构建方法。
-
AddressSearch
@Deprecated public AddressSearch(String indexDirectory)
已过时。 此方法已废弃,请使用支持地址匹配参数设置类的新方法AddressSearch.setSetting(AddressSearchSetting)替换。新的地址加载和匹配相分离的地址匹配对象构建方法,需要指定已经加载的地址索引路径。有关新的加载地址索引的更多信息,请参见AddressLoad类。- 参数:
indexDirectory- 已经加载完的地址索引路径。
-
-
方法详细资料
-
getSetting
public AddressSearchSetting getSetting()
返回中文地址模糊匹配的参数设置对象。有关详情,请参见AddressSearchSetting类。- 返回:
- 中文地址模糊匹配的参数设置对象。
-
setSetting
public void setSetting(AddressSearchSetting value)
设置中文地址模糊匹配的参数设置对象。通过该方法可以设置地址匹配所使用的搜索路径,搜索结果数目,搜索组别等信息,有关详情,请参见AddressSearchSetting类。- 参数:
value- 中文地址模糊匹配地址索引加载的参数设置对象。
-
dispose
public void dispose()
释放对象所占用的资源。调用该方法之后,此对象不再可用。
-
match
@Deprecated public AddressMatchResults match(String searchCity, String searchAddress, int resultCount)
已过时。 此方法已废弃,请使用支持地址匹配参数设置类的新方法AddressSearch.match(String, AddressSearchSetting)替换。新的地址加载和匹配相分离的地址匹配方法。- 参数:
searchCity- 指定的要检索的地名地址所在的城市,该参数是进行AddressLoad时加载的数据集中的City字段中的值。searchAddress- 指定的要检索的地名地址。resultCount- 指定一次返回的最优检索结果的数目。范围为1到10之间。- 返回:
- 中文地址模糊匹配结果集合对象。
-
isValidTopGroupName
public boolean isValidTopGroupName(String value)
通过该方法可以判断AddressSearchSetting类设置的一级分组字段是否正确。- 参数:
value- 一级分组字段名称。
-
isValidSecondaryGroupName
public boolean isValidSecondaryGroupName(String value)
通过该方法可以判断AddressSearchSetting类设置的二级分组字段是否正确。- 参数:
value- 二级分组字段名称。
-
isValidLowestGroupName
public boolean isValidLowestGroupName(String value)
通过该方法可以判断AddressSearchSetting类设置的三级分组字段是否正确。- 参数:
value- 三级分组字段名称。
-
match
public int match(String searchAddress)
新的地址匹配接口,和get方法结合使用。- 参数:
searchAddress- 指定的要检索的地名地址。- 返回:
- 结果匹配的数目。
注意事项:
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
AddressSearchSetting; - 该接口使用的地址索引数据只能是
AddressLoad类的新的 load(boolean) 接口生成的,不兼容老的废弃的load()接口; - 使用接口前,如果加载数据时使用了分组字段,建议通过
AddressSearchSetting类设置分组字段名称,以实现更快和更准确的匹配。
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
- 示范代码:
- 以下代码示范如何使用该接口进行中文地址模糊匹配。
public AddressMatchResults addressMatchResultNew() { AddressSearchSetting searchSetting = new AddressSearchSetting(); searchSetting.setSearchDirectory("D:/GeoCode/index"); searchSetting.setMaxResultCount(100); searchSetting.setTopGroupName("四川"); searchSetting.setSecondaryGroupName("成都"); //searchSetting.setLowestGroupName(""); AddressSearch addressSearch = new AddressSearch(); addressSearch.setSetting(searchSetting); String query = "大学"; int matchCount = addressSearch.match(query); if (matchCount > 0) { //获取前十条匹配结果 AddressMatchResults addressMatchResults = addressSearch.get(10, 0); return addressMatchResults; } return null; }
-
match
public int match(Geometry geometry, double dDistance)
逆向地址匹配接口,和get方法结合使用。注意事项:
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
AddressSearchSetting类; - 该接口使用的地址索引数据只能是 AddressLoad 类的新的
AddressLoad.load(boolean)接口生成的,不兼容老的废弃的AddressLoad.load()接口; - 创建索引数据时,需要设置生成逆向地址匹配索引数据(即
AddressLoadSetting.setLoadPoint设置为 true),逆向地址匹配接口才能成功搜索。
- 参数:
geometry- 指定的点对象。dDistance- 指定的搜索范围。- 返回:
- 结果匹配的数目。
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
-
get
public AddressMatchResults get(int resultCount, int startPosition)
获取匹配结果的接口,和match方法结合使用。- 参数:
resultCount- 指定一次返回的最优检索结果的数目,最大不能超过match返回的匹配数目。startPosition- 指定match获取结果的起始位置。- 返回:
- 中文地址模糊匹配结果集合对象, 详情参见
AddressMatchResults。
-
getPrjCoordSys
public PrjCoordSys getPrjCoordSys()
获取地址的投影信息。- 返回:
- 返回地址的投影信息。
-
match
public AddressSearchResult match(String searchAddress, AddressSearchSetting addressSearchSetting)
地址匹配接口该接口为多线程使用提供,只需加载一次索引文件。
- 参数:
searchAddress- 指定的要检索的地名地址。addressSearchSetting- 中文地址模糊匹配参数设置对象。- 返回:
- 中文地址模糊匹配结果集合。
注意事项:
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
AddressSearchSetting; - 该接口使用的地址索引数据只能是
AddressLoad类的新的 load(boolean) 接口生成的,不兼容老的废弃的load()接口; - 使用接口前,如果加载数据时使用了分组字段,建议通过
AddressSearchSetting类设置分组字段名称,以实现更快和更准确的匹配。
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
- 示范代码:
- 以下代码示范如何使用该接口进行中文地址模糊匹配。
public AddressMatchResults addressMatchResultNew() { AddressSearchSetting searchSetting = new AddressSearchSetting(); searchSetting.setSearchDirectory("D:/GeoCode/index"); AddressSearch addressSearch = new AddressSearch(); addressSearch.setSetting(searchSetting); AddressSearchSetting newsetting = new AddressSearchSetting(); newsetting.setMaxResultCount(100); newsetting.setTopGroupName("四川"); newsetting.setSecondaryGroupName("成都"); String query = "大学"; AddressSearchResult SearchResult = addressSearch.match(query,newsetting); if (SearchResult != null && SearchResult.getCount() > 0) { //获取前十条匹配结果 AddressMatchResults addressMatchResults = SearchResult.get(10, 0); return addressMatchResults; } return null; }
-
match
public AddressSearchResult match(Geometry geometry, double dDistance, AddressSearchSetting addressSearchSetting)
逆向地址匹配接口该接口为多线程使用提供,只需加载一次索引文件。
- 参数:
geometry- 指定的点对象。dDistance- 指定的搜索范围。addressSearchSetting- 中文地址模糊匹配参数设置对象。- 返回:
- 中文地址模糊匹配结果集合。
注意事项:
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
AddressSearchSetting; - 该接口使用的地址索引数据只能是
AddressLoad类的新的 load(boolean) 接口生成的,不兼容老的废弃的load()接口; - 使用接口前,如果加载数据时使用了分组字段,建议通过
AddressSearchSetting类设置分组字段名称,以实现更快和更准确的匹配。
- 使用接口前,需要先通过AddressSearchSetting对象设置相关参数,详情参见
- 示范代码:
- 以下代码示范如何使用该接口进行中文地址模糊匹配。
public AddressMatchResults addressMatchResultNew() { AddressSearchSetting searchSetting = new AddressSearchSetting(); searchSetting.setSearchDirectory("D:/GeoCode/index"); AddressSearch addressSearch = new AddressSearch(); addressSearch.setSetting(searchSetting); AddressSearchSetting newsetting = new AddressSearchSetting(); newsetting.setMaxResultCount(100); GeoPoint geopnt = new GeoPoint(new Point2D(1,1)); AddressSearchResult SearchResult = addressSearch.match(geopnt,0.1,newsetting); if (SearchResult != null && SearchResult.getCount() > 0) { //获取前十条匹配结果 AddressMatchResults addressMatchResults = SearchResult.get(10, 0); return addressMatchResults; } return null; }
-
isSupportReverse
public static boolean isSupportReverse(String searchDirectory)
判断索引数据是否支持逆向匹配。- 参数:
searchDirectory- [in] 索引数据目录- 返回:
- 支持返回TRUE ,不支持返回FALSE
-
setIsDisposable
public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.