高德地图自定义定位按钮后搜索周边
1.需要资源:
高德地图搜索SDK以及相关SDk下载地址
2.布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fff"android:orientation="vertical"><!-- 标题栏 --><includeandroid:id="@+id/layoutbt"layout="@layout/titlelayout" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="34dp"android:layout_margin="10dp"android:background="@drawable/addres"><ImageViewandroid:id="@+id/imag_ss"android:layout_width="14dp"android:layout_height="14dp"android:layout_centerVertical="true"android:layout_marginLeft="15dp"android:src="@mipmap/search_address" /><EditTextandroid:id="@+id/edittext"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_toLeftOf="@+id/imag_deletedz"android:layout_toRightOf="@+id/imag_ss"android:background="@null"android:hint="搜索地点或地址"android:singleLine="true"android:textColor="#232323"android:textColorHint="#999999"android:textSize="12dp" /><ImageViewandroid:id="@+id/imag_deletedz"android:layout_width="14dp"android:layout_height="14dp"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:layout_marginLeft="5dp"android:layout_marginRight="10dp"android:src="@mipmap/remove_search" /></RelativeLayout><RelativeLayoutandroid:id="@+id/hqxmgd"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_above="@+id/map_list"android:orientation="vertical"><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_above="@+id/linear_sx"><com.amap.api.maps.MapViewandroid:id="@+id/map_local"android:layout_width="match_parent"android:layout_height="match_parent"/><ImageViewandroid:visibility="gone"android:layout_width="33dp"android:layout_height="40dp"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:layout_gravity="center"android:src="@mipmap/map_locationv"android:translationY="-18dp" /></RelativeLayout><LinearLayoutandroid:id="@+id/linear_sx"android:layout_width="match_parent"android:layout_height="25dp"android:layout_alignParentBottom="true"android:layout_marginBottom="10dp"android:orientation="vertical"><LinearLayoutandroid:id="@+id/text_hd"android:layout_width="100dp"android:layout_height="20dp"android:layout_gravity="center_horizontal"android:gravity="center"><TextViewandroid:layout_width="34dp"android:layout_height="5dp"android:background="@drawable/dzzy" /></LinearLayout></LinearLayout></RelativeLayout><ListViewandroid:id="@+id/map_list"android:layout_width="match_parent"android:layout_height="283dp"android:layout_alignParentBottom="true"android:animateLayoutChanges="true"android:background="#ffffff"android:divider="@null"android:dividerHeight="0.5dp"android:scrollbars="none"></ListView></RelativeLayout></LinearLayout>
3.首先要实现AMap.OnMapClickListener(地图点击事件)
public class SiteControltwo extends Activity implements AMap.OnMapClickListener,LocationSource {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sitecontrol_layout);//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mapView.onCreate(savedInstanceState);mapView = findViewById(R.id.map_local);aMap = mapView.getMap();aMap.setOnMapClickListener(this);UiSettings uiSettings = aMap.getUiSettings();uiSettings.setZoomControlsEnabled(false); //隐藏缩放按钮uiSettings.setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示aMap.setLocationSource(this);// 设置定位监听}/*** map点击事件** @param latLng 经纬度*/@Overridepublic void onMapClick(LatLng latLng) {aMap.clear();xx = latLng.latitude;yy = latLng.longitude;MarkerOptions otMarkerOptions = new MarkerOptions();otMarkerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.map_location));otMarkerOptions.position(latLng);aMap.addMarker(otMarkerOptions);doSearchQuery();
// aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));//点击后移动到屏幕中间(这里不需要)}//开始地图图标点击定位@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {aMap.clear();//这里实现定位后的结果}//结束地图图标点击定位@Overridepublic void deactivate() {}}
定位点击获取经纬度展示就完成了
3.根据点击的位置获取周边的信息:
//poi搜索类型private String deepType = " 汽车服务|汽车销售|汽车维修|摩托车服务|餐饮服务|购物服务|生活服务|体育休闲服务|医疗保健服务|住宿服务|风景名胜|商务住宅|政府机构及社会团体|科教文化服务|交通设施服务|金融保险服务|公司企业|道路附属设施|地名地址信息|公共设施";private PoiSearch.Query query;// Poi查询条件类private PoiSearch poiSearch;//Poi查询条件类private ArrayList<PoiItem> poiItems;// poi数据private PoiListAdapteractivity adapter;//adapter/*** 开始进行poi搜索(需要实现PoiSearch.OnPoiSearchListener)*/protected void doSearchQuery() {aMap.setOnMapClickListener(null);// 进行poi搜索时清除掉地图点击事件query = new PoiSearch.Query("", deepType, mcity);// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个city参数表示poi搜索区域(空字符串代表全国)query.setPageSize(50);// 设置每页最多返回多少条poiitemquery.setPageNum(0);// 设置查第一页LatLonPoint lp = new LatLonPoint(xx, yy);poiSearch = new PoiSearch(this, query);poiSearch.setOnPoiSearchListener(this);poiSearch.setBound(new PoiSearch.SearchBound(lp, 20000, true));// 设置搜索区域为以lp点为圆心,其周围2000米范围poiSearch.searchPOIAsyn();// 异步搜索}/*** 搜索结果*/@Overridepublic void onPoiSearched(PoiResult result, int rCode) {aMap.setOnMapClickListener(this);// 进行poi搜索结果后恢复地图点击事件
// System.out.println("===s>>" + result.getPois());if (rCode == AMapException.CODE_AMAP_SUCCESS) {// 搜索poi的结果if (result != null && result.getQuery() != null) {poiItems = result.getPois();// 取得第一页的poiitem数据,页数从数字0开始if (poiItems != null && poiItems.size() > 0) {adapter = new PoiListAdapteractivity(this, poiItems);mapList.setAdapter(adapter);mapList.setOnItemClickListener(new SiteControltwo.mOnItemClickListener());} else {System.out.println("无结果");}} else {System.out.println("无结果");}} else {System.out.println("error_other:" + rCode);}}@Overridepublic void onPoiItemSearched(PoiItem poiItem, int i) {}//点击返回上一页的值private class mOnItemClickListener implements AdapterView.OnItemClickListener {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {String lat = String.valueOf(poiItems.get(position).getLatLonPoint().getLatitude());String longa = String.valueOf(poiItems.get(position).getLatLonPoint().getLongitude());mcity = poiItems.get(position).getCityName();System.out.println("选择信息打印:" + poiItems.get(position).getProvinceName() + "、" + poiItems.get(position).getCityName() + "、" + poiItems.get(position).getAdName());}}
PoiListAdapteractivity系列:
public class PoiListAdapteractivity extends BaseAdapter {private Context ctx;private List<PoiItem> list;public PoiListAdapteractivity(Context context, List<PoiItem> poiList) {this.ctx = context;this.list = poiList;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (convertView == null) {holder = new ViewHolder();convertView = View.inflate(ctx, R.layout.maplistview_item, null);holder.poititle = (TextView) convertView.findViewById(R.id.poititle);holder.poimiaoshu = (TextView) convertView.findViewById(R.id.poimiaoshu);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}PoiItem item = list.get(position);
// if (position == 0) {
// SpannableStringBuilder span = new SpannableStringBuilder("【当前】" + item.getTitle());
// span.setSpan(new ForegroundColorSpan(Color.parseColor("#3FBF7F")), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// holder.poititle.setText(span);
// } else {holder.poititle.setText(item.getTitle());
// }holder.poimiaoshu.setText(item.getSnippet());return convertView;}private class ViewHolder {TextView poititle, poimiaoshu;}}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="71dp"android:background="#ffffff"android:orientation="vertical"><RelativeLayoutandroid:id="@+id/relat_rf"android:layout_width="wrap_content"android:layout_height="60dp"><ImageViewandroid:id="@+id/imageView6"android:layout_width="16dp"android:layout_height="16dp"android:layout_marginTop="2dp"android:background="@mipmap/addressmap"android:scaleType="fitXY"android:visibility="gone" /><TextViewandroid:id="@+id/poititle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:layout_marginTop="10dp"android:layout_toRightOf="@+id/imageView6"android:ellipsize="end"android:gravity="center_vertical"android:singleLine="true"android:text="内容"android:textColor="#262626"android:textSize="14dp" /><TextViewandroid:id="@+id/poimiaoshu"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/poititle"android:layout_below="@+id/poititle"android:layout_marginTop="3dp"android:ellipsize="end"android:singleLine="true"android:text="内容"android:textColor="#999999"android:textSize="12dp" /></RelativeLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:layout_alignParentBottom="true"android:layout_marginTop="2dp"android:background="#eeeeee" />
</RelativeLayout>
ok了
下面是activity的完整代码
/*** 功 能 : 选址搜索(点击地图)*/
public class SiteControltwo extends Activity implements View.OnClickListener, AMap.OnMapClickListener, PoiSearch.OnPoiSearchListener, LocationSource {private ImageView black;//返回键private TextView title;//标题private MapView mapView;//地图控件private AMap aMap;private double xx, yy;private String jsxx, jsyy;private String mcity="";//城市//poi搜索类型private String deepType = " 汽车服务|汽车销售|汽车维修|摩托车服务|餐饮服务|购物服务|生活服务|体育休闲服务|医疗保健服务|住宿服务|风景名胜|商务住宅|政府机构及社会团体|科教文化服务|交通设施服务|金融保险服务|公司企业|道路附属设施|地名地址信息|公共设施";private PoiSearch.Query query;// Poi查询条件类private PoiSearch poiSearch;//Poi查询条件类private ArrayList<PoiItem> poiItems;// poi数据private PoiListAdapteractivity adapter;//adapterprivate LinearLayout text_hd;private ListView mapList;//显示listview数据private EditText edittext;private String SouSuo = "";//搜索输入的内容private ImageView imag_deletedz;//清空按钮private int GdZoom=17;//显示地图大小度@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sitecontrol_layout);//传过来的经纬度(为0是没有经纬度需要开启定位取得经纬度)jsxx = getIntent().getStringExtra("xx");jsyy = getIntent().getStringExtra("yy");mcity= getIntent().getStringExtra("city");initUi();//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mapView.onCreate(savedInstanceState);if ("0".equals(jsxx) || "0".equals(jsyy)) {//判断第一次进入(无经纬度)getMyJwd(this);//高德定位的方法(自己封装)} else {xx = Double.parseDouble(jsxx);yy = Double.parseDouble(jsyy);LatLng latlng = new LatLng(xx, yy);MarkerOptions otMarkerOptions = new MarkerOptions();otMarkerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.map_location));otMarkerOptions.position(latlng);aMap.addMarker(otMarkerOptions);aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, GdZoom));doSearchQuery();}//---搜索--edittext = findViewById(R.id.edittext);imag_deletedz = findViewById(R.id.imag_deletedz);imag_deletedz.setOnClickListener(this);edittext.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {//输入前}@Overridepublic void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {//内容变化(输入时)String neirong = edittext.getText().toString();if (!neirong.equals("")) {SouSuo = neirong;if (poiItems != null && poiItems.size() > 0) {poiItems.clear();}Sspoi();} else {doSearchQuery();}}@Overridepublic void afterTextChanged(Editable editable) {//输入后}});}/*** 获取当前位置经纬度和选中城市的数据*/HashMap<String, Object> mapdt = new HashMap<String, Object>();public void getMyJwd(final Context context) {Thread thread = new Thread(new Runnable() {@Overridepublic void run() {MapUtil.getAddress(context, new MapUtil.Result() {@Overridepublic void onSuceece(HashMap<String, Object> jwd) {mapdt = jwd;mcity = String.valueOf(mapdt.get("mcity"));xx = (double) mapdt.get("mCurrentLantitude");yy = (double) mapdt.get("mCurrentLongitude");final LatLng latlng = new LatLng(xx, yy);runOnUiThread(new Runnable() {@Overridepublic void run() {MarkerOptions otMarkerOptions = new MarkerOptions();otMarkerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.map_location));otMarkerOptions.position(latlng);aMap.addMarker(otMarkerOptions);
// aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, GdZoom));aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latlng, GdZoom), 500, null);//带动画移动doSearchQuery();}});}});}});thread.start();}//实例化ui@SuppressLint("WrongConstant")private void initUi() {black = findViewById(R.id.black);black.setOnClickListener(this);title = findViewById(R.id.title);title.setText("定位地址");mapList = findViewById(R.id.map_list);text_hd= findViewById(R.id.text_hd);text_hd.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View view, MotionEvent motionEvent) {switch (motionEvent.getAction()) {case MotionEvent.ACTION_DOWN://按住事件发生后执行代码的区域if (mapList.getVisibility() == 8) {//GONE=8,INVISIBLE=4,VISIBLE=0mapList.setVisibility(View.VISIBLE);} else {mapList.setVisibility(View.GONE);}break;case MotionEvent.ACTION_UP://松开事件发生后执行代码的区域break;case MotionEvent.ACTION_MOVE://移动事件发生后执行代码的区域break;}return true;}});mapView = findViewById(R.id.map_local);aMap = mapView.getMap();aMap.setOnMapClickListener(this);UiSettings uiSettings = aMap.getUiSettings();uiSettings.setZoomControlsEnabled(false); //隐藏缩放按钮uiSettings.setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示aMap.setLocationSource(this);// 设置定位监听
// aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层(小图标与当前范围的圈),false表示隐藏定位层并不可触发定位,默认是false}/*** view点击事件*/@Overridepublic void onClick(View view) {switch (view.getId()) {//返回键case R.id.black:finish();break;//清空case R.id.imag_deletedz:edittext.setText("");doSearchQuery();break;}}/*** map点击事件** @param latLng 经纬度*/@Overridepublic void onMapClick(LatLng latLng) {aMap.clear();xx = latLng.latitude;yy = latLng.longitude;MarkerOptions otMarkerOptions = new MarkerOptions();otMarkerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.map_location));otMarkerOptions.position(latLng);aMap.addMarker(otMarkerOptions);doSearchQuery();
// aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));//点击后移动到屏幕中间(这里不需要)}/*** 开始进行poi搜索*/protected void doSearchQuery() {aMap.setOnMapClickListener(null);// 进行poi搜索时清除掉地图点击事件query = new PoiSearch.Query("", deepType, mcity);// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个city参数表示poi搜索区域(空字符串代表全国)query.setPageSize(50);// 设置每页最多返回多少条poiitemquery.setPageNum(0);// 设置查第一页LatLonPoint lp = new LatLonPoint(xx, yy);poiSearch = new PoiSearch(this, query);poiSearch.setOnPoiSearchListener(this);poiSearch.setBound(new PoiSearch.SearchBound(lp, 20000, true));// 设置搜索区域为以lp点为圆心,其周围2000米范围poiSearch.searchPOIAsyn();// 异步搜索}//搜索poiprivate void Sspoi() {//keyWord表示搜索字符串,//第二个参数表示POI搜索类型//cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索PoiSearch.Query query = new PoiSearch.Query(SouSuo, deepType, mcity);query.setPageSize(50);PoiSearch search = new PoiSearch(this, query);search.setOnPoiSearchListener(this);search.searchPOIAsyn();}/*** 搜索结果*/@Overridepublic void onPoiSearched(PoiResult result, int rCode) {aMap.setOnMapClickListener(this);// 进行poi搜索结果后恢复地图点击事件
// System.out.println("===s>>" + result.getPois());if (rCode == AMapException.CODE_AMAP_SUCCESS) {// 搜索poi的结果if (result != null && result.getQuery() != null) {poiItems = result.getPois();// 取得第一页的poiitem数据,页数从数字0开始if (poiItems != null && poiItems.size() > 0) {adapter = new PoiListAdapteractivity(this, poiItems);mapList.setAdapter(adapter);mapList.setOnItemClickListener(new SiteControltwo.mOnItemClickListener());} else {System.out.println("无结果");}} else {System.out.println("无结果");}} else {System.out.println("error_other:" + rCode);}}@Overridepublic void onPoiItemSearched(PoiItem poiItem, int i) {}//开始地图图标点击定位@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {aMap.clear();getMyJwd(this);}//结束地图图标点击定位@Overridepublic void deactivate() {}//点击返回上一页的值private class mOnItemClickListener implements AdapterView.OnItemClickListener {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {String lat = String.valueOf(poiItems.get(position).getLatLonPoint().getLatitude());String longa = String.valueOf(poiItems.get(position).getLatLonPoint().getLongitude());mcity = poiItems.get(position).getCityName();
// System.out.println("选择信息打印:" + poiItems.get(position).getProvinceName() + "、" + poiItems.get(position).getCityName() + "、" + poiItems.get(position).getAdName());EventBusSite eventBusSite = new EventBusSite(lat, longa, poiItems.get(position).getTitle());EventBus.getDefault().post(eventBusSite);EventBusCity eventBusCity = new EventBusCity( poiItems.get(position).getProvinceName(), mcity, poiItems.get(position).getAdName());EventBus.getDefault().post(eventBusCity);finish();}}}
高德地图自定义定位按钮后搜索周边相关推荐
- 高德地图去掉定位按钮_高德地图自定义定位按钮及点击事件
最近使用了一下高德地图,使用期间将出现的问题记录一下.文中出现不对的地方,悉听各路大神指正.2018年11月23日15:59:46 1.首先我们初始化map控制对象aMap .if (aMap ==n ...
- vue项目使用高德地图的定位及关键字搜索功能
1.首先在index.html引入高德地图的秘钥.如图: 注意:如果使用关键字搜索功能要加上 plugin=AMap.Autocomplete,AMap.PlaceSearch,否则功能无法使用,并会 ...
- 高德地图去掉定位按钮_怎样修改百度地图店名怎么取消高德地图定位
11月28日下午,**百度地图今天公布了与四个北欧旅游局的战略合作,并公布了本月将在非洲.欧洲和亚洲推出的106个国家. 今年4月,百度地图正式发布了*对外开放国际化战略,并在年底宣传完成150多个国 ...
- android呼吸灯动画,Android高德地图自定义定位蓝点实现呼吸灯功能
还是先上个图吧: cluster.gif 说下实现的原理,首先这个定位小蓝点是由两张图片组成的,最底层的一张白色圆形图片以及上一层的蓝色圆形图片,只要不停的对蓝色图片进行透明度动画操作就可以实现这个效 ...
- vue调用高德地图实现定位
vue调用高德地图实现定位 第一步创建高德地图key 第二步:下载vue-amap npm install vue-amap --save 第三步:在项目main.js引入vue-amap impor ...
- 利用高德地图实现定位功能
最近学习使用高德地图可谓是出师不利....嘛,不知道为啥高德给的3d地图的jar包用不了,最后实在没办法用了2d的jar包,然后在大佬和其他资料的帮助下,实现了高德地图的定位功能.接下来就说一下具体的 ...
- 高德地图——浏览器定位+点击获取经纬度+去除高德百度地图左下角logo
高德地图--浏览器定位+点击获取经纬度+去除高德百度地图左下角logo 1.代码 <!doctype html> <html> <head><meta cha ...
- 高德地图H5 定位失败报错 geolocation time out. Get ipLocation failed解决方案
高德地图H5 定位失败报错 geolocation time out. Get ipLocation failed的解决方法. 前言:此坑踩得我挺难受的,搞了三天 需求:进入页面,获取用户具体经纬度并 ...
- Android 高德地图自定义线路规划选择方案之后按照方案进行导航
Android 高德地图自定义线路规划选择方案之后按照方案进行导航 因为我这边导航需求的问题,导致我这边不能使用高德地图官方的线路规划和导航.所以我这边线路规划和导航界面都是根据高德地图那边给的api ...
- 高德地图的定位和大头针
最近没事研究了下高德地图的使用,简单的介绍下高德地图的定位和大头针功能,至于关键字检索POI等功能 ,可以去看完整的Demo: 使用高德地图 首先导入高德SDK,至于导入的具体方法,可以去看官网:ht ...
最新文章
- C/C++ struct 区别
- 【DIY】RGB光立方
- linux编程之pthread_create函数
- 中国市场新财富与新人群趋势
- 【算法大赛直播周】如何赋予机器更多“想象力”?《计算广告》作者刘鹏带你解密深度学习
- RelativeLayout相对布局
- 世间再无霍金,时间永留简史
- python-rrdtool python-pyrrd
- C#中的类型转换(转载)
- concat oracle 多个字符串_史上最全的MySQL 字符串函数,赶紧收藏!!
- icem二维非结构网格划分_“白皮书”系列No.26——科研小工具之ICEM
- Mysql 根据经纬度计算距离
- 部署Lync For 移动设备 一
- 计算机怎么合并单元格并保存内容,怎么合并单元格并保留所有数据
- Mac Wireshark 设置中文
- python中一切都是对象对吗_在 Python 中一切皆对象,它完全支持()
- 天翼云服务器共享文件夹,天翼云Windows操作解答
- easyui datagrid th标签列数字保留2位小数
- python学习之面向对象(二)
- 计算机操作系统第四版复习+部分课后题+习题
热门文章
- 菜鸡解析CSS(cascading style sheet)
- 【随笔】Linux刷脏页
- iMazing中IPA文件的介绍与管理
- AUTOSAR初了解
- LoadBalancer集成Nacos实现负载均衡
- Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535
- 高德地图标识大全_连地震都查得一清二楚!高德地图新功能体验
- 抽象代数之三次方程的求根公式和构造一类整系数三次方程
- playwright 组件超时问题
- c语言题目小鱼的游泳时间,java实现计算小鱼的游泳时间