Java源码示例:com.baidu.mapapi.search.poi.PoiSortType
示例1
/**
* 周边搜索
*/
private void searchNearbyProcess(LatLng center) {
//以定位点为中心,搜索半径以内的
PoiNearbySearchOption nearbySearchOption = new PoiNearbySearchOption()
.keyword(keyword)
.sortType(PoiSortType.distance_from_near_to_far)
.location(center)
.radius(radius)
.pageCapacity(pageSize)
.pageNum(loadIndex);
mPoiSearch.searchNearby(nearbySearchOption);
}
示例2
private void searchNearByPoi(PoiInfo info, String keyword,int pageNum) {
PoiNearbySearchOption option = new PoiNearbySearchOption();
option.keyword(keyword).
radius(1000).pageNum(pageNum).pageCapacity(5).
sortType(PoiSortType.distance_from_near_to_far).
location(new LatLng(info.location.latitude, info.location.longitude));
poiSearch.searchNearby(option);
}
示例3
private void search(String query, int count) {
if (mLocation == null) {
if (count == 1) {
Toast.makeText(MapActivity.this, "正在定位到商家地址..", Toast.LENGTH_LONG).show();
}
Toast.makeText(MapActivity.this, "正在尝试为你定位..", Toast.LENGTH_LONG).show();
}
mPoiSearch.searchNearby((new PoiNearbySearchOption())
.location(new LatLng(mLocation.getLatitude(), mLocation.getLongitude()))
.keyword(query)
.radius(1000)
.pageCapacity(count)
.sortType(PoiSortType.distance_from_near_to_far));
}
示例4
private void searchPoiNearbyByBaidu(MyPoiModel nearby, String keyword, int page, final OnSearchResultListener listener) {
mPoiSearchBaidu.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
if (null != poiResult && null != poiResult.getAllPoi() && !poiResult.getAllPoi().isEmpty()) {
List<MyPoiModel> list = new ArrayList<>();
for (PoiInfo poi : poiResult.getAllPoi()) {
MyPoiModel myPoi = new MyPoiModel(mType);
myPoi.setCity(poi.city);
myPoi.setUid(poi.uid);
myPoi.setAddress(poi.address);
myPoi.setName(poi.name);
myPoi.setInfo(poi.phoneNum);
if (null != poi.location) {
myPoi.setLatitude(poi.location.latitude);
myPoi.setLongitude(poi.location.longitude);
}
if (poi.type == PoiInfo.POITYPE.BUS_LINE) {
myPoi.setTypePoi(TypePoi.BUS_LINE);
} else if (poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {
myPoi.setTypePoi(TypePoi.SUBWAY_LINE);
} else if (poi.type == PoiInfo.POITYPE.BUS_STATION) {
myPoi.setTypePoi(TypePoi.BUS_STATION);
} else if (poi.type == PoiInfo.POITYPE.SUBWAY_STATION) {
myPoi.setTypePoi(TypePoi.SUBWAY_STATION);
} else if (poi.type == PoiInfo.POITYPE.POINT) {
myPoi.setTypePoi(TypePoi.POINT);
}
list.add(myPoi);
}
listener.setSearchResult(list);
listener.onShowData("search");
} else {
listener.onNoData("search");
}
}
@Override
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
}
});
mPoiSearchBaidu.searchNearby(new PoiNearbySearchOption().location(new LatLng(nearby.getLatitude(), nearby.getLongitude())).keyword(keyword).radius(20000).sortType(PoiSortType.distance_from_near_to_far).pageNum(page).pageCapacity(20));
}
示例5
private void searchPoiNearbyByBaidu(MyPoiModel nearby, String keyword, int page, final OnSearchResultListener listener) {
mPoiSearchBaidu.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
if (null != poiResult && null != poiResult.getAllPoi() && !poiResult.getAllPoi().isEmpty()) {
List<MyPoiModel> list = new ArrayList<>();
for (PoiInfo poi : poiResult.getAllPoi()) {
MyPoiModel myPoi = new MyPoiModel(mType);
myPoi.setCity(poi.city);
myPoi.setUid(poi.uid);
myPoi.setAddress(poi.address);
myPoi.setName(poi.name);
myPoi.setInfo(poi.phoneNum);
if (null != poi.location) {
myPoi.setLatitude(poi.location.latitude);
myPoi.setLongitude(poi.location.longitude);
}
if (poi.type == PoiInfo.POITYPE.BUS_LINE) {
myPoi.setTypePoi(TypePoi.BUS_LINE);
} else if (poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {
myPoi.setTypePoi(TypePoi.SUBWAY_LINE);
} else if (poi.type == PoiInfo.POITYPE.BUS_STATION) {
myPoi.setTypePoi(TypePoi.BUS_STATION);
} else if (poi.type == PoiInfo.POITYPE.SUBWAY_STATION) {
myPoi.setTypePoi(TypePoi.SUBWAY_STATION);
} else if (poi.type == PoiInfo.POITYPE.POINT) {
myPoi.setTypePoi(TypePoi.POINT);
}
list.add(myPoi);
}
listener.setSearchResult(list);
listener.onShowData("search");
} else {
listener.onNoData("search");
}
}
@Override
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
}
});
mPoiSearchBaidu.searchNearby(new PoiNearbySearchOption().location(new LatLng(nearby.getLatitude(), nearby.getLongitude())).keyword(keyword).radius(20000).sortType(PoiSortType.distance_from_near_to_far).pageNum(page).pageCapacity(20));
}
示例6
private void initLocationAndSearch() {
//location
mLocationClient = new LocationClient(getApplicationContext()); //声明LocationClient类
mLocationClient.registerLocationListener(this); //注册监听函数
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy
);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
int span = 1000;
option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);//可选,默认false,设置是否使用gps
option.setLocationNotify(true);//可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
mLocationClient.setLocOption(option);
//search
mPoiSearch = PoiSearch.newInstance();
mPoiSearch.setOnGetPoiSearchResultListener(new MyPoiSearchListener());
mNearbySearchOption = new PoiNearbySearchOption()
.radius(5000)
.pageNum(1)
.pageCapacity(20)
.sortType(PoiSortType.distance_from_near_to_far);
////////////////
mGeoCoder = GeoCoder.newInstance();
mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {
Log.e(TAG, "onGetGeoCodeResult: " + geoCodeResult.toString());
}
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
Log.e(TAG, "onGetReverseGeoCodeResult: " + reverseGeoCodeResult.toString());
}
});
}