From 45e69852f43abe0f79967786ada3c7cf887b5b48 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 24 九月 2024 10:53:14 +0800 Subject: [PATCH] 从服务端获取取水口坐标并显示在地图上 --- app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 74 +++++++++++++++++++++++++++++++----- 1 files changed, 63 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java index e4c7378..7c122e4 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java @@ -17,9 +17,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.bean.db.CenterPointBean; import com.dayu.pipirrapp.bean.net.CenterPointResult; +import com.dayu.pipirrapp.bean.net.MarkerResult; import com.dayu.pipirrapp.dao.DaoSingleton; import com.dayu.pipirrapp.databinding.FragmentMapBinding; import com.dayu.pipirrapp.js.MyWebViewInterface; @@ -37,8 +37,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.util.HashMap; -import java.util.Map; import java.util.Random; /** @@ -56,6 +54,7 @@ WebView mWebView; CenterPointBean centerPointBean; + String jsonData; @Override public void onAttach(@NonNull Context context) { @@ -81,6 +80,8 @@ mWebView.loadUrl("file:///android_asset/index.html"); getCenterPoint(); initView(); + initData(); + getMarkerData(); //寮�鍚畾浣� // Intent location = new Intent(this.getActivity(), MyLocationService.class); // location.putExtra("isSingle", false); @@ -89,10 +90,64 @@ } private void initData() { - centerPointBean = DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().findFirst(); - if (centerPointBean!=null){ + jumpCenterPoint(); + } + /** + * 璺宠浆鍦板浘涓績鐐� + */ + public void jumpCenterPoint() { + + centerPointBean = DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().findFirst(); + if (centerPointBean != null) { + Log.d(TAG, "jumpCenterPoint>>>>>>>>>>>>>>>>>>>" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat()); + mWebView.evaluateJavascript("javascript:setCenterAndZoom(\"" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat() + "\")", value -> { + }); } + } + + public void setMapMarker(){ + Log.i("mWebView", "addMarker????????????" + jsonData); + mWebView.evaluateJavascript("javascript:addMarker(\"" + jsonData + "\")", new ValueCallback<String>() { + @Override + public void onReceiveValue(String value) { + Log.i("mWebView", "addMarker锛侊紒锛侊紒锛侊紒锛侊紒锛�" + value); + } + }); + } + + + + private void getMarkerData() { + ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + ":8085/project/intake/all", MarkerResult.class, null, new SubscriberListener<BaseResponse<MarkerResult>>() { + @Override + public void onNext(BaseResponse<MarkerResult> t) { + if (t.isSuccess()) { + if (t.isSuccess()) { + if (t.getContent().getObj() != null && !t.getContent().getObj().isEmpty()) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("["); + for (int i = 0; i < t.getContent().getObj().size(); i++) { + stringBuilder.append("["); + stringBuilder.append(t.getContent().getObj().get(i).getLng()); + stringBuilder.append(","); + stringBuilder.append(t.getContent().getObj().get(i).getLat()); + stringBuilder.append(",\"" + t.getContent().getObj().get(i).getName() + "\"]"); + if (i != t.getContent().getObj().size() - 1) { + stringBuilder.append(","); + } + } + stringBuilder.append("]"); + jsonData = stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); + + } + } + } else { + ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); + } + } + + }); } @@ -123,7 +178,6 @@ } stringBuilder.append("[116.417854,39.921988,\"235鍙栨按鍙"]]"); String jsonData = stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); -// String jsonData = "[[116.417854,39.921988,\"235鍙栨按鍙"],[116.406605,39.921585,\"237鍙栨按鍙"],[116.412222,39.912345,\"236鍙栨按鍙"]]"; Log.i("mWebView", "addMarker????????????" + jsonData); mWebView.evaluateJavascript("javascript:addMarker(\"" + jsonData + "\")", new ValueCallback<String>() { @Override @@ -132,7 +186,6 @@ } }); } - @Override public void onResume() { @@ -228,10 +281,8 @@ * 鑾峰彇鍦板浘涓績鐐� */ private void getCenterPoint() { - Map<String, Object> data = new HashMap<>(); - data.put("token", MyApplication.myApplication.token); - ApiManager.getInstance().requestGet(this.getContext(), Constants.SUCCESS + "8080/base/dict_item/map_center", CenterPointResult.class, data, new SubscriberListener<BaseResponse<CenterPointResult>>() { + ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + ":8080/base/dict_item/map_center", CenterPointResult.class, null, new SubscriberListener<BaseResponse<CenterPointResult>>() { @Override public void onNext(BaseResponse<CenterPointResult> t) { if (t.isSuccess()) { @@ -240,7 +291,8 @@ } centerPointBean.setLat(t.getContent().getLat()); centerPointBean.setLng(t.getContent().getLng()); - DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().update(centerPointBean); + DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().insert(centerPointBean); + jumpCenterPoint(); } else { ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); } -- Gitblit v1.8.0