Commit 8959983b authored by 宋永孟's avatar 宋永孟

add 增加poi搜索

parent 45bdc2b5
...@@ -9,6 +9,13 @@ import com.amap.api.maps.AMap ...@@ -9,6 +9,13 @@ import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.OnMyLocationChangeListener import com.amap.api.maps.AMap.OnMyLocationChangeListener
import com.amap.api.maps.MapView import com.amap.api.maps.MapView
import com.amap.api.maps.model.* import com.amap.api.maps.model.*
import com.amap.api.services.core.AMapException
import com.amap.api.services.core.LatLonPoint
import com.amap.api.services.core.PoiItem
import com.amap.api.services.core.SuggestionCity
import com.amap.api.services.poisearch.PoiResult
import com.amap.api.services.poisearch.PoiSearch
import com.amap.api.services.poisearch.PoiSearch.OnPoiSearchListener
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding
...@@ -20,7 +27,7 @@ import kotlinx.android.synthetic.main.activity_select_address.* ...@@ -20,7 +27,7 @@ import kotlinx.android.synthetic.main.activity_select_address.*
* Date: 2021/6/24 2:10 PM * Date: 2021/6/24 2:10 PM
* Describe: * Describe:
*/ */
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMyLocationChangeListener, AMap.OnMapClickListener { class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMyLocationChangeListener, AMap.OnMapClickListener, OnPoiSearchListener {
private lateinit var mapView: MapView private lateinit var mapView: MapView
private var myLocationStyle: MyLocationStyle? = null private var myLocationStyle: MyLocationStyle? = null
var bitmapDescriptor: BitmapDescriptor? = null var bitmapDescriptor: BitmapDescriptor? = null
...@@ -134,7 +141,52 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMy ...@@ -134,7 +141,52 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMy
currentMarker = aMap!!.addMarker(markerOption) currentMarker = aMap!!.addMarker(markerOption)
currentMarker!!.setObject(latLng) currentMarker!!.setObject(latLng)
boundsBuilder?.include(latLng) boundsBuilder?.include(latLng)
queryPoi()
} }
private fun queryPoi() {
val latLng = currentMarker!!.getObject() as LatLng
val typeRange = "汽车服务|汽车销售|" +
"汽车维修|摩托车服务|餐饮服务|购物服务|生活服务|体育休闲服务|医疗保健服务|" +
"住宿服务|风景名胜|商务住宅|政府机构及社会团体|科教文化服务|交通设施服务|" +
"金融保险服务|公司企业|道路附属设施|地名地址信息|公共设施"
// keyWord表示搜索字符串,第二个参数表示POI搜索类型,默认为:生活服务、餐饮服务、商务住宅
//共分为以下20种:汽车服务|汽车销售|
//汽车维修|摩托车服务|餐饮服务|购物服务|生活服务|体育休闲服务|医疗保健服务|
//住宿服务|风景名胜|商务住宅|政府机构及社会团体|科教文化服务|交通设施服务|
//金融保险服务|公司企业|道路附属设施|地名地址信息|公共设施
//cityCode表示POI搜索区域,(这里可以传空字符串,空字符串代表全国在全国范围内进行搜索)
val query: PoiSearch.Query = PoiSearch.Query("", typeRange, "")
query.pageSize = 10 // 设置每页最多返回多少条poiitem
query.pageNum = 1 //设置查第一页
val poiSearch = PoiSearch(this, query)
poiSearch.bound = PoiSearch.SearchBound(LatLonPoint(latLng.latitude,
latLng.longitude), 500) //设置周边搜索的中心点以及区域
poiSearch.setOnPoiSearchListener(this) //设置数据返回的监听器
poiSearch.searchPOIAsyn()
}
override fun onPoiSearched(poiResult: PoiResult?, rCode: Int) {
if (rCode == AMapException.CODE_AMAP_SUCCESS) {
if (poiResult != null && poiResult.getQuery() != null) {
// 取得搜索到的poiitems有多少页
val poiItems: List<PoiItem> = poiResult.getPois() // 取得第一页的poiitem数据,页数从数字0开始
val suggestionCities: List<SuggestionCity> = poiResult
.getSearchSuggestionCitys() // 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息
if (poiItems != null && poiItems.size > 0) {
}
}
}
}
override fun onPoiItemSearched(p0: PoiItem?, p1: Int) {
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment