Commit 5728e76f by luo_sp

增加地址接口回调操作类型

parent 145069a8
......@@ -8,7 +8,6 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import cn.com.founder.arcgislib.ArcGisFounder;
import cn.com.founder.arcgislib.cluster.option.IArcGisClusterOption;
import cn.com.founder.arcgislib.compass.option.IArcGisCompassOption;
import cn.com.founder.arcgislib.location.option.IArcGisLocationOption;
import cn.com.founder.arcgislib.view.ArcGisBaseView;
......@@ -42,8 +41,8 @@ public class MainActivity extends AppCompatActivity {
.setDefaultArcGisCompass()//设置默认罗盘
.setOpenNavi()//开启导航
// .setOpenSearch()//开启搜索
.setOpenHotPots()//开启热力图
.setOpenCluster()//开启聚合
// .setOpenHotPots()//开启热力图
// .setOpenCluster()//开启聚合
.createArcGisFounder();//创建ArcGisFounder地图实例
IArcGisZoomOption iArcGisZoomOption = arcGisFounder.arcGisZoomOption();
......@@ -90,8 +89,8 @@ public class MainActivity extends AppCompatActivity {
IArcGisCompassOption iArcGisCompassOption = arcGisFounder.arcGisCompassOption();
iArcGisCompassOption.setIRotationAngleListener(() -> Toast.makeText(MainActivity.this, "转动结束。。。", Toast.LENGTH_LONG).show());
IArcGisClusterOption iArcGisClusterOption = arcGisFounder.arcGisClusterOption();
iArcGisClusterOption.setCluseterData(null);
// IArcGisClusterOption iArcGisClusterOption = arcGisFounder.arcGisClusterOption();
// iArcGisClusterOption.setCluseterData(null);
}
}
\ No newline at end of file
......@@ -73,7 +73,7 @@ public class Variable {
}
public static enum LocationChangeType implements Parcelable {
STARTA_LOCATION,
START_LOCATION,
MOVE_MAP,
CLICK_MAP,
IMPORT_POINT,
......
......@@ -9,35 +9,48 @@ package cn.com.founder.arcgislib.constants;
*/
public class Constants {
/*****************************************互联网***********************************************/
//互联网-地图
private static String baseUrl = "http://47.92.225.109:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//互联网-Geo
private static String baseGeoUrl = "http://47.92.226.24:8051/selectVdzjx";
//互联网-搜索
private static String searchUrl = "http://47.92.226.24:8051/selectPoiDataList";
//互联网-导航
private static String naviUrl = "minedata.cn/lbsservice/navi/";
/**********************************************************************************************/
/**
* 测试热力图
*/
private static String hotPotsUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot";
/**
* argis证书
*/
private static String baseRunTime = "runtimelite,1000,rud9526010123,none,XXMFA0PL4S0MC2EN0175";
/**
* 天地图key,使用的是服务器端
*/
private static String baseTianDiTuKey = "39edeab91620fe3c5a1b282228ef6e46";
private static String baseTianDiTuGeoUrl = "http://api.tianditu.gov.cn/geocoder";
/*****************************************用户网***********************************************
//用户网-地图
private static String baseUrl = "http://20.97.50.41:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//互联网-Geo
private static String baseGeoUrl = "http://20.97.50.41:8050/selectVdzjx";
//用户网-搜索
private static String searchUrl = "http://20.97.50.41:8051/selectPoiDataList";
/**********************************************************************************************/
//互联网-地图
private static String baseUrl = "http://47.92.225.109:6080/arcgis/rest/services/founder/dg20191120/MapServer";
/*****************************************公安网***********************************************
//公安网-地图
// private static String baseUrl = "http://68.174.69.45:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//用户网-地图
// private static String baseUrl = "http://20.97.50.41:6080/arcgis/rest/services/founder/dg20191120/MapServer";
private static String baseUrl = "http://68.174.69.45:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//公安网-Geo
private static String baseGeoUrl = "http://68.174.69.46:8051/selectVdzjx";
//公安网-搜索
private static String searchUrl = "http://68.174.69.46:8051/selectPoiDataList";
//公安网-导航
private static String naviUrl = "http://68.26.19.5/";
/**********************************************************************************************/
// argis证书
private static String baseRunTime = "runtimelite,1000,rud9526010123,none,XXMFA0PL4S0MC2EN0175";
//天地图key,使用的是服务器端
private static String baseTianDiTuKey = "39edeab91620fe3c5a1b282228ef6e46";
//天地图Geo
private static String baseTianDiTuGeoUrl = "http://api.tianditu.gov.cn/geocoder";
//测试热力图
private static String hotPotsUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot";
//互联网-搜索接口
private static String searchUrl = "http://47.92.226.24:8051/selectPoiDataList";
//公安网-搜索接口
// private static String searchUrl = "http://68.174.69.46:8051/selectPoiDataList";
//用户网
// private static String searchUrl = "http://20.97.50.41:8051/selectPoiDataList";
//arcGis证书
public static final String BASE_MAP_RUNTIME = baseRunTime;
......@@ -45,10 +58,14 @@ public class Constants {
public static final String BASE_MAP_SERVER_URL = baseUrl;
//天地图
public static final String BASE_TIANDITU_KEY = baseTianDiTuKey;
//逆地理编码查询
//天地图逆地理编码查询
public static final String BASE_TIANDITU_GEO_URL = baseTianDiTuGeoUrl;
//逆地理编码
public static final String BASE_GEO_URL = baseGeoUrl;
//搜索
public static final String BASE_SEARCH_URL = searchUrl;
//导航
public static final String BASE_NAVI_URL = naviUrl;
//热力图
public static final String BASE_HOT_POTS_URL = hotPotsUrl;
......
......@@ -154,8 +154,21 @@ public class LocationModel implements Parcelable {
this.extraInfo = extraInfo;
}
public Variable.LocationChangeType getLocationChangeType() {
return locationChangeType;
public String getLocationChangeType() {
switch (locationChangeType){
case START_LOCATION:
return "START_LOCATION";
case MOVE_MAP:
return "MOVE_MAP";
case CLICK_MAP:
return "CLICK_MAP";
case IMPORT_POINT:
return "IMPORT_POINT";
case CALLOUT_OK:
return "CALLOUT_OK";
default:
return "未知操作";
}
}
public void setLocationChangeType(Variable.LocationChangeType locationChangeType) {
......
......@@ -9,6 +9,8 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
import com.esri.arcgisruntime.geometry.Point;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
......@@ -227,4 +229,30 @@ public class ToolUtil {
}
return newList;
}
/**
* 通过中心点获取指定范围内的最大最小经纬度
* @param point 中心点
* @param distance 距离 单位km
* @return 数组:最大经度,最小经度,最大纬度,最小纬度
*/
public static double[] calcMaxMinLng(Point point, double distance){
//范围
double range = 180 / Math.PI * distance / 6372.797;
//经度弧度
double lngRad = range / Math.cos(point.getY() * Math.PI / 180);
double[] resultPoint = new double[4];
//最大经度
resultPoint[0] = point.getX() + lngRad;
//最小经度
resultPoint[1] = point.getX() - lngRad;
//最大纬度
resultPoint[2] = point.getY() + range;
//最小纬度
resultPoint[3] = point.getY() - range;
return resultPoint;
}
}
......@@ -60,6 +60,7 @@ import java.util.List;
import cn.com.founder.arcgislib.R;
import cn.com.founder.arcgislib.common.Variable;
import cn.com.founder.arcgislib.constants.Constants;
import cn.com.founder.arcgislib.model.SearchModel;
import cn.com.founder.arcgislib.search.listener.ISearchSelectedListener;
import cn.com.founder.arcgislib.utils.DensityUtil;
......@@ -220,7 +221,7 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
private void initRoute() {
//互联网是GCJ-02,内网是WGS-84:内网不用转,在互联网上测试时转换时先将自己的地图点(WGS-84,ArcGis(4326))转换成GCJ-02,获取到路网数据以后,再将GCJ-02转换成WGS-84坐标
if (mineNaviRoute == null) {
MineNaviMain.getInstance().setNaviURL("minedata.cn/lbsservice/navi/");
MineNaviMain.getInstance().setNaviURL(Constants.BASE_NAVI_URL);
/**
* 获取路径
*/
......@@ -530,20 +531,20 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
Log.i(TAG, "====GPS回调经纬度=======" + simpleGidPoint.pos.getLatitude() + "," + simpleGidPoint.pos.getLongitude());
}
arcGisLocationView.mRouteMarkerGraphicsOverlay.getGraphics().clear();
if(matchRes != null){
if (matchRes != null) {
double[] pointArr = GpsUtil.toWGS84Point(matchRes.pos.getLatitude(), matchRes.pos.getLongitude());
Point point = new Point(pointArr[1],pointArr[0], SpatialReference.create(4326));
Point point = new Point(pointArr[1], pointArr[0], SpatialReference.create(4326));
try {
BitmapDrawable bitmapDrawableNormal = (BitmapDrawable) ContextCompat
.getDrawable(mContext, R.drawable.icon_route_text_start);
PictureMarkerSymbol destinationSymbolNormal= PictureMarkerSymbol.createAsync(bitmapDrawableNormal).get();
if(matchRes.dir < 0){
PictureMarkerSymbol destinationSymbolNormal = PictureMarkerSymbol.createAsync(bitmapDrawableNormal).get();
if (matchRes.dir < 0) {
matchRes.dir += 360;
}
destinationSymbolNormal.setAngle( -matchRes.dir);
destinationSymbolNormal.setAngle(-matchRes.dir);
arcGisLocationView.mRouteMarkerGraphicsOverlay.getGraphics().add(new Graphic(point, destinationSymbolNormal));
arcGisLocationView.mMapView.setViewpointCenterAsync(point);
arcGisLocationView.mMapView.setViewpointScaleAsync(mapScanleValue/20);
arcGisLocationView.mMapView.setViewpointScaleAsync(mapScanleValue / 20);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -933,11 +934,11 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
naviTv.setOnClickListener(view -> {
startNavi();
mineNaviGuide.startDemo();
mineNaviGuide.setDemoSpeed(MineNaviGuide.DEMO_SPEED_Middle);
// mineNaviGuide.startDemo();
// mineNaviGuide.setDemoSpeed(MineNaviGuide.DEMO_SPEED_Middle);
//导航
// mineNaviGuide.startGuide();
mineNaviGuide.startGuide();
});
addView(bottomView);
}
......@@ -947,7 +948,7 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
private void startNavi() {
Toast.makeText(mContext, "开始导航", Toast.LENGTH_LONG).show();
ttsProvider.startSpeak("模拟导航开始");
ttsProvider.startSpeak("导航开始");
if (bottomView != null) {
bottomView.setVisibility(View.GONE);
......@@ -963,9 +964,9 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
}
if (ArcGisSearchView.instance != null) {
if(isHasSearchView){
if (isHasSearchView) {
ArcGisSearchView.instance.setVisibility(View.VISIBLE);
}else{
} else {
ArcGisSearchView.instance.setVisibility(View.GONE);
}
......@@ -1006,7 +1007,7 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
@Override
protected void onWindowVisibilityChanged(int visibility) {
super.onWindowVisibilityChanged(visibility);
switch (visibility){
switch (visibility) {
case 0://onResume
break;
......
......@@ -27,6 +27,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.minedata.minenavi.common.OkHttp3Utils;
import org.json.JSONException;
......@@ -354,9 +356,24 @@ public class ArcGisSearchView extends LinearLayout {
disDialog();
if (response.isSuccessful()) {
if (response.body() != null) {
String jsonString = GsonUtil.getNoteJsonString(response.body().string(), "data");
List<SearchModel> searchModelList = (List<SearchModel>) GsonUtil.jsonToList(jsonString, SearchModel.class);
if (searchModelList != null && searchModelList.size() > 0) {
String responseStr = response.body().string();
JsonObject jsonObject = GsonUtil.gsonToBean(responseStr, JsonObject.class);
int status = jsonObject.get("status").getAsInt();
if (status == 200) {
JsonArray dataArray = jsonObject.get("data").getAsJsonArray();
if(dataArray !=null && dataArray.size() > 0){
List<SearchModel> searchModelList = new ArrayList<>();
for (int i = 0; i < dataArray.size(); i++) {
JsonObject jsonObject1 = (JsonObject) dataArray.get(i);
SearchModel searchModel = new SearchModel();
searchModel.setX(jsonObject1.get("x").getAsDouble());
searchModel.setY(jsonObject1.get("y").getAsDouble());
searchModel.setPoiaddress(jsonObject1.get("poiaddress").getAsString());
searchModel.setPoiname(jsonObject1.get("poiname").getAsString());
searchModelList.add(searchModel);
}
if (searchModelList.size() > 0) {
Message message = new Message();
message.what = HANDLE_MSG_HAS_DATA;
message.obj = searchModelList;
......@@ -365,6 +382,14 @@ public class ArcGisSearchView extends LinearLayout {
mHandler.sendEmptyMessage(HANDLE_MSG_NO_DATA);
}
}else{
mHandler.sendEmptyMessage(HANDLE_MSG_NO_DATA);
}
}else{
mHandler.sendEmptyMessage(HANDLE_MSG_NO_DATA);
}
} else {
mHandler.sendEmptyMessage(HANDLE_MSG_NO_DATA);
}
......
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