package com.yeshi.location.plugins;
|
|
import android.app.Activity;
|
import android.graphics.Color;
|
import android.util.Log;
|
import android.widget.ImageView;
|
|
import com.baidu.mapapi.model.LatLng;
|
import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;
|
import com.baidu.mapapi.search.poi.PoiDetailResult;
|
import com.baidu.mapapi.search.poi.PoiDetailSearchResult;
|
import com.baidu.mapapi.search.poi.PoiIndoorResult;
|
import com.baidu.mapapi.search.poi.PoiNearbySearchOption;
|
import com.baidu.mapapi.search.poi.PoiResult;
|
import com.baidu.mapapi.search.poi.PoiSearch;
|
import com.mobile.auth.gatewayauth.AuthUIConfig;
|
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
|
import com.mobile.auth.gatewayauth.ResultCode;
|
import com.mobile.auth.gatewayauth.TokenResultListener;
|
import com.mobile.auth.gatewayauth.model.TokenRet;
|
import com.yeshi.location.R;
|
import com.yeshi.location.utils.DimenUtils;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import io.flutter.plugin.common.BasicMessageChannel;
|
import io.flutter.plugin.common.BinaryMessenger;
|
import io.flutter.plugin.common.StandardMessageCodec;
|
|
public class POISearchFlutterPlugins implements BasicMessageChannel.MessageHandler<Object> {
|
|
private static final String TAG = "AliyunPhoneNumberAuth";
|
|
private final Activity activity;
|
private final BasicMessageChannel<Object> messageChannel;
|
|
private BasicMessageChannel.Reply<Object> reply;
|
|
private PoiSearch mPoiSearch = PoiSearch.newInstance();
|
|
|
private POISearchFlutterPlugins(Activity activity, BinaryMessenger messager) {
|
this.activity = activity;
|
this.messageChannel = new BasicMessageChannel<Object>(messager, "POISearch", StandardMessageCodec.INSTANCE);
|
messageChannel.setMessageHandler(this);
|
}
|
|
public static POISearchFlutterPlugins registerWith(Activity activity, BinaryMessenger messager) {
|
return new POISearchFlutterPlugins(activity, messager);
|
}
|
|
|
@Override
|
public void onMessage(@Nullable Object message, @NonNull BasicMessageChannel.Reply<Object> reply) {
|
this.reply = reply;
|
Map<String, String> arguments = (Map<String, String>) message;
|
String method = arguments.get("method");
|
switch (method) {
|
//初始化
|
case "searchNearBy":
|
mPoiSearch = PoiSearch.newInstance();
|
mPoiSearch.searchNearby(new PoiNearbySearchOption()
|
.location(new LatLng(39.915446, 116.403869))
|
.radius(1000)
|
//支持多个关键字并集检索,不同关键字间以$符号分隔,最多支持10个关键字检索。如:”银行$酒店”
|
.keyword("餐厅")
|
.pageNum(0));
|
mPoiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() {
|
@Override
|
public void onGetPoiResult(PoiResult poiResult) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("code", 0);
|
map.put("data", poiResult.getAllPoi());
|
reply.reply(map);
|
}
|
|
@Override
|
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
|
|
}
|
|
@Override
|
public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {
|
|
}
|
|
@Override
|
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
|
|
}
|
});
|
break;
|
|
}
|
|
}
|
|
/**
|
* 向Dart发送消息,并接受Dart的反馈
|
*
|
* @param message 要给Dart发送的消息内容
|
* @param callback 来自Dart的反馈
|
*/
|
void send(String message, BasicMessageChannel.Reply<Object> callback) {
|
messageChannel.send(message, callback);
|
}
|
}
|