Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
app-FounderMap
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
app-FounderMap
Commits
6d4d2c2f
Commit
6d4d2c2f
authored
Jun 30, 2020
by
Luosp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加聚合样式
parent
14af1553
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
732 additions
and
746 deletions
+732
-746
app/src/main/AndroidManifest.xml
+3
-1
app/src/main/java/cn/com/founder/arcgisserver/MainActivity.java
+69
-19
app/src/main/res/layout/activity_main.xml
+8
-3
arcgislib/build.gradle
+1
-2
arcgislib/libs/MineNaviSDK-2.0.7.3.aar
+0
-0
arcgislib/proguard-rules.pro
+6
-7
arcgislib/src/main/java/cn/com/founder/arcgislib/ArcGisFounder.java
+1
-1
arcgislib/src/main/java/cn/com/founder/arcgislib/cluster/ArcGisCluster.java
+46
-4
arcgislib/src/main/java/cn/com/founder/arcgislib/cluster/option/IArcGisClusterOption.java
+31
-3
arcgislib/src/main/java/cn/com/founder/arcgislib/common/Variable.java
+1
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/constants/Constants.java
+52
-21
arcgislib/src/main/java/cn/com/founder/arcgislib/location/ArcGisLocation.java
+10
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/location/option/IArcGisLocationOption.java
+7
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/model/LocationModel.java
+7
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/navi/ArcGisNavi.java
+7
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/navi/option/IArcGisNaviOption.java
+8
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/search/ArcGisSearch.java
+17
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/search/option/IArcGisSearchOption.java
+14
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/utils/KeyboardUtil.java
+138
-20
arcgislib/src/main/java/cn/com/founder/arcgislib/utils/ToolUtil.java
+22
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisClusterView.java
+0
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisHotPotsView.java
+1
-1
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisLocationView.java
+49
-20
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisMapView.java
+58
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisNaviView.java
+94
-10
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisSearchView.java
+0
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/cluster/ClusterLayer.java
+50
-25
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/popup/PopupLayout.java
+30
-28
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/ScrollLayout.java
+0
-0
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentListView.java
+0
-240
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentRecyclerView.java
+0
-135
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentScrollView.java
+0
-84
arcgislib/src/main/res/layout/layout_search.xml
+0
-121
arcgislib/src/main/res/values/strings.xml
+2
-1
No files found.
app/src/main/AndroidManifest.xml
View file @
6d4d2c2f
...
@@ -16,7 +16,9 @@
...
@@ -16,7 +16,9 @@
android:requestLegacyExternalStorage=
"true"
android:requestLegacyExternalStorage=
"true"
tools:ignore=
"GoogleAppIndexingWarning"
tools:ignore=
"GoogleAppIndexingWarning"
tools:targetApi=
"q"
>
tools:targetApi=
"q"
>
<activity
android:name=
".MainActivity"
>
<activity
android:name=
".MainActivity"
android:windowSoftInputMode=
"stateAlwaysHidden|adjustPan"
>
<intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/cn/com/founder/arcgisserver/MainActivity.java
View file @
6d4d2c2f
...
@@ -3,6 +3,7 @@ package cn.com.founder.arcgisserver;
...
@@ -3,6 +3,7 @@ package cn.com.founder.arcgisserver;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
...
@@ -11,30 +12,44 @@ import java.util.ArrayList;
...
@@ -11,30 +12,44 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
cn.com.founder.arcgislib.ArcGisFounder
;
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.compass.option.IArcGisCompassOption
;
import
cn.com.founder.arcgislib.location.option.IArcGisLocationOption
;
import
cn.com.founder.arcgislib.location.option.IArcGisLocationOption
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.model.SearchModel
;
import
cn.com.founder.arcgislib.search.listener.ISearchSelectedListener
;
import
cn.com.founder.arcgislib.search.option.IArcGisSearchOption
;
import
cn.com.founder.arcgislib.view.ArcGisBaseView
;
import
cn.com.founder.arcgislib.view.ArcGisBaseView
;
import
cn.com.founder.arcgislib.view.ArcGisClusterView
;
import
cn.com.founder.arcgislib.zoom.listener.IZoomClickListener
;
import
cn.com.founder.arcgislib.zoom.listener.IZoomClickListener
;
import
cn.com.founder.arcgislib.zoom.option.IArcGisZoomOption
;
import
cn.com.founder.arcgislib.zoom.option.IArcGisZoomOption
;
public
class
MainActivity
extends
AppCompatActivity
{
public
class
MainActivity
extends
AppCompatActivity
{
// private LifecycleRegistry mLifecycleRegistry;
// private LifecycleRegistry mLifecycleRegistry;
private
ArcGisFounder
arcGisFounder
;
private
Button
naviBt
;
/**
* @param savedInstanceState
*/
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
setContentView
(
R
.
layout
.
activity_main
);
naviBt
=
findViewById
(
R
.
id
.
bt_navi
);
ArcGisBaseView
arcGisBaseView
=
findViewById
(
R
.
id
.
main_arc_gis_base_view
);
ArcGisBaseView
arcGisBaseView
=
findViewById
(
R
.
id
.
main_arc_gis_base_view
);
//集成Activity
//集成Activity
// mLifecycleRegistry = new LifecycleRegistry(this);
// mLifecycleRegistry = new LifecycleRegistry(this);
// mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
// mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
ArcGisFounder
arcGisFounder
=
ArcGisFounder
.
with
(
this
)
//context
initData
(
arcGisBaseView
);
}
private
void
initData
(
ArcGisBaseView
arcGisBaseView
){
arcGisFounder
=
ArcGisFounder
.
with
(
this
)
//context
.
setParentLayout
(
arcGisBaseView
)
//设置父布局
.
setParentLayout
(
arcGisBaseView
)
//设置父布局
.
setLifecycle
(
getLifecycle
())
//生命周期管理
.
setLifecycle
(
getLifecycle
())
//生命周期管理
.
setBackgroundGridColor
(
Color
.
WHITE
)
//设置地图网格背景色
.
setBackgroundGridColor
(
Color
.
WHITE
)
//设置地图网格背景色
...
@@ -44,9 +59,9 @@ public class MainActivity extends AppCompatActivity {
...
@@ -44,9 +59,9 @@ public class MainActivity extends AppCompatActivity {
.
setDefaultArcGisZoom
()
//设置默认缩放
.
setDefaultArcGisZoom
()
//设置默认缩放
.
setDefaultArcGisCompass
()
//设置默认罗盘
.
setDefaultArcGisCompass
()
//设置默认罗盘
.
setOpenNavi
()
//开启导航
.
setOpenNavi
()
//开启导航
//
.setOpenSearch()//开启搜索
.
setOpenSearch
()
//开启搜索
// .setOpenHotPots()//开启热力图
// .setOpenHotPots()//开启热力图
//
.setOpenCluster()//开启聚合
.
setOpenCluster
()
//开启聚合
.
createArcGisFounder
();
//创建ArcGisFounder地图实例
.
createArcGisFounder
();
//创建ArcGisFounder地图实例
IArcGisZoomOption
iArcGisZoomOption
=
arcGisFounder
.
arcGisZoomOption
();
IArcGisZoomOption
iArcGisZoomOption
=
arcGisFounder
.
arcGisZoomOption
();
...
@@ -65,19 +80,20 @@ public class MainActivity extends AppCompatActivity {
...
@@ -65,19 +80,20 @@ public class MainActivity extends AppCompatActivity {
});
});
IArcGisLocationOption
iArcGisLocationOption
=
arcGisFounder
.
arcGisLocationOption
();
IArcGisLocationOption
iArcGisLocationOption
=
arcGisFounder
.
arcGisLocationOption
();
iArcGisLocationOption
.
setGeoDistance
(
0.5
);
//自动定位;;;
//自动定位;;;
// iArcGisLocationOption.startLocation(0);
// iArcGisLocationOption.startLocation(0);
//手动定位
//手动定位
iArcGisLocationOption
.
startLocation
(
113.75179
,
23.02067
,
0
);
iArcGisLocationOption
.
startLocation
(
113.75179
,
23.02067
,
0
);
//开启TXT导入
//开启TXT导入
iArcGisLocationOption
.
setShowTXTImportLayout
(
true
);
//
iArcGisLocationOption.setShowTXTImportLayout(true);
List
<
PointModel
>
pointModels
=
new
ArrayList
<>();
//
List<PointModel> pointModels = new ArrayList<>();
pointModels
.
add
(
new
PointModel
(
113.935576
,
22.995918
));
//
pointModels.add(new PointModel(113.935576,22.995918));
pointModels
.
add
(
new
PointModel
(
113.959722
,
23.000176
));
//
pointModels.add(new PointModel(113.959722,23.000176));
pointModels
.
add
(
new
PointModel
(
113.97582
,
22.949069
));
//
pointModels.add(new PointModel(113.97582,22.949069));
pointModels
.
add
(
new
PointModel
(
113.952823
,
22.916051
));
//
pointModels.add(new PointModel(113.952823,22.916051));
pointModels
.
add
(
new
PointModel
(
114.019513
,
22.951198
));
//
pointModels.add(new PointModel(114.019513,22.951198));
iArcGisLocationOption
.
setImportPointData
(
pointModels
);
//
iArcGisLocationOption.setImportPointData(pointModels);
//移动地图获取中心点
//移动地图获取中心点
// iArcGisLocationOption.setFollowMapViewPoint(true);
// iArcGisLocationOption.setFollowMapViewPoint(true);
//隐藏poi信息
//隐藏poi信息
...
@@ -100,8 +116,43 @@ public class MainActivity extends AppCompatActivity {
...
@@ -100,8 +116,43 @@ public class MainActivity extends AppCompatActivity {
IArcGisCompassOption
iArcGisCompassOption
=
arcGisFounder
.
arcGisCompassOption
();
IArcGisCompassOption
iArcGisCompassOption
=
arcGisFounder
.
arcGisCompassOption
();
iArcGisCompassOption
.
setIRotationAngleListener
(()
->
Toast
.
makeText
(
MainActivity
.
this
,
"转动结束。。。"
,
Toast
.
LENGTH_LONG
).
show
());
iArcGisCompassOption
.
setIRotationAngleListener
(()
->
Toast
.
makeText
(
MainActivity
.
this
,
"转动结束。。。"
,
Toast
.
LENGTH_LONG
).
show
());
// IArcGisClusterOption iArcGisClusterOption = arcGisFounder.arcGisClusterOption();
//放在点击事件中调用或者当页面完全加载完成后调用
// iArcGisClusterOption.setCluseterData(null);
naviBt
.
setOnClickListener
(
view
->
{
}
// IArcGisNaviOption iArcGisNaviOption = arcGisFounder.arcGisNaviOption();
// PointModel startPoint = new PointModel(113.6242709,22.8810121,"新丽佳百货");
// PointModel endPoint = new PointModel(113.6351135,22.8874085,"大自然花场");
//
// iArcGisNaviOption.setCustomPointNavi(startPoint,endPoint);
//必须开启搜索功能
IArcGisSearchOption
iArcGisSearchOption
=
arcGisFounder
.
arcGisSearchOption
();
iArcGisSearchOption
.
setSearchData
(
0
,
"公安局"
);
iArcGisSearchOption
.
setSearchSelectedListener
(
new
ISearchSelectedListener
()
{
@Override
public
void
selectedResult
(
SearchModel
searchModel
)
{
}
});
}
});
\ No newline at end of file
IArcGisClusterOption
iArcGisClusterOption
=
arcGisFounder
.
arcGisClusterOption
();
ArcGisClusterView
.
ClusterStyleBuilder
clusterStyleBuilder
=
iArcGisClusterOption
.
getClusterStyleBuilder
();
clusterStyleBuilder
.
setmClusterCircleBg
(
R
.
color
.
blue
);
List
<
PointModel
>
pointList
=
new
ArrayList
<>();
pointList
.
add
(
new
PointModel
(
113.935576
,
22.995918
));
pointList
.
add
(
new
PointModel
(
113.959722
,
23.000176
));
pointList
.
add
(
new
PointModel
(
113.97582
,
22.949069
));
pointList
.
add
(
new
PointModel
(
113.952823
,
22.916051
));
pointList
.
add
(
new
PointModel
(
114.019513
,
22.951198
));
iArcGisClusterOption
.
setCluseterData
(
pointList
);
iArcGisClusterOption
.
setIClusterPointInfoListener
(
locationModel
->
Toast
.
makeText
(
MainActivity
.
this
,
"X:"
+
locationModel
.
getXPoint
()
+
"\nY:"
+
locationModel
.
getYPoint
()
+
"\n地址:"
+
locationModel
.
getAddress
()
+
"\nPoi:"
+
locationModel
.
getPoi
()
+
"\n补充信息:"
+
locationModel
.
getExtraInfo
()
,
Toast
.
LENGTH_LONG
).
show
());
}
}
app/src/main/res/layout/activity_main.xml
View file @
6d4d2c2f
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Frame
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
...
@@ -9,5 +9,10 @@
...
@@ -9,5 +9,10 @@
android:id=
"@+id/main_arc_gis_base_view"
android:id=
"@+id/main_arc_gis_base_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"match_parent"
/>
<Button
android:id=
"@+id/bt_navi"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"导航"
/>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
\ No newline at end of file
arcgislib/build.gradle
View file @
6d4d2c2f
...
@@ -59,10 +59,9 @@ dependencies {
...
@@ -59,10 +59,9 @@ dependencies {
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
implementation
'androidx.recyclerview:recyclerview:1.1.0'
implementation
'androidx.recyclerview:recyclerview:1.1.0'
//arcgis地图
//arcgis地图
implementation
'com.esri.arcgisruntime:arcgis-android:100.6.0'
api
'com.esri.arcgisruntime:arcgis-android:100.6.0'
//权限
//权限
implementation
'com.yanzhenjie:permission:2.0.3'
implementation
'com.yanzhenjie:permission:2.0.3'
//导航
implementation
'com.jakewharton.timber:timber:4.5.1'
implementation
'com.jakewharton.timber:timber:4.5.1'
implementation
'com.google.code.gson:gson:2.8.5'
implementation
'com.google.code.gson:gson:2.8.5'
implementation
'com.mapzen.android:lost:2.1.2'
implementation
'com.mapzen.android:lost:2.1.2'
...
...
arcgislib/libs/MineNaviSDK-2.0.7.3.aar
deleted
100644 → 0
View file @
14af1553
File deleted
arcgislib/proguard-rules.pro
View file @
6d4d2c2f
...
@@ -175,6 +175,10 @@
...
@@ -175,6 +175,10 @@
public *;
public *;
}
}
-keepclassmembers class cn.com.founder.arcgislib.view.ArcGisClusterView$ClusterStyleBuilder{
public *;
}
-keep class cn.com.founder.arcgislib.location.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.location.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.location.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.location.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.compass.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.compass.listener.
*
*{ *; }
...
@@ -184,20 +188,15 @@
...
@@ -184,20 +188,15 @@
-keep class cn.com.founder.arcgislib.search.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.search.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.search.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.search.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.navi.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.navi.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.cluster.listener.
*
*{ *; }
-keep class cn.com.founder.arcgislib.cluster.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.cluster.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.hotpots.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.hotpots.option.
*
*{ *; }
-keep class cn.com.founder.arcgislib.model.
*
*{ *; }
-keep class cn.com.founder.arcgislib.model.
*
*{ *; }
-keep class cn.com.founder.arcgislib.view.
*
*{ *; }
-keep class cn.com.founder.arcgislib.view.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.cluster.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.cluster.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.navi.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.navi.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.popup.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.popup.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.scrolllayout.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.scrolllayout.content.
*
*{ *; }
-keep class cn.com.founder.arcgislib.widget.scrolllayout{ *; }
-keepclassmembers class cn.com.founder.arcgislib.widget.scrolllayout$Status{
public *;
}
-keep class com.minedata.minenavi.
*
*{ *; }
-keep class com.minedata.minenavi.
*
*{ *; }
-dontwarn com.minedata.minenavi.
*
*
-dontwarn com.minedata.minenavi.
*
*
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/ArcGisFounder.java
View file @
6d4d2c2f
...
@@ -454,7 +454,7 @@ public class ArcGisFounder implements IOption {
...
@@ -454,7 +454,7 @@ public class ArcGisFounder implements IOption {
* @return {@link ArcGisClusterView}
* @return {@link ArcGisClusterView}
*/
*/
ArcGisClusterView
getArcGisClusterView
()
{
ArcGisClusterView
getArcGisClusterView
()
{
return
new
ArcGisClusterView
(
mArcGisFounderBuilder
.
mSource
.
getContext
(),
mArcGisFounderBuilder
.
mArcGisMapView
);
return
new
ArcGisClusterView
(
mArcGisFounderBuilder
.
mSource
.
getContext
(),
mArcGisFounderBuilder
.
mArcGisMapView
,
mArcGisFounderBuilder
.
mArcGisLocationView
);
}
}
}
}
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/cluster/ArcGisCluster.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
cluster
;
package
cn
.
com
.
founder
.
arcgislib
.
cluster
;
import
com.esri.arcgisruntime.geometry.Point
;
import
java.util.List
;
import
java.util.List
;
import
cn.com.founder.arcgislib.cluster.listener.IClusterPointInfoListener
;
import
cn.com.founder.arcgislib.cluster.option.IArcGisClusterOption
;
import
cn.com.founder.arcgislib.cluster.option.IArcGisClusterOption
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.view.ArcGisClusterView
;
import
cn.com.founder.arcgislib.view.ArcGisClusterView
;
/**
/**
...
@@ -24,28 +24,70 @@ public class ArcGisCluster implements IArcGisClusterOption {
...
@@ -24,28 +24,70 @@ public class ArcGisCluster implements IArcGisClusterOption {
public
ArcGisCluster
(
ArcGisClusterView
arcGisClusterView
)
{
public
ArcGisCluster
(
ArcGisClusterView
arcGisClusterView
)
{
this
.
mArcGisClusterView
=
arcGisClusterView
;
this
.
mArcGisClusterView
=
arcGisClusterView
;
}
}
/**
* @param isShow boolean-是否显示聚合布局
* 默认显示
*/
@Override
@Override
public
IArcGisClusterOption
setShowClusterLayout
(
boolean
isShow
)
{
public
IArcGisClusterOption
setShowClusterLayout
(
boolean
isShow
)
{
mArcGisClusterView
.
setShowClusterLayout
(
isShow
);
mArcGisClusterView
.
setShowClusterLayout
(
isShow
);
return
this
;
return
this
;
}
}
/**
* @param location {@link Variable.ViewLocation } ClusterView显示位置
*/
@Override
@Override
public
IArcGisClusterOption
setClusterViewLocation
(
Variable
.
ViewLocation
location
)
{
public
IArcGisClusterOption
setClusterViewLocation
(
Variable
.
ViewLocation
location
)
{
mArcGisClusterView
.
setClusterViewLocation
(
location
);
mArcGisClusterView
.
setClusterViewLocation
(
location
);
return
this
;
return
this
;
}
}
/**
* @param clusterImage int(资源ID)-聚合图片
*/
@Override
@Override
public
IArcGisClusterOption
setClusterImage
(
int
clusterImage
)
{
public
IArcGisClusterOption
setClusterImage
(
int
clusterImage
)
{
mArcGisClusterView
.
setClusterImage
(
clusterImage
);
mArcGisClusterView
.
setClusterImage
(
clusterImage
);
return
this
;
return
this
;
}
}
/**
* @param pointList 聚合点集合
*/
@Override
@Override
public
IArcGisClusterOption
setCluseterData
(
List
<
Point
>
pointList
)
{
public
IArcGisClusterOption
setCluseterData
(
List
<
Point
Model
>
pointList
)
{
mArcGisClusterView
.
setClusterData
(
pointList
);
mArcGisClusterView
.
setClusterData
(
pointList
);
return
this
;
return
this
;
}
}
@Override
public
IArcGisClusterOption
setGeoDistance
(
double
distance
)
{
mArcGisClusterView
.
setGeoDistance
(
distance
);
return
this
;
}
@Override
public
IArcGisClusterOption
setIClusterPointInfoListener
(
IClusterPointInfoListener
clusterPointInfoListener
)
{
mArcGisClusterView
.
setIClusterPointInfoListener
(
clusterPointInfoListener
);
return
this
;
}
/**
* @return 得到聚合样式
*/
@Override
public
ArcGisClusterView
.
ClusterStyleBuilder
getClusterStyleBuilder
()
{
return
mArcGisClusterView
.
getClusterStyleBuilder
();
}
@Override
public
ArcGisClusterView
.
CalloutStyleBuilder
getCalloutStyleBuilder
()
{
return
mArcGisClusterView
.
getCalloutStyleBuilder
();
}
@Override
public
ArcGisClusterView
.
CalloutContentBuilder
getCalloutContentBuilder
()
{
return
mArcGisClusterView
.
getCalloutContentBuilder
();
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/cluster/option/IArcGisClusterOption.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
cluster
.
option
;
package
cn
.
com
.
founder
.
arcgislib
.
cluster
.
option
;
import
com.esri.arcgisruntime.geometry.Point
;
import
java.util.List
;
import
java.util.List
;
import
cn.com.founder.arcgislib.cluster.listener.IClusterPointInfoListener
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.view.ArcGisClusterView
;
/**
/**
* Copyright: 方正国际软件有限公司
* Copyright: 方正国际软件有限公司
...
@@ -33,5 +34,32 @@ public interface IArcGisClusterOption {
...
@@ -33,5 +34,32 @@ public interface IArcGisClusterOption {
/**
/**
* @param pointList 聚合点集合
* @param pointList 聚合点集合
*/
*/
IArcGisClusterOption
setCluseterData
(
List
<
Point
>
pointList
);
IArcGisClusterOption
setCluseterData
(
List
<
PointModel
>
pointList
);
/**
* @param distance 默认逆地理编码距离是0.1,单位是km;
* 需要在最上层调用
*
*/
IArcGisClusterOption
setGeoDistance
(
double
distance
);
/**
* @param clusterPointInfoListener 设置聚合点信息回调
*/
IArcGisClusterOption
setIClusterPointInfoListener
(
IClusterPointInfoListener
clusterPointInfoListener
);
/**
* @return 得到聚合样式
*/
ArcGisClusterView
.
ClusterStyleBuilder
getClusterStyleBuilder
();
/**
* callout样式
*/
ArcGisClusterView
.
CalloutStyleBuilder
getCalloutStyleBuilder
();
/**
* callout内容样式
*/
ArcGisClusterView
.
CalloutContentBuilder
getCalloutContentBuilder
();
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/common/Variable.java
View file @
6d4d2c2f
...
@@ -63,6 +63,7 @@ public class Variable {
...
@@ -63,6 +63,7 @@ public class Variable {
public
static
enum
SearchType
{
public
static
enum
SearchType
{
NONE
,
NONE
,
SEARCH
,
SEARCH
,
SEARCH_TYPE_RESULT
,
START_ADDRESS_SEARCH
,
START_ADDRESS_SEARCH
,
END_ADDRESS_SEARCH
,
END_ADDRESS_SEARCH
,
}
}
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/constants/Constants.java
View file @
6d4d2c2f
...
@@ -9,37 +9,62 @@ package cn.com.founder.arcgislib.constants;
...
@@ -9,37 +9,62 @@ package cn.com.founder.arcgislib.constants;
*/
*/
public
class
Constants
{
public
class
Constants
{
/*****************************************互联网***********************************************/
/*****************************************互联网*********************************************
//互联网-地图
//互联网-地图
private
static
String
baseUrl
=
"http://47.92.225.109:6080/arcgis/rest/services/founder/dg20191120/MapServer"
;
private static String baseUrl = "http://47.92.225.109:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//互联网-Geo
//互联网-Geo
private
static
String
baseGeoUrl
=
"http://47.92.226.24:8051/selectVdzjx"
;
private static String baseGeoUrl = "http://68.174.25.107:8090/esBzdzTestQuery";
//互联网-搜索
//互联网-搜索
private
static
String
searchUrl
=
"http://47.92.226.24:8051/selectPoiDataList"
;
private static String searchUrl = "http://47.92.226.24:8051/selectPoiDataList";
//互联网-导航
//互联网-导航
private
static
String
naviUrl
=
"minedata.cn/lbsservice/navi/"
;
private static String naviUrl = "minedata.cn/lbsservice/navi/";
/**********************************************************************************************/
//二标四实-单位
private static String dwUrl = "http://68.174.69.46:8051/selectVdwjx";
//二标四实-房屋
private static String fwUrl = "http://68.174.69.46:8051/selectVfwjx";
//二标四实-地址
private static String dzUrl = "http://68.174.69.46:8051/selectVdzjx";
/**********************************************************************************************
/*****************************************用户网***********************************************
/*****************************************用户网***********************************************
//用户网-地图
//如果使用公安局的映射,导航907和958行代码需要修改坐标系
private static String baseUrl = "http://20.97.50.41:6080/arcgis/rest/services/founder/dg20191120/MapServer";
//用户网-地图
//互联网-Geo
private static String baseUrl = "http://192.168.2.56:19076/arcgis/rest/services/founder/dg20191120/MapServer";
private static String baseGeoUrl = "http://20.97.50.41:8050/selectVdzjx";
//用户网-导航
//用户网-搜索
private static String naviUrl = "http://192.168.2.56:19085/PPmap/LBSservice";
private static String searchUrl = "http://20.97.50.41:8051/selectPoiDataList";
//公安网-Geo
/**********************************************************************************************/
private static String baseGeoUrl = "http://192.168.2.56:19087/esBzdzTestQuery";
//用户网-搜索
private static String searchUrl = "http://192.168.2.56:19084/selectPoiDataList";
//二标四实-单位
private static String dwUrl = "http://192.168.2.56:19084/selectVdwjx";
//二标四实-房屋
private static String fwUrl = "http://192.168.2.56:19084/selectVfwjx";
//二标四实-地址
private static String dzUrl = "http://192.168.2.56:19084/selectVdzjx";
/**********************************************************************************************/
/*****************************************公安网***********************************************
//
/*****************************************公安网***********************************************
//公安网-地图
//公安网-地图
private
static
String
baseUrl
=
"http://68.174.69.45:6080/arcgis/rest/services/founder/dg20191120/MapServer"
;
private
static
String
baseUrl
=
"http://68.174.69.45:6080/arcgis/rest/services/founder/dg20191120/MapServer"
;
//公安网-Geo
//公安网-Geo
private static String baseGeoUrl = "http://68.174.
69.46:8051/selectVdzjx
";
private
static
String
baseGeoUrl
=
"http://68.174.
25.107:8090/esBzdzTestQuery
"
;
//公安网-搜索
//公安网-搜索
private
static
String
searchUrl
=
"http://68.174.69.46:8051/selectPoiDataList"
;
private
static
String
searchUrl
=
"http://68.174.69.46:8051/selectPoiDataList"
;
//公安网-导航
//公安网-导航
private static String naviUrl = "http://68.26.19.5/";
private
static
String
naviUrl
=
"http://68.26.19.197:8380/PPmap/LBSservice"
;
//二标四实-单位
private
static
String
dwUrl
=
"http://68.174.69.46:8051/selectVdwjx"
;
//二标四实-房屋
private
static
String
fwUrl
=
"http://68.174.69.46:8051/selectVfwjx"
;
//二标四实-地址
private
static
String
dzUrl
=
"http://68.174.69.46:8051/selectVdzjx"
;
/**********************************************************************************************/
/**********************************************************************************************/
// argis证书
// argis证书
...
@@ -51,7 +76,6 @@ public class Constants {
...
@@ -51,7 +76,6 @@ public class Constants {
//测试热力图
//测试热力图
private
static
String
hotPotsUrl
=
"https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot"
;
private
static
String
hotPotsUrl
=
"https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot"
;
//arcGis证书
//arcGis证书
public
static
final
String
BASE_MAP_RUNTIME
=
baseRunTime
;
public
static
final
String
BASE_MAP_RUNTIME
=
baseRunTime
;
//服务器Url
//服务器Url
...
@@ -69,4 +93,11 @@ public class Constants {
...
@@ -69,4 +93,11 @@ public class Constants {
//热力图
//热力图
public
static
final
String
BASE_HOT_POTS_URL
=
hotPotsUrl
;
public
static
final
String
BASE_HOT_POTS_URL
=
hotPotsUrl
;
//二标四实-房屋
public
static
final
String
BASE_FW_URL
=
fwUrl
;
//二标四实-地址
public
static
final
String
BASE_DZ_URL
=
dzUrl
;
//二标四实-单位
public
static
final
String
BASE_DW_URL
=
dwUrl
;
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/location/ArcGisLocation.java
View file @
6d4d2c2f
...
@@ -152,6 +152,16 @@ public class ArcGisLocation implements IArcGisLocationOption {
...
@@ -152,6 +152,16 @@ public class ArcGisLocation implements IArcGisLocationOption {
return
this
;
return
this
;
}
}
/**
* @param distance 默认逆地理编码距离是0.1,单位是km;
* 需要在最上层调用
*/
@Override
public
IArcGisLocationOption
setGeoDistance
(
double
distance
)
{
mArcGisLocationView
.
setGeoDistance
(
distance
);
return
this
;
}
@Override
@Override
public
ArcGisLocationView
.
CalloutStyleBuilder
getCalloutStyleBuilder
()
{
public
ArcGisLocationView
.
CalloutStyleBuilder
getCalloutStyleBuilder
()
{
return
mArcGisLocationView
.
getCalloutStyleBuilder
();
return
mArcGisLocationView
.
getCalloutStyleBuilder
();
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/location/option/IArcGisLocationOption.java
View file @
6d4d2c2f
...
@@ -89,6 +89,13 @@ public interface IArcGisLocationOption {
...
@@ -89,6 +89,13 @@ public interface IArcGisLocationOption {
* 默认不跟随
* 默认不跟随
*/
*/
IArcGisLocationOption
setFollowMapViewPoint
(
boolean
isFollow
);
IArcGisLocationOption
setFollowMapViewPoint
(
boolean
isFollow
);
/**
* @param distance 默认逆地理编码距离是0.1,单位是km;
* 需要在最上层调用
*
*/
IArcGisLocationOption
setGeoDistance
(
double
distance
);
/**
/**
* callout样式
* callout样式
*/
*/
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/model/LocationModel.java
View file @
6d4d2c2f
...
@@ -47,6 +47,13 @@ public class LocationModel implements Parcelable {
...
@@ -47,6 +47,13 @@ public class LocationModel implements Parcelable {
this
.
locationChangeType
=
locationChangeType
;
this
.
locationChangeType
=
locationChangeType
;
}
}
public
LocationModel
(
double
xPoint
,
double
yPoint
,
String
address
,
String
poi
,
String
extraInfo
)
{
this
.
xPoint
=
xPoint
;
this
.
yPoint
=
yPoint
;
this
.
address
=
address
;
this
.
poi
=
poi
;
this
.
extraInfo
=
extraInfo
;
}
private
LocationModel
(
Parcel
in
){
private
LocationModel
(
Parcel
in
){
xPoint
=
in
.
readDouble
();
xPoint
=
in
.
readDouble
();
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/navi/ArcGisNavi.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
navi
;
package
cn
.
com
.
founder
.
arcgislib
.
navi
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.navi.option.IArcGisNaviOption
;
import
cn.com.founder.arcgislib.navi.option.IArcGisNaviOption
;
import
cn.com.founder.arcgislib.view.ArcGisNaviView
;
import
cn.com.founder.arcgislib.view.ArcGisNaviView
;
...
@@ -38,4 +39,10 @@ public class ArcGisNavi implements IArcGisNaviOption {
...
@@ -38,4 +39,10 @@ public class ArcGisNavi implements IArcGisNaviOption {
mArcGisNaviView
.
setNaviImage
(
naviImage
);
mArcGisNaviView
.
setNaviImage
(
naviImage
);
return
this
;
return
this
;
}
}
@Override
public
IArcGisNaviOption
setCustomPointNavi
(
PointModel
startPoint
,
PointModel
endPoint
)
{
mArcGisNaviView
.
setCustomPointNavi
(
startPoint
,
endPoint
);
return
this
;
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/navi/option/IArcGisNaviOption.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
navi
.
option
;
package
cn
.
com
.
founder
.
arcgislib
.
navi
.
option
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.model.PointModel
;
/**
/**
* Copyright: 方正国际软件有限公司
* Copyright: 方正国际软件有限公司
...
@@ -25,4 +26,11 @@ public interface IArcGisNaviOption {
...
@@ -25,4 +26,11 @@ public interface IArcGisNaviOption {
* @param naviImage int(资源ID)-导航图片
* @param naviImage int(资源ID)-导航图片
*/
*/
IArcGisNaviOption
setNaviImage
(
int
naviImage
);
IArcGisNaviOption
setNaviImage
(
int
naviImage
);
/**
* 自定义点导航
* @param startPoint 起点
* @param endPoint 终点
*/
IArcGisNaviOption
setCustomPointNavi
(
PointModel
startPoint
,
PointModel
endPoint
);
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/search/ArcGisSearch.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
search
;
package
cn
.
com
.
founder
.
arcgislib
.
search
;
import
cn.com.founder.arcgislib.search.listener.ISearchSelectedListener
;
import
cn.com.founder.arcgislib.search.option.IArcGisSearchOption
;
import
cn.com.founder.arcgislib.search.option.IArcGisSearchOption
;
import
cn.com.founder.arcgislib.view.ArcGisSearchView
;
import
cn.com.founder.arcgislib.view.ArcGisSearchView
;
...
@@ -19,4 +20,20 @@ public class ArcGisSearch implements IArcGisSearchOption {
...
@@ -19,4 +20,20 @@ public class ArcGisSearch implements IArcGisSearchOption {
public
ArcGisSearch
(
ArcGisSearchView
arcGisSearchView
)
{
public
ArcGisSearch
(
ArcGisSearchView
arcGisSearchView
)
{
this
.
mArcGisSearchView
=
arcGisSearchView
;
this
.
mArcGisSearchView
=
arcGisSearchView
;
}
}
/**
* @param type 搜索类型:0:poi,1:实有单位,2:实有房屋,3:标准地址
* @param keyWord 关键字
*/
@Override
public
IArcGisSearchOption
setSearchData
(
int
type
,
String
keyWord
)
{
mArcGisSearchView
.
setSearchData
(
type
,
keyWord
);
return
this
;
}
@Override
public
IArcGisSearchOption
setSearchSelectedListener
(
ISearchSelectedListener
listener
)
{
mArcGisSearchView
.
setSearchSelectedListener
(
listener
);
return
this
;
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/search/option/IArcGisSearchOption.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
search
.
option
;
package
cn
.
com
.
founder
.
arcgislib
.
search
.
option
;
import
cn.com.founder.arcgislib.search.listener.ISearchSelectedListener
;
/**
/**
* Copyright: 方正国际软件有限公司
* Copyright: 方正国际软件有限公司
* Author:luo_shaopeng
* Author:luo_shaopeng
...
@@ -8,4 +10,16 @@ package cn.com.founder.arcgislib.search.option;
...
@@ -8,4 +10,16 @@ package cn.com.founder.arcgislib.search.option;
* Description:搜索
* Description:搜索
*/
*/
public
interface
IArcGisSearchOption
{
public
interface
IArcGisSearchOption
{
/**
* @param type 搜索类型:0:poi,1:实有单位,2:实有房屋,3:标准地址
* @param keyWord 关键字
*/
IArcGisSearchOption
setSearchData
(
int
type
,
String
keyWord
);
/**
* @param listener 设置列表点击事件监听
*/
IArcGisSearchOption
setSearchSelectedListener
(
ISearchSelectedListener
listener
);
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/utils/KeyboardUtil.java
View file @
6d4d2c2f
package
cn
.
com
.
founder
.
arcgislib
.
utils
;
package
cn
.
com
.
founder
.
arcgislib
.
utils
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Rect
;
import
android.os.Build
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewTreeObserver
;
import
android.view.Window
;
import
android.view.inputmethod.InputMethodManager
;
import
android.view.inputmethod.InputMethodManager
;
import
android.widget.EditText
;
import
android.widget.EditText
;
...
@@ -10,40 +16,152 @@ import android.widget.EditText;
...
@@ -10,40 +16,152 @@ import android.widget.EditText;
* Author:luo_shaopeng
* Author:luo_shaopeng
* Date:2020/2/11 20:27
* Date:2020/2/11 20:27
* EMail:luo_shaopeng@founder.com.cn
* EMail:luo_shaopeng@founder.com.cn
* Description:
toDo
* Description:
键盘
*/
*/
public
class
KeyboardUtil
{
public
class
KeyboardUtil
{
/**
* 显示软键盘的延迟时间
*/
public
static
final
int
SHOW_KEYBOARD_DELAY_TIME
=
200
;
public
final
static
int
KEYBOARD_VISIBLE_THRESHOLD_DP
=
100
;
public
static
void
showKeyboard
(
final
EditText
editText
,
boolean
delay
)
{
showKeyboard
(
editText
,
delay
?
SHOW_KEYBOARD_DELAY_TIME
:
0
);
}
/**
* 针对给定的editText显示软键盘(editText会先获得焦点). 可以和{@link #hideKeyboard(View)}
* 搭配使用,进行键盘的显示隐藏控制。
*/
public
static
void
showKeyboard
(
final
EditText
editText
,
int
delay
)
{
if
(
null
==
editText
)
return
;
if
(!
editText
.
requestFocus
())
{
return
;
}
if
(
delay
>
0
)
{
editText
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
InputMethodManager
imm
=
(
InputMethodManager
)
editText
.
getContext
().
getApplicationContext
()
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
imm
.
showSoftInput
(
editText
,
InputMethodManager
.
SHOW_IMPLICIT
);
}
},
delay
);
}
else
{
InputMethodManager
imm
=
(
InputMethodManager
)
editText
.
getContext
().
getApplicationContext
()
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
imm
.
showSoftInput
(
editText
,
InputMethodManager
.
SHOW_IMPLICIT
);
}
}
/**
/**
* 显示键盘
* 隐藏软键盘 可以和{@link #showKeyboard(EditText, boolean)}搭配使用,进行键盘的显示隐藏控制。
*
* @param view 当前页面上任意一个可用的view
*/
*/
public
static
void
showKeyboard
(
final
View
view
)
{
public
static
boolean
hideKeyboard
(
final
View
view
)
{
view
.
requestFocus
();
if
(
null
==
view
)
InputMethodManager
inputManager
=
return
false
;
(
InputMethodManager
)
view
.
getContext
().
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
InputMethodManager
inputManager
=
(
InputMethodManager
)
view
.
getContext
().
getApplicationContext
()
inputManager
.
showSoftInput
(
view
,
0
);
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
// 即使当前焦点不在editText,也是可以隐藏的。
return
inputManager
.
hideSoftInputFromWindow
(
view
.
getWindowToken
(),
InputMethodManager
.
HIDE_NOT_ALWAYS
);
}
}
/**
/**
*
打开软键盘
*
Set keyboard visibility change event listener.
*
*
* @param
mEditText 输入框
* @param
activity Activity
* @param
mContext 上下文
* @param
listener KeyboardVisibilityEventListener
*/
*/
public
static
void
openKeybord
(
EditText
mEditText
,
Context
mContext
)
{
@SuppressWarnings
(
"deprecation"
)
InputMethodManager
imm
=
(
InputMethodManager
)
mContext
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
public
static
void
setVisibilityEventListener
(
final
Activity
activity
,
imm
.
showSoftInput
(
mEditText
,
InputMethodManager
.
RESULT_SHOWN
);
final
KeyboardVisibilityEventListener
listener
)
{
imm
.
toggleSoftInput
(
InputMethodManager
.
SHOW_FORCED
,
InputMethodManager
.
HIDE_IMPLICIT_ONLY
);
if
(
activity
==
null
)
{
throw
new
NullPointerException
(
"Parameter:activity must not be null"
);
}
if
(
listener
==
null
)
{
throw
new
NullPointerException
(
"Parameter:listener must not be null"
);
}
final
View
activityRoot
=
((
ViewGroup
)
activity
.
findViewById
(
Window
.
ID_ANDROID_CONTENT
)).
getChildAt
(
0
);
final
ViewTreeObserver
.
OnGlobalLayoutListener
layoutListener
=
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
private
final
Rect
r
=
new
Rect
();
private
final
int
visibleThreshold
=
Math
.
round
(
DensityUtil
.
dip2px
(
activity
,
KEYBOARD_VISIBLE_THRESHOLD_DP
));
private
boolean
wasOpened
=
false
;
@Override
public
void
onGlobalLayout
()
{
activityRoot
.
getWindowVisibleDisplayFrame
(
r
);
int
heightDiff
=
activityRoot
.
getRootView
().
getHeight
()
-
r
.
height
();
boolean
isOpen
=
heightDiff
>
visibleThreshold
;
if
(
isOpen
==
wasOpened
)
{
// keyboard state has not changed
return
;
}
wasOpened
=
isOpen
;
boolean
removeListener
=
listener
.
onVisibilityChanged
(
isOpen
,
heightDiff
);
if
(
removeListener
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
JELLY_BEAN
)
{
activityRoot
.
getViewTreeObserver
()
.
removeOnGlobalLayoutListener
(
this
);
}
else
{
activityRoot
.
getViewTreeObserver
()
.
removeGlobalOnLayoutListener
(
this
);
}
}
}
};
activityRoot
.
getViewTreeObserver
().
addOnGlobalLayoutListener
(
layoutListener
);
}
}
/**
/**
* 关闭隐藏键盘
* Determine if keyboard is visible
*
* @param activity Activity
* @return Whether keyboard is visible or not
*/
*/
public
static
void
hideKeyboard
(
final
View
view
)
{
public
static
boolean
isKeyboardVisible
(
Activity
activity
)
{
InputMethodManager
imm
=
Rect
r
=
new
Rect
();
(
InputMethodManager
)
view
.
getContext
().
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
imm
.
hideSoftInputFromWindow
(
view
.
getWindowToken
(),
0
);
View
activityRoot
=
((
ViewGroup
)
activity
.
findViewById
(
Window
.
ID_ANDROID_CONTENT
)).
getChildAt
(
0
);
int
visibleThreshold
=
Math
.
round
(
DensityUtil
.
dip2px
(
activity
,
KEYBOARD_VISIBLE_THRESHOLD_DP
));
activityRoot
.
getWindowVisibleDisplayFrame
(
r
);
int
heightDiff
=
activityRoot
.
getRootView
().
getHeight
()
-
r
.
height
();
return
heightDiff
>
visibleThreshold
;
}
public
interface
KeyboardVisibilityEventListener
{
/**
* @return to remove global listener or not
*/
boolean
onVisibilityChanged
(
boolean
isOpen
,
int
heightDiff
);
}
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/utils/ToolUtil.java
View file @
6d4d2c2f
...
@@ -11,6 +11,9 @@ import android.widget.Toast;
...
@@ -11,6 +11,9 @@ import android.widget.Toast;
import
com.esri.arcgisruntime.geometry.Point
;
import
com.esri.arcgisruntime.geometry.Point
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.io.BufferedReader
;
import
java.io.BufferedReader
;
import
java.io.File
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
...
@@ -255,4 +258,23 @@ public class ToolUtil {
...
@@ -255,4 +258,23 @@ public class ToolUtil {
return
resultPoint
;
return
resultPoint
;
}
}
/**
* @return 东莞最大最小经纬度
*/
public
static
String
dongGuanSearchParams
(
String
value
){
try
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"jsjd"
,
"114.26742553710938"
);
jsonObject
.
put
(
"qsjd"
,
"113.50799560546875"
);
jsonObject
.
put
(
"jswd"
,
"23.152313232421875"
);
jsonObject
.
put
(
"qswd"
,
"22.646942138671875"
);
jsonObject
.
put
(
"value"
,
value
);
jsonObject
.
put
(
"isAll"
,
"0"
);
return
jsonObject
.
toString
();
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisClusterView.java
View file @
6d4d2c2f
This diff is collapsed.
Click to expand it.
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisHotPotsView.java
View file @
6d4d2c2f
...
@@ -173,7 +173,7 @@ public class ArcGisHotPotsView extends LinearLayout implements View.OnClickListe
...
@@ -173,7 +173,7 @@ public class ArcGisHotPotsView extends LinearLayout implements View.OnClickListe
if
(
bottomParentView
==
null
)
{
if
(
bottomParentView
==
null
)
{
bottomParentView
=
View
.
inflate
(
mContext
,
R
.
layout
.
layout_hot_pots_input
,
null
);
bottomParentView
=
View
.
inflate
(
mContext
,
R
.
layout
.
layout_hot_pots_input
,
null
);
initBottomView
();
initBottomView
();
popupLayout
=
PopupLayout
.
ini
t
(
mContext
,
bottomParentView
);
popupLayout
=
new
PopupLayou
t
(
mContext
,
bottomParentView
);
popupLayout
.
setUseRadius
(
true
);
popupLayout
.
setUseRadius
(
true
);
popupLayout
.
setHeight
((
int
)
(
ToolUtil
.
getScreenHeight
(
mContext
)
*
0.35
),
false
);
popupLayout
.
setHeight
((
int
)
(
ToolUtil
.
getScreenHeight
(
mContext
)
*
0.35
),
false
);
}
}
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisLocationView.java
View file @
6d4d2c2f
...
@@ -25,7 +25,6 @@ import android.widget.EditText;
...
@@ -25,7 +25,6 @@ import android.widget.EditText;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
...
@@ -218,6 +217,16 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -218,6 +217,16 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
*/
*/
private
List
<
LocationModel
>
locationModelList
=
new
LinkedList
<>();
private
List
<
LocationModel
>
locationModelList
=
new
LinkedList
<>();
/**
* 默认逆地理编码距离是0.1,单位是km;
*/
private
double
distance
=
0.1
;
/**
* 使用聚合时使用此字段
*/
protected
boolean
isUseCluster
=
false
;
public
ArcGisLocationView
(
Context
context
,
ArcGisMapView
arcGisMapView
)
{
public
ArcGisLocationView
(
Context
context
,
ArcGisMapView
arcGisMapView
)
{
this
(
context
);
this
(
context
);
this
.
mContext
=
context
;
this
.
mContext
=
context
;
...
@@ -1052,6 +1061,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1052,6 +1061,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
@Override
@Override
public
void
onUp
(
Variable
.
TouchUp
touchUp
,
MotionEvent
motionEvent
)
{
public
void
onUp
(
Variable
.
TouchUp
touchUp
,
MotionEvent
motionEvent
)
{
if
(
isUseCluster
)
return
;
if
(
touchUp
==
Variable
.
TouchUp
.
UP
&&
mFollowMapGetCenterPoint
)
{
if
(
touchUp
==
Variable
.
TouchUp
.
UP
&&
mFollowMapGetCenterPoint
)
{
final
android
.
graphics
.
Point
screenPoint
=
new
android
.
graphics
.
Point
(
final
android
.
graphics
.
Point
screenPoint
=
new
android
.
graphics
.
Point
(
mScreenCenterXPoint
,
mScreenCenterXPoint
,
...
@@ -1109,6 +1120,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1109,6 +1120,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
@Override
@Override
public
void
onSingleTap
(
MotionEvent
motionEvent
)
{
public
void
onSingleTap
(
MotionEvent
motionEvent
)
{
if
(
isUseCluster
)
return
;
switch
(
currSearchType
)
{
switch
(
currSearchType
)
{
case
SEARCH:
case
SEARCH:
case
NONE:
case
NONE:
...
@@ -1121,6 +1134,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1121,6 +1134,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
@Override
@Override
public
void
onLongPress
(
MotionEvent
motionEvent
)
{
public
void
onLongPress
(
MotionEvent
motionEvent
)
{
if
(
isUseCluster
)
return
;
switch
(
currSearchType
)
{
switch
(
currSearchType
)
{
case
SEARCH:
case
SEARCH:
case
NONE:
case
NONE:
...
@@ -1204,6 +1219,14 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1204,6 +1219,14 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
}
}
/**
/**
* @param distance 默认逆地理编码距离是0.1,单位是km;
* 需要在最上层调用
*/
public
void
setGeoDistance
(
double
distance
){
this
.
distance
=
distance
;
}
/**
* 正常点击显示加载狂,显示气泡组件
* 正常点击显示加载狂,显示气泡组件
*
*
* @param point 坐标点
* @param point 坐标点
...
@@ -1227,21 +1250,31 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1227,21 +1250,31 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
showDialog
();
showDialog
();
}
}
double
[]
lngArray
=
ToolUtil
.
calcMaxMinLng
(
point
,
0.5
);
JSONObject
jsonObject
=
new
JSONObject
();
JSONObject
jsonObject
=
new
JSONObject
();
try
{
try
{
jsonObject
.
put
(
"jsjd"
,
String
.
valueOf
(
lngArray
[
0
]));
jsonObject
.
put
(
"index"
,
"bzdz"
);
jsonObject
.
put
(
"qsjd"
,
String
.
valueOf
(
lngArray
[
1
]));
jsonObject
.
put
(
"jswd"
,
String
.
valueOf
(
lngArray
[
2
]));
JSONObject
infoObject
=
new
JSONObject
();
jsonObject
.
put
(
"qswd"
,
String
.
valueOf
(
lngArray
[
3
]));
infoObject
.
put
(
"field"
,
"xy"
);
infoObject
.
put
(
"distance"
,
String
.
valueOf
(
distance
));
JSONObject
xyObject
=
new
JSONObject
();
xyObject
.
put
(
"lat"
,
String
.
valueOf
(
point
.
getY
()));
xyObject
.
put
(
"lon"
,
String
.
valueOf
(
point
.
getX
()));
infoObject
.
put
(
"point"
,
xyObject
);
jsonObject
.
put
(
"geographicInfo"
,
infoObject
);
}
catch
(
JSONException
e
)
{
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
// Log.e("GEOCeoder========",jsonObject.toString());
OkHttp3Utils
.
doPost
(
Constants
.
BASE_GEO_URL
,
jsonObject
.
toString
(),
new
Callback
()
{
OkHttp3Utils
.
doPost
(
Constants
.
BASE_GEO_URL
,
jsonObject
.
toString
(),
new
Callback
()
{
@Override
@Override
public
void
onFailure
(
Call
call
,
IOException
e
)
{
public
void
onFailure
(
Call
call
,
IOException
e
)
{
disDialog
();
disDialog
();
Toast
.
makeText
(
mContext
,
"请求失败,请重试"
,
Toast
.
LENGTH_LONG
).
show
();
//
Toast.makeText(mContext, "请求失败,请重试", Toast.LENGTH_LONG).show();
Log
.
e
(
"Fail"
,
"e="
+
e
.
toString
());
Log
.
e
(
"Fail"
,
"e="
+
e
.
toString
());
}
}
...
@@ -1253,7 +1286,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1253,7 +1286,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
if
(
response
.
isSuccessful
())
{
if
(
response
.
isSuccessful
())
{
if
(
response
.
body
()
!=
null
)
{
if
(
response
.
body
()
!=
null
)
{
String
responseStr
=
response
.
body
().
string
();
String
responseStr
=
response
.
body
().
string
();
Log
.
e
(
"responseStr"
,
responseStr
);
//
Log.e("responseStr", responseStr);
JsonObject
jsonObject
=
GsonUtil
.
gsonToBean
(
responseStr
,
JsonObject
.
class
);
JsonObject
jsonObject
=
GsonUtil
.
gsonToBean
(
responseStr
,
JsonObject
.
class
);
int
status
=
jsonObject
.
get
(
"status"
).
getAsInt
();
int
status
=
jsonObject
.
get
(
"status"
).
getAsInt
();
if
(
status
==
200
)
{
if
(
status
==
200
)
{
...
@@ -1262,18 +1295,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1262,18 +1295,8 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
JsonObject
jsonObject1
=
(
JsonObject
)
dataArray
.
get
(
0
);
JsonObject
jsonObject1
=
(
JsonObject
)
dataArray
.
get
(
0
);
//地址全称
//地址全称
address
=
jsonObject1
.
get
(
"dzqc"
).
getAsString
();
address
=
jsonObject1
.
get
(
"dzqc"
).
getAsString
();
///所属派出所代码_名称
///地址详址
poi
=
jsonObject1
.
get
(
"sspcsdm_mc"
).
getAsString
();
poi
=
jsonObject1
.
get
(
"dzxz"
).
getAsString
();
// if (dataArray.size() == 1) {
// JsonObject jsonObject1 = (JsonObject) dataArray.get(0);
// //地址全称
// address = jsonObject1.get("dzqc").getAsString();
// ///所属派出所代码_名称
// poi = jsonObject1.get("sspcsdm_mc").getAsString();
// } else {
//
// }
}
}
}
}
...
@@ -1289,6 +1312,12 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
...
@@ -1289,6 +1312,12 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
}
}
});
});
/**************天地图的逆地址编码**************************/
/**************天地图的逆地址编码**************************/
// String urlParams = Constants.BASE_TIANDITU_GEO_URL + "?postStr={'lon':" + point.getX() + ",'lat':" + point.getY() + ",'ver':1}&type=geocode&tk=" + Constants.BASE_TIANDITU_KEY;
// String urlParams = Constants.BASE_TIANDITU_GEO_URL + "?postStr={'lon':" + point.getX() + ",'lat':" + point.getY() + ",'ver':1}&type=geocode&tk=" + Constants.BASE_TIANDITU_KEY;
// OkHttp3Utils.doGet(urlParams, new Callback() {
// OkHttp3Utils.doGet(urlParams, new Callback() {
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisMapView.java
View file @
6d4d2c2f
...
@@ -54,6 +54,11 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -54,6 +54,11 @@ public class ArcGisMapView extends LinearLayout {
* 导航地图操作图层(点)
* 导航地图操作图层(点)
*/
*/
private
GraphicsOverlay
mRouteMarkerGraphicsOverlay
;
private
GraphicsOverlay
mRouteMarkerGraphicsOverlay
;
/**
* 聚合地图操作图层(点)
*/
private
GraphicsOverlay
mClusterGraphicsOverlay
;
/**
/**
* 长按事件拦截
* 长按事件拦截
*/
*/
...
@@ -107,6 +112,7 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -107,6 +112,7 @@ public class ArcGisMapView extends LinearLayout {
addLocationGraphicLayers
();
addLocationGraphicLayers
();
addSearchGraphicLayers
();
addSearchGraphicLayers
();
addRouteMarkerGraphicLayers
();
addRouteMarkerGraphicLayers
();
addClusterGraphicLayers
();
mLongPressEvent
=
null
;
mLongPressEvent
=
null
;
mMapView
.
setOnTouchListener
(
new
ArcGisMapView
.
MapTouchListener
(
getContext
().
getApplicationContext
(),
mMapView
));
mMapView
.
setOnTouchListener
(
new
ArcGisMapView
.
MapTouchListener
(
getContext
().
getApplicationContext
(),
mMapView
));
...
@@ -125,6 +131,7 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -125,6 +131,7 @@ public class ArcGisMapView extends LinearLayout {
mLocationGraphicsOverlay
.
setOpacity
(
0.8f
);
mLocationGraphicsOverlay
.
setOpacity
(
0.8f
);
mMapView
.
getGraphicsOverlays
().
add
(
mLocationGraphicsOverlay
);
mMapView
.
getGraphicsOverlays
().
add
(
mLocationGraphicsOverlay
);
}
}
private
void
addSearchGraphicLayers
()
{
private
void
addSearchGraphicLayers
()
{
// Add location layer
// Add location layer
if
(
mSearchGraphicsOverlay
==
null
)
{
if
(
mSearchGraphicsOverlay
==
null
)
{
...
@@ -133,6 +140,7 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -133,6 +140,7 @@ public class ArcGisMapView extends LinearLayout {
mSearchGraphicsOverlay
.
setOpacity
(
0.8f
);
mSearchGraphicsOverlay
.
setOpacity
(
0.8f
);
mMapView
.
getGraphicsOverlays
().
add
(
mSearchGraphicsOverlay
);
mMapView
.
getGraphicsOverlays
().
add
(
mSearchGraphicsOverlay
);
}
}
private
void
addNaviGraphicLayers
()
{
private
void
addNaviGraphicLayers
()
{
// Add location layer
// Add location layer
if
(
mNaviGraphicsOverlay
==
null
)
{
if
(
mNaviGraphicsOverlay
==
null
)
{
...
@@ -141,6 +149,7 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -141,6 +149,7 @@ public class ArcGisMapView extends LinearLayout {
mNaviGraphicsOverlay
.
setOpacity
(
0.8f
);
mNaviGraphicsOverlay
.
setOpacity
(
0.8f
);
mMapView
.
getGraphicsOverlays
().
add
(
mNaviGraphicsOverlay
);
mMapView
.
getGraphicsOverlays
().
add
(
mNaviGraphicsOverlay
);
}
}
private
void
addRouteMarkerGraphicLayers
()
{
private
void
addRouteMarkerGraphicLayers
()
{
// Add location layer
// Add location layer
if
(
mRouteMarkerGraphicsOverlay
==
null
)
{
if
(
mRouteMarkerGraphicsOverlay
==
null
)
{
...
@@ -150,6 +159,15 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -150,6 +159,15 @@ public class ArcGisMapView extends LinearLayout {
mMapView
.
getGraphicsOverlays
().
add
(
mRouteMarkerGraphicsOverlay
);
mMapView
.
getGraphicsOverlays
().
add
(
mRouteMarkerGraphicsOverlay
);
}
}
private
void
addClusterGraphicLayers
()
{
// Add location layer
if
(
mClusterGraphicsOverlay
==
null
)
{
mClusterGraphicsOverlay
=
new
GraphicsOverlay
();
}
mClusterGraphicsOverlay
.
setOpacity
(
0.8f
);
mMapView
.
getGraphicsOverlays
().
add
(
mClusterGraphicsOverlay
);
}
protected
MapView
getMapView
()
{
protected
MapView
getMapView
()
{
return
mMapView
;
return
mMapView
;
}
}
...
@@ -157,16 +175,23 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -157,16 +175,23 @@ public class ArcGisMapView extends LinearLayout {
protected
GraphicsOverlay
getLocationGraphicsOverlay
()
{
protected
GraphicsOverlay
getLocationGraphicsOverlay
()
{
return
mLocationGraphicsOverlay
;
return
mLocationGraphicsOverlay
;
}
}
protected
GraphicsOverlay
getSearchGraphicsOverlay
()
{
protected
GraphicsOverlay
getSearchGraphicsOverlay
()
{
return
mSearchGraphicsOverlay
;
return
mSearchGraphicsOverlay
;
}
}
protected
GraphicsOverlay
getNaviGraphicsOverlay
()
{
protected
GraphicsOverlay
getNaviGraphicsOverlay
()
{
return
mSearchGraphicsOverlay
;
return
mSearchGraphicsOverlay
;
}
}
protected
GraphicsOverlay
getRouteMarkerGraphicsOverlay
()
{
protected
GraphicsOverlay
getRouteMarkerGraphicsOverlay
()
{
return
mRouteMarkerGraphicsOverlay
;
return
mRouteMarkerGraphicsOverlay
;
}
}
protected
GraphicsOverlay
getClusterGraphicsOverlay
(){
return
mClusterGraphicsOverlay
;
}
private
class
MapTouchListener
extends
DefaultMapViewOnTouchListener
{
private
class
MapTouchListener
extends
DefaultMapViewOnTouchListener
{
/**
/**
* Instantiates a new DrawingMapViewOnTouchListener with the specified
* Instantiates a new DrawingMapViewOnTouchListener with the specified
...
@@ -192,6 +217,10 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -192,6 +217,10 @@ public class ArcGisMapView extends LinearLayout {
}
}
if
(
myTouchClusterListener
!=
null
)
{
myTouchLocationListener
.
onUp
(
Variable
.
TouchUp
.
UP
,
motionEvent
);
}
if
(
mRotateEvent
!=
null
&&
myTouchCompassListener
!=
null
)
{
if
(
mRotateEvent
!=
null
&&
myTouchCompassListener
!=
null
)
{
mRotateEvent
=
null
;
mRotateEvent
=
null
;
myTouchCompassListener
.
onUp
(
Variable
.
TouchUp
.
RORATE
,
motionEvent
);
myTouchCompassListener
.
onUp
(
Variable
.
TouchUp
.
RORATE
,
motionEvent
);
...
@@ -204,6 +233,9 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -204,6 +233,9 @@ public class ArcGisMapView extends LinearLayout {
if
(
myTouchLocationListener
!=
null
)
{
if
(
myTouchLocationListener
!=
null
)
{
myTouchLocationListener
.
onSingleTap
(
motionEvent
);
myTouchLocationListener
.
onSingleTap
(
motionEvent
);
}
}
if
(
myTouchClusterListener
!=
null
)
{
myTouchClusterListener
.
onSingleTap
(
motionEvent
);
}
return
super
.
onSingleTapConfirmed
(
motionEvent
);
return
super
.
onSingleTapConfirmed
(
motionEvent
);
}
}
...
@@ -232,6 +264,7 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -232,6 +264,7 @@ public class ArcGisMapView extends LinearLayout {
private
MyTouchLocationListener
myTouchLocationListener
;
private
MyTouchLocationListener
myTouchLocationListener
;
private
MyTouchCompassListener
myTouchCompassListener
;
private
MyTouchCompassListener
myTouchCompassListener
;
private
MyTouchClusterListener
myTouchClusterListener
;
protected
void
setMyTouchLocationListener
(
MyTouchLocationListener
touchListener
)
{
protected
void
setMyTouchLocationListener
(
MyTouchLocationListener
touchListener
)
{
this
.
myTouchLocationListener
=
touchListener
;
this
.
myTouchLocationListener
=
touchListener
;
...
@@ -241,6 +274,10 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -241,6 +274,10 @@ public class ArcGisMapView extends LinearLayout {
this
.
myTouchCompassListener
=
touchListener
;
this
.
myTouchCompassListener
=
touchListener
;
}
}
protected
void
setMyTouchClusterListener
(
MyTouchClusterListener
touchListener
)
{
this
.
myTouchClusterListener
=
touchListener
;
}
/**
/**
* 位置触摸监听类
* 位置触摸监听类
*/
*/
...
@@ -288,4 +325,25 @@ public class ArcGisMapView extends LinearLayout {
...
@@ -288,4 +325,25 @@ public class ArcGisMapView extends LinearLayout {
void
onRotate
(
double
rotationAngle
);
void
onRotate
(
double
rotationAngle
);
}
}
/**
* 聚合触摸监听类
*/
interface
MyTouchClusterListener
{
/**
* 手指抬起时
*
* @param touchUp {@link Variable.TouchUp}
* @param motionEvent 移动事件
*/
void
onUp
(
Variable
.
TouchUp
touchUp
,
MotionEvent
motionEvent
);
/**
* 单击
*
* @param motionEvent 移动事件
*/
void
onSingleTap
(
MotionEvent
motionEvent
);
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisNaviView.java
View file @
6d4d2c2f
...
@@ -61,6 +61,7 @@ import java.util.List;
...
@@ -61,6 +61,7 @@ import java.util.List;
import
cn.com.founder.arcgislib.R
;
import
cn.com.founder.arcgislib.R
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.common.Variable
;
import
cn.com.founder.arcgislib.constants.Constants
;
import
cn.com.founder.arcgislib.constants.Constants
;
import
cn.com.founder.arcgislib.model.PointModel
;
import
cn.com.founder.arcgislib.model.SearchModel
;
import
cn.com.founder.arcgislib.model.SearchModel
;
import
cn.com.founder.arcgislib.search.listener.ISearchSelectedListener
;
import
cn.com.founder.arcgislib.search.listener.ISearchSelectedListener
;
import
cn.com.founder.arcgislib.utils.DensityUtil
;
import
cn.com.founder.arcgislib.utils.DensityUtil
;
...
@@ -198,6 +199,8 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -198,6 +199,8 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
initRoute
();
initRoute
();
}
}
private
ArcGisNaviView
(
Context
context
)
{
private
ArcGisNaviView
(
Context
context
)
{
...
@@ -223,6 +226,10 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -223,6 +226,10 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
if
(
mineNaviRoute
==
null
)
{
if
(
mineNaviRoute
==
null
)
{
MineNaviMain
.
getInstance
().
setNaviURL
(
Constants
.
BASE_NAVI_URL
);
MineNaviMain
.
getInstance
().
setNaviURL
(
Constants
.
BASE_NAVI_URL
);
/**
/**
* 设置华为token
*/
// MineNaviMain.getInstance().setHuaweicloudToken();
/**
* 获取路径
* 获取路径
*/
*/
MineNaviMain
.
getInstance
().
init
(
FileSource
.
getCachePath
(
mContext
)
+
"/"
,
mContext
,
(
i
,
s
)
->
Log
.
e
(
"onSdkAuthComplete"
,
i
+
"#认证"
));
MineNaviMain
.
getInstance
().
init
(
FileSource
.
getCachePath
(
mContext
)
+
"/"
,
mContext
,
(
i
,
s
)
->
Log
.
e
(
"onSdkAuthComplete"
,
i
+
"#认证"
));
...
@@ -253,11 +260,14 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -253,11 +260,14 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
* 设置算路成功失败回调
* 设置算路成功失败回调
*/
*/
mineNaviRoute
.
setRoutePlanListener
(
i
->
{
mineNaviRoute
.
setRoutePlanListener
(
i
->
{
Toast
.
makeText
(
mContext
,
"i="
+
i
,
Toast
.
LENGTH_LONG
).
show
();
if
(
i
==
MineNaviRoute
.
ErrorCode
.
success
||
i
==
MineNaviRoute
.
ErrorCode
.
successAndLimit
)
{
if
(
i
==
MineNaviRoute
.
ErrorCode
.
success
||
i
==
MineNaviRoute
.
ErrorCode
.
successAndLimit
)
{
routeInfoList
.
clear
();
routeInfoList
.
clear
();
Toast
.
makeText
(
mContext
,
"路线规划完毕"
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
mContext
,
"路线规划完毕"
,
Toast
.
LENGTH_LONG
).
show
();
arcGisSearchView
.
disDialog
();
arcGisSearchView
.
disDialog
();
popupLayout
.
dismiss
();
if
(
popupLayout
!=
null
){
popupLayout
.
dismiss
();
}
createNaviBt
();
createNaviBt
();
// 语音播报
// 语音播报
List
<
Integer
>
mergeRouteCalcCond
=
mineNaviRoute
.
getMergeRouteCalcCond
();
List
<
Integer
>
mergeRouteCalcCond
=
mineNaviRoute
.
getMergeRouteCalcCond
();
...
@@ -680,8 +690,6 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -680,8 +690,6 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
@SuppressLint
(
"SimpleDateFormat"
)
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"HH:mm"
);
@SuppressLint
(
"SimpleDateFormat"
)
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"HH:mm"
);
ll_navi_bottom_info_text
.
setNaviContent
(
"$disStr $timeStr"
,
format
.
format
(
date
)
+
"到达"
);
ll_navi_bottom_info_text
.
setNaviContent
(
"$disStr $timeStr"
,
format
.
format
(
date
)
+
"到达"
);
//TODO 更新蚯蚓图
}
}
private
void
showServiceArea
()
{
private
void
showServiceArea
()
{
...
@@ -760,6 +768,26 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -760,6 +768,26 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
mNaviIv
.
setImageDrawable
(
getResources
().
getDrawable
(
naviImage
));
mNaviIv
.
setImageDrawable
(
getResources
().
getDrawable
(
naviImage
));
}
}
/**
* 自定义点开始导航
* @param startPoint 起点
* @param endPoint 终点
* new PointModel(113.6242709,22.8810121,"新丽佳百货"),new PointModel(113.6351135,22.8874085,"大自然花场")
*/
public
void
setCustomPointNavi
(
PointModel
startPoint
,
PointModel
endPoint
)
{
if
(
startPoint
==
null
)
{
Toast
.
makeText
(
mContext
,
"请设置起点"
,
Toast
.
LENGTH_LONG
).
show
();
return
;
}
if
(
endPoint
==
null
)
{
Toast
.
makeText
(
mContext
,
"请设置终点"
,
Toast
.
LENGTH_LONG
).
show
();
return
;
}
setCustomPointNaviRoute
(
startPoint
,
endPoint
);
}
@Override
@Override
public
void
onClick
(
View
view
)
{
public
void
onClick
(
View
view
)
{
...
@@ -768,14 +796,16 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -768,14 +796,16 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
arcGisLocationView
.
mNaviGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
mNaviGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
mMapView
.
getCallout
().
dismiss
();
arcGisLocationView
.
mMapView
.
getCallout
().
dismiss
();
}
}
setPopupLayout
();
setPopupLayout
();
}
}
private
void
setPopupLayout
()
{
private
void
setPopupLayout
()
{
if
(
bottomNaviParentView
==
null
)
{
if
(
bottomNaviParentView
==
null
)
{
bottomNaviParentView
=
View
.
inflate
(
mContext
,
R
.
layout
.
layout_navi_input
,
null
);
bottomNaviParentView
=
View
.
inflate
(
mContext
,
R
.
layout
.
layout_navi_input
,
null
);
initBottomView
();
initBottomView
();
popupLayout
=
PopupLayout
.
ini
t
(
mContext
,
bottomNaviParentView
);
popupLayout
=
new
PopupLayou
t
(
mContext
,
bottomNaviParentView
);
popupLayout
.
setUseRadius
(
true
);
popupLayout
.
setUseRadius
(
true
);
popupLayout
.
setHeight
((
int
)
(
ToolUtil
.
getScreenHeight
(
mContext
)
*
0.35
),
false
);
popupLayout
.
setHeight
((
int
)
(
ToolUtil
.
getScreenHeight
(
mContext
)
*
0.35
),
false
);
}
}
...
@@ -807,7 +837,7 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -807,7 +837,7 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
isSelectStartAddress
=
true
;
isSelectStartAddress
=
true
;
arcGisSearchView
.
currSearchType
=
Variable
.
SearchType
.
START_ADDRESS_SEARCH
;
arcGisSearchView
.
currSearchType
=
Variable
.
SearchType
.
START_ADDRESS_SEARCH
;
arcGisSearchView
.
setVisibility
(
View
.
VISIBLE
);
arcGisSearchView
.
setVisibility
(
View
.
VISIBLE
);
arcGisSearchView
.
m
ScrollLayout
.
scrollToClose
();
arcGisSearchView
.
m
BottomLayout
.
performClick
();
});
});
endAddressTv
.
setOnClickListener
(
view
->
{
endAddressTv
.
setOnClickListener
(
view
->
{
...
@@ -822,7 +852,8 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -822,7 +852,8 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
isSelectStartAddress
=
false
;
isSelectStartAddress
=
false
;
arcGisSearchView
.
currSearchType
=
Variable
.
SearchType
.
END_ADDRESS_SEARCH
;
arcGisSearchView
.
currSearchType
=
Variable
.
SearchType
.
END_ADDRESS_SEARCH
;
arcGisSearchView
.
setVisibility
(
View
.
VISIBLE
);
arcGisSearchView
.
setVisibility
(
View
.
VISIBLE
);
arcGisSearchView
.
mScrollLayout
.
scrollToClose
();
arcGisSearchView
.
mBottomLayout
.
performClick
();
});
});
...
@@ -852,17 +883,18 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -852,17 +883,18 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
Toast
.
makeText
(
mContext
,
"出发地和目的地不能是同一地址"
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
mContext
,
"出发地和目的地不能是同一地址"
,
Toast
.
LENGTH_LONG
).
show
();
return
;
return
;
}
}
setRoute
();
set
DefaultSearchNavi
Route
();
});
});
}
}
private
void
setRoute
()
{
private
void
setDefaultSearchNaviRoute
()
{
// mContext.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//屏幕常亮
arcGisLocationView
.
mNaviGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
mNaviGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
setSearchLocation
(
startSearchModel
.
getX
(),
startSearchModel
.
getY
(),
Variable
.
SearchType
.
START_ADDRESS_SEARCH
);
arcGisLocationView
.
setSearchLocation
(
startSearchModel
.
getX
(),
startSearchModel
.
getY
(),
Variable
.
SearchType
.
START_ADDRESS_SEARCH
);
arcGisLocationView
.
setSearchLocation
(
endSearchModel
.
getX
(),
endSearchModel
.
getY
(),
Variable
.
SearchType
.
END_ADDRESS_SEARCH
);
arcGisLocationView
.
setSearchLocation
(
endSearchModel
.
getX
(),
endSearchModel
.
getY
(),
Variable
.
SearchType
.
END_ADDRESS_SEARCH
);
Log
.
e
(
"startPoint"
,
startSearchModel
.
getX
()+
","
+
startSearchModel
.
getY
()
+
","
+
startSearchModel
.
getPoiname
());
Log
.
e
(
"endPoint"
,
endSearchModel
.
getX
()+
","
+
endSearchModel
.
getY
()
+
","
+
endSearchModel
.
getPoiname
());
PlanPoint
startPoint
=
new
PlanPoint
();
PlanPoint
startPoint
=
new
PlanPoint
();
startPoint
.
name
=
startSearchModel
.
getPoiname
();
startPoint
.
name
=
startSearchModel
.
getPoiname
();
double
[]
startPointArr
=
GpsUtil
.
toGCJ02Point
(
startSearchModel
.
getY
(),
startSearchModel
.
getX
());
double
[]
startPointArr
=
GpsUtil
.
toGCJ02Point
(
startSearchModel
.
getY
(),
startSearchModel
.
getX
());
...
@@ -877,7 +909,6 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -877,7 +909,6 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
// endPoint.pos = new GeoPoint(22.970898,114.047684);
// endPoint.pos = new GeoPoint(22.970898,114.047684);
endPoint
.
idx
=
PlanPoint
.
VIA1_IDX
;
endPoint
.
idx
=
PlanPoint
.
VIA1_IDX
;
/**
/**
* 设置开始点
* 设置开始点
*
*
...
@@ -898,6 +929,59 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
...
@@ -898,6 +929,59 @@ public class ArcGisNaviView extends FrameLayout implements View.OnClickListener,
arcGisSearchView
.
showDialog
();
arcGisSearchView
.
showDialog
();
}
}
/**
* 自定义点开启导航
*
* @param startPoint 起点
* @param endPoint 终点
*/
private
void
setCustomPointNaviRoute
(
PointModel
startPoint
,
PointModel
endPoint
)
{
arcGisLocationView
.
mLocationGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
mNaviGraphicsOverlay
.
getGraphics
().
clear
();
arcGisLocationView
.
mMapView
.
getCallout
().
dismiss
();
if
(
mapScanleValue
!=
arcGisLocationView
.
mMapView
.
getMapScale
())
{
arcGisLocationView
.
mMapView
.
setViewpointScaleAsync
(
mapScanleValue
);
}
arcGisLocationView
.
setSearchLocation
(
startPoint
.
getxPoint
(),
startPoint
.
getyPoint
(),
Variable
.
SearchType
.
START_ADDRESS_SEARCH
);
arcGisLocationView
.
setSearchLocation
(
endPoint
.
getxPoint
(),
endPoint
.
getyPoint
(),
Variable
.
SearchType
.
END_ADDRESS_SEARCH
);
PlanPoint
startPlantPoint
=
new
PlanPoint
();
startPlantPoint
.
name
=
startPoint
.
getPointName
();
//互联网
// double[] startPointArr = GpsUtil.toGCJ02Point(startPoint.getyPoint(), startPoint.getxPoint());
// startPlantPoint.pos = new GeoPoint(startPointArr[0], startPointArr[1]);
//公安网
startPlantPoint
.
pos
=
new
GeoPoint
(
startPoint
.
getyPoint
(),
startPoint
.
getxPoint
());
startPlantPoint
.
idx
=
0
;
PlanPoint
endPlantPoint
=
new
PlanPoint
();
endPlantPoint
.
name
=
endPoint
.
getPointName
();
// double[] endPointArr = GpsUtil.toGCJ02Point(endPoint.getyPoint(), endPoint.getxPoint());
// endPlantPoint.pos = new GeoPoint(endPointArr[0], endPointArr[1]);
endPlantPoint
.
pos
=
new
GeoPoint
(
endPoint
.
getyPoint
(),
endPoint
.
getxPoint
());
endPlantPoint
.
idx
=
PlanPoint
.
VIA1_IDX
;
/**
* 设置开始点
*
* @param originPoint 开始点
* @return 设置成功还是失败
*/
mineNaviRoute
.
setOrigin
(
startPlantPoint
);
/**
* 设置目的地
*
* @param destPoint 目的地
* @return 设置成功还是失败
*/
mineNaviRoute
.
setDestination
(
endPlantPoint
);
mineNaviRoute
.
calcDriveRoute
();
}
@Override
@Override
public
void
selectedResult
(
SearchModel
searchModel
)
{
public
void
selectedResult
(
SearchModel
searchModel
)
{
arcGisSearchView
.
mSearchEt
.
setText
(
""
);
arcGisSearchView
.
mSearchEt
.
setText
(
""
);
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/view/ArcGisSearchView.java
View file @
6d4d2c2f
This diff is collapsed.
Click to expand it.
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/cluster/ClusterLayer.java
View file @
6d4d2c2f
...
@@ -2,6 +2,9 @@ package cn.com.founder.arcgislib.widget.cluster;
...
@@ -2,6 +2,9 @@ package cn.com.founder.arcgislib.widget.cluster;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.graphics.drawable.BitmapDrawable
;
import
androidx.core.content.ContextCompat
;
import
com.esri.arcgisruntime.geometry.Envelope
;
import
com.esri.arcgisruntime.geometry.Envelope
;
import
com.esri.arcgisruntime.geometry.Geometry
;
import
com.esri.arcgisruntime.geometry.Geometry
;
...
@@ -9,10 +12,9 @@ import com.esri.arcgisruntime.geometry.Point;
...
@@ -9,10 +12,9 @@ import com.esri.arcgisruntime.geometry.Point;
import
com.esri.arcgisruntime.geometry.Polygon
;
import
com.esri.arcgisruntime.geometry.Polygon
;
import
com.esri.arcgisruntime.mapping.view.Graphic
;
import
com.esri.arcgisruntime.mapping.view.Graphic
;
import
com.esri.arcgisruntime.mapping.view.GraphicsOverlay
;
import
com.esri.arcgisruntime.mapping.view.GraphicsOverlay
;
import
com.esri.arcgisruntime.mapping.view.MapScaleChangedEvent
;
import
com.esri.arcgisruntime.mapping.view.MapScaleChangedListener
;
import
com.esri.arcgisruntime.mapping.view.MapView
;
import
com.esri.arcgisruntime.mapping.view.MapView
;
import
com.esri.arcgisruntime.symbology.CompositeSymbol
;
import
com.esri.arcgisruntime.symbology.CompositeSymbol
;
import
com.esri.arcgisruntime.symbology.PictureMarkerSymbol
;
import
com.esri.arcgisruntime.symbology.SimpleMarkerSymbol
;
import
com.esri.arcgisruntime.symbology.SimpleMarkerSymbol
;
import
com.esri.arcgisruntime.symbology.Symbol
;
import
com.esri.arcgisruntime.symbology.Symbol
;
import
com.esri.arcgisruntime.symbology.TextSymbol
;
import
com.esri.arcgisruntime.symbology.TextSymbol
;
...
@@ -22,6 +24,8 @@ import java.util.HashMap;
...
@@ -22,6 +24,8 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
cn.com.founder.arcgislib.view.ArcGisClusterView
;
/**
/**
* 模拟聚合
* 模拟聚合
*/
*/
...
@@ -45,8 +49,12 @@ public class ClusterLayer {
...
@@ -45,8 +49,12 @@ public class ClusterLayer {
ArrayList
<
Graphic
>
_clusterGraphics
=
new
ArrayList
<
Graphic
>();
ArrayList
<
Graphic
>
_clusterGraphics
=
new
ArrayList
<
Graphic
>();
private
PictureMarkerSymbol
defaultPointImageSymbol
;
private
SimpleMarkerSymbol
defaultClusterCircleSymbol
;
private
ArcGisClusterView
.
ClusterStyleBuilder
clusterStyleBuilder
;
public
ClusterLayer
(
final
MapView
mapView
,
GraphicsOverlay
GraphicsOverlay
,
public
ClusterLayer
(
final
MapView
mapView
,
GraphicsOverlay
GraphicsOverlay
,
Context
context
)
{
Context
context
,
ArcGisClusterView
.
ClusterStyleBuilder
clusterStyleBuilder
)
{
if
(
mapView
==
null
||
GraphicsOverlay
==
null
)
{
if
(
mapView
==
null
||
GraphicsOverlay
==
null
)
{
return
;
return
;
}
}
...
@@ -58,20 +66,31 @@ public class ClusterLayer {
...
@@ -58,20 +66,31 @@ public class ClusterLayer {
this
.
_clusterGraphicsOverlay
=
new
GraphicsOverlay
();
this
.
_clusterGraphicsOverlay
=
new
GraphicsOverlay
();
this
.
_mapView
.
getGraphicsOverlays
().
add
(
this
.
_clusterGraphicsOverlay
);
this
.
_mapView
.
getGraphicsOverlays
().
add
(
this
.
_clusterGraphicsOverlay
);
this
.
_context
=
context
;
this
.
_context
=
context
;
this
.
clusterStyleBuilder
=
clusterStyleBuilder
;
defaultClusterCircleSymbol
=
new
SimpleMarkerSymbol
(
SimpleMarkerSymbol
.
Style
.
CIRCLE
,
clusterStyleBuilder
.
getmClusterCircleBg
(),
clusterStyleBuilder
.
getmClusterCircleSize
());
BitmapDrawable
bitmapDrawableNormal
=
(
BitmapDrawable
)
ContextCompat
.
getDrawable
(
_context
,
clusterStyleBuilder
.
getmDefaultExpandImage
());
try
{
defaultPointImageSymbol
=
PictureMarkerSymbol
.
createAsync
(
bitmapDrawableNormal
).
get
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
this
.
_clusterGraphics
();
this
.
_clusterGraphics
();
mapView
.
addMapScaleChangedListener
(
new
MapScaleChangedListener
()
{
mapView
.
addMapScaleChangedListener
(
mapScaleChangedEvent
->
{
@Override
if
(!
mapView
.
isNavigating
())
{
public
void
mapScaleChanged
(
MapScaleChangedEvent
mapScaleChangedEvent
)
{
_clusterResolution
=
_getExtent
(
_mapView
.
getVisibleArea
())
if
(!
mapView
.
isNavigating
())
{
.
getWidth
()
/
_mapView
.
getWidth
();
_clusterResolution
=
_getExtent
(
_mapView
.
getVisibleArea
())
_clusterData
.
clear
();
.
getWidth
()
/
_mapView
.
getWidth
();
_clusterGraphics
.
clear
();
_clusterData
.
clear
();
_clusterGraphicsOverlay
.
getGraphics
().
clear
();
_clusterGraphics
.
clear
();
_clusterGraphics
();
_clusterGraphicsOverlay
.
getGraphics
().
clear
();
_clusterGraphics
();
}
}
}
});
});
}
}
...
@@ -104,8 +123,7 @@ public class ClusterLayer {
...
@@ -104,8 +123,7 @@ public class ClusterLayer {
public
ArrayList
<
Graphic
>
getGraphicsByClusterID
(
int
id
)
{
public
ArrayList
<
Graphic
>
getGraphicsByClusterID
(
int
id
)
{
ArrayList
<
Graphic
>
graphics
=
new
ArrayList
<>();
ArrayList
<
Graphic
>
graphics
=
new
ArrayList
<>();
for
(
Graphic
gra
:
this
.
_clusterGraphics
for
(
Graphic
gra
:
this
.
_clusterGraphics
)
{
)
{
if
(
Integer
.
valueOf
(
gra
.
getAttributes
().
get
(
"clusterID"
).
toString
())
==
id
)
{
if
(
Integer
.
valueOf
(
gra
.
getAttributes
().
get
(
"clusterID"
).
toString
())
==
id
)
{
graphics
.
add
(
gra
);
graphics
.
add
(
gra
);
}
}
...
@@ -231,17 +249,21 @@ public class ClusterLayer {
...
@@ -231,17 +249,21 @@ public class ClusterLayer {
private
Symbol
createClusterSymbol
(
Map
<
String
,
Object
>
cluster
)
{
private
Symbol
createClusterSymbol
(
Map
<
String
,
Object
>
cluster
)
{
int
count
=
(
Integer
)
cluster
.
get
(
"count"
);
int
count
=
(
Integer
)
cluster
.
get
(
"count"
);
if
(
count
==
1
)
{
if
(
count
==
1
)
{
return
markerSymbol
;
return
defaultPointImageSymbol
!=
null
?
defaultPointImageSymbol
:
markerSymbol
;
}
else
if
(
count
>
1
)
{
}
else
if
(
count
>
1
)
{
List
<
Symbol
>
symbols
=
new
ArrayList
<>();
List
<
Symbol
>
symbols
=
new
ArrayList
<>();
if
(
count
<=
10
)
{
symbols
.
add
(
defaultClusterCircleSymbol
);
symbols
.
add
(
markerSymbolS
);
}
else
if
(
count
>
10
&&
count
<=
20
)
{
// if (count <= 10) {
symbols
.
add
(
markerSymbolM
);
// symbols.add(markerSymbolS);
}
else
if
(
count
>
20
)
{
// } else if (count > 10 && count <= 20) {
symbols
.
add
(
markerSymbolL
);
// symbols.add(markerSymbolM);
}
// } else if (count > 20) {
TextSymbol
textSymbol
=
new
TextSymbol
(
18
,
count
+
""
,
Color
.
WHITE
,
// symbols.add(markerSymbolL);
// }
TextSymbol
textSymbol
=
new
TextSymbol
(
clusterStyleBuilder
.
getmClusterTextSize
(),
count
+
""
,
clusterStyleBuilder
.
getmClusterTextColor
(),
TextSymbol
.
HorizontalAlignment
.
CENTER
,
TextSymbol
.
HorizontalAlignment
.
CENTER
,
TextSymbol
.
VerticalAlignment
.
MIDDLE
);
TextSymbol
.
VerticalAlignment
.
MIDDLE
);
symbols
.
add
(
textSymbol
);
symbols
.
add
(
textSymbol
);
...
@@ -252,6 +274,7 @@ public class ClusterLayer {
...
@@ -252,6 +274,7 @@ public class ClusterLayer {
return
null
;
return
null
;
}
}
SimpleMarkerSymbol
markerSymbolL
=
new
SimpleMarkerSymbol
(
SimpleMarkerSymbol
.
Style
.
CIRCLE
,
SimpleMarkerSymbol
markerSymbolL
=
new
SimpleMarkerSymbol
(
SimpleMarkerSymbol
.
Style
.
CIRCLE
,
Color
.
RED
,
36
);
Color
.
RED
,
36
);
SimpleMarkerSymbol
markerSymbolM
=
new
SimpleMarkerSymbol
(
SimpleMarkerSymbol
.
Style
.
CIRCLE
,
SimpleMarkerSymbol
markerSymbolM
=
new
SimpleMarkerSymbol
(
SimpleMarkerSymbol
.
Style
.
CIRCLE
,
...
@@ -264,4 +287,6 @@ public class ClusterLayer {
...
@@ -264,4 +287,6 @@ public class ClusterLayer {
private
Envelope
_getExtent
(
Polygon
polygon
)
{
private
Envelope
_getExtent
(
Polygon
polygon
)
{
return
polygon
.
getExtent
();
return
polygon
.
getExtent
();
}
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/popup/PopupLayout.java
View file @
6d4d2c2f
...
@@ -5,8 +5,6 @@ import android.content.DialogInterface;
...
@@ -5,8 +5,6 @@ import android.content.DialogInterface;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.view.View
;
import
androidx.annotation.LayoutRes
;
/**
/**
* Copyright: 方正国际软件有限公司
* Copyright: 方正国际软件有限公司
* Author:luo_shaopeng
* Author:luo_shaopeng
...
@@ -15,7 +13,7 @@ import androidx.annotation.LayoutRes;
...
@@ -15,7 +13,7 @@ import androidx.annotation.LayoutRes;
* Description:类似popup的dialog--辅助类
* Description:类似popup的dialog--辅助类
*/
*/
public
class
PopupLayout
{
public
class
PopupLayout
{
private
static
PopupDialog
mPopupDialog
;
//内部使用的Dialog
private
PopupDialog
mPopupDialog
;
//内部使用的Dialog
private
static
DismissListener
mDismissListener
;
//监听弹出窗口的消失事件
private
static
DismissListener
mDismissListener
;
//监听弹出窗口的消失事件
public
static
int
POSITION_LEFT
=
Gravity
.
LEFT
;
//从最左侧弹出
public
static
int
POSITION_LEFT
=
Gravity
.
LEFT
;
//从最左侧弹出
...
@@ -24,33 +22,37 @@ public class PopupLayout {
...
@@ -24,33 +22,37 @@ public class PopupLayout {
public
static
int
POSITION_TOP
=
Gravity
.
TOP
;
//从顶部弹出
public
static
int
POSITION_TOP
=
Gravity
.
TOP
;
//从顶部弹出
public
static
int
POSITION_BOTTOM
=
Gravity
.
BOTTOM
;
//从底部弹出
public
static
int
POSITION_BOTTOM
=
Gravity
.
BOTTOM
;
//从底部弹出
private
PopupLayout
(){}
public
PopupLayout
(
Context
context
,
View
contentView
){
/**
* 初始化PopLayout
* @param context
* @param contentLayoutId 内容布局Id
*/
public
static
PopupLayout
init
(
Context
context
,
@LayoutRes
int
contentLayoutId
){
PopupLayout
popupLayout
=
new
PopupLayout
();
mPopupDialog
=
new
PopupDialog
(
context
);
mPopupDialog
.
setContentLayout
(
contentLayoutId
);
popupLayout
.
initListener
();
return
popupLayout
;
}
/**
* 初始化PopLayout
* @param context
* @param contentView 内容布局
*/
public
static
PopupLayout
init
(
Context
context
,
View
contentView
){
PopupLayout
popupLayout
=
new
PopupLayout
();
mPopupDialog
=
new
PopupDialog
(
context
);
mPopupDialog
=
new
PopupDialog
(
context
);
mPopupDialog
.
setContentLayout
(
contentView
);
mPopupDialog
.
setContentLayout
(
contentView
);
popupLayout
.
initListener
();
initListener
();
return
popupLayout
;
}
}
// /**
// * 初始化PopLayout
// * @param context
// * @param contentLayoutId 内容布局Id
// */
// public PopupLayout init(Context context, @LayoutRes int contentLayoutId){
// PopupLayout popupLayout=new PopupLayout();
// mPopupDialog=new PopupDialog(context);
// mPopupDialog.setContentLayout(contentLayoutId);
// popupLayout.initListener();
// return popupLayout;
// }
//
// /**
// * 初始化PopLayout
// * @param context
// * @param contentView 内容布局
// */
// public PopupLayout init(Context context, View contentView){
// PopupLayout popupLayout=new PopupLayout();
// mPopupDialog=new PopupDialog(context);
// mPopupDialog.setContentLayout(contentView);
// initListener();
// return popupLayout;
// }
//初始化Dialog监听器
//初始化Dialog监听器
private
void
initListener
(){
private
void
initListener
(){
...
...
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/ScrollLayout.java
deleted
100644 → 0
View file @
14af1553
This diff is collapsed.
Click to expand it.
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentListView.java
deleted
100644 → 0
View file @
14af1553
/*
*
* * sufly0001@gmail.com Modify the code to enhance the ease of use.
* *
* * Copyright (C) 2015 Ted xiong-wei@hotmail.com
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
*
*
*/
package
cn
.
com
.
founder
.
arcgislib
.
widget
.
scrolllayout
.
content
;
import
android.content.Context
;
import
android.os.Looper
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewParent
;
import
android.view.ViewTreeObserver
;
import
android.widget.AbsListView
;
import
android.widget.ListView
;
import
java.util.ArrayList
;
import
java.util.Iterator
;
import
java.util.List
;
import
cn.com.founder.arcgislib.widget.scrolllayout.ScrollLayout
;
public
class
ContentListView
extends
ListView
{
private
final
CompositeScrollListener
compositeScrollListener
=
new
CompositeScrollListener
();
private
boolean
showShadow
=
false
;
private
View
shadowView
;
public
ContentListView
(
Context
context
,
AttributeSet
attrs
,
int
defStyle
)
{
super
(
context
,
attrs
,
defStyle
);
}
public
ContentListView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
public
ContentListView
(
Context
context
)
{
super
(
context
);
}
{
super
.
setOnScrollListener
(
compositeScrollListener
);
getViewTreeObserver
().
addOnGlobalLayoutListener
(
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
@Override
public
void
onGlobalLayout
()
{
ViewGroup
.
LayoutParams
layoutParams
=
getLayoutParams
();
ViewParent
parent
=
getParent
();
while
(
parent
!=
null
)
{
if
(
parent
instanceof
ScrollLayout
)
{
int
height
=
((
ScrollLayout
)
parent
).
getMeasuredHeight
()
-
((
ScrollLayout
)
parent
).
minOffset
;
if
(
layoutParams
.
height
==
height
)
{
return
;
}
else
{
layoutParams
.
height
=
height
;
break
;
}
}
parent
=
parent
.
getParent
();
}
setLayoutParams
(
layoutParams
);
}
});
}
/**
* 添加一个OnScrollListener,不会取代已添加OnScrollListener
* <p>
* <b>Make sure call this on UI thread</b>
* </p>
*
* @param listener the listener to add
*/
@Override
public
void
setOnScrollListener
(
final
OnScrollListener
listener
)
{
addOnScrollListener
(
listener
);
}
/**
* 添加一个OnScrollListener,不会取代已添加OnScrollListener
* <p>
* <b>Make sure call this on UI thread</b>
* </p>
*
* @param listener the listener to add
*/
public
void
addOnScrollListener
(
final
OnScrollListener
listener
)
{
throwIfNotOnMainThread
();
compositeScrollListener
.
addOnScrollListener
(
listener
);
}
/**
* 删除前一个添加scrollListener,只会删除完全相同的对象
* <p>
* <b>Make sure call this on UI thread.</b>
* </p>
*
* @param listener the listener to remove
*/
public
void
removeOnScrollListener
(
final
OnScrollListener
listener
)
{
throwIfNotOnMainThread
();
compositeScrollListener
.
removeOnScrollListener
(
listener
);
}
/**
* 需要调用之前setOnScrollListener
*
* @param shadowView the shadow view
*/
public
void
setTopShadowView
(
View
shadowView
)
{
if
(
shadowView
==
null
)
{
return
;
}
this
.
shadowView
=
shadowView
;
addOnScrollListener
(
new
OnScrollListener
()
{
@Override
public
void
onScroll
(
AbsListView
view
,
int
firstVisibleItem
,
int
visibleItemCount
,
int
totalItemCount
)
{
View
firstChild
=
view
.
getChildAt
(
0
);
if
(
firstChild
!=
null
)
{
if
(
firstVisibleItem
==
0
&&
firstChild
.
getTop
()
==
0
)
{
showShadow
=
false
;
showTopShadow
();
}
else
if
(!
showShadow
)
{
showShadow
=
true
;
showTopShadow
();
}
}
}
@Override
public
void
onScrollStateChanged
(
AbsListView
view
,
int
scrollState
)
{
}
});
}
private
void
showTopShadow
()
{
if
(
shadowView
==
null
||
shadowView
.
getVisibility
()
==
View
.
VISIBLE
)
{
return
;
}
shadowView
.
setVisibility
(
View
.
VISIBLE
);
}
private
void
hideTopShadow
()
{
if
(
shadowView
==
null
||
shadowView
.
getVisibility
()
==
View
.
GONE
)
{
return
;
}
}
@Override
protected
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
ViewParent
parent
=
getParent
();
while
(
parent
!=
null
)
{
if
(
parent
instanceof
ScrollLayout
)
{
((
ScrollLayout
)
parent
).
setAssociatedListView
(
this
);
break
;
}
parent
=
parent
.
getParent
();
}
}
@Override
protected
void
onDetachedFromWindow
()
{
super
.
onDetachedFromWindow
();
}
private
void
throwIfNotOnMainThread
()
{
if
(
Looper
.
myLooper
()
!=
Looper
.
getMainLooper
())
{
throw
new
IllegalStateException
(
"Must be invoked from the main thread."
);
}
}
private
class
CompositeScrollListener
implements
OnScrollListener
{
private
final
List
<
OnScrollListener
>
scrollListenerList
=
new
ArrayList
<
OnScrollListener
>();
public
void
addOnScrollListener
(
OnScrollListener
listener
)
{
if
(
listener
==
null
)
{
return
;
}
for
(
OnScrollListener
scrollListener
:
scrollListenerList
)
{
if
(
listener
==
scrollListener
)
{
return
;
}
}
scrollListenerList
.
add
(
listener
);
}
public
void
removeOnScrollListener
(
OnScrollListener
listener
)
{
if
(
listener
==
null
)
{
return
;
}
Iterator
<
OnScrollListener
>
iterator
=
scrollListenerList
.
iterator
();
while
(
iterator
.
hasNext
())
{
OnScrollListener
scrollListener
=
iterator
.
next
();
if
(
listener
==
scrollListener
)
{
iterator
.
remove
();
return
;
}
}
}
@Override
public
void
onScrollStateChanged
(
AbsListView
view
,
int
scrollState
)
{
List
<
OnScrollListener
>
listeners
=
new
ArrayList
<
OnScrollListener
>(
scrollListenerList
);
for
(
OnScrollListener
listener
:
listeners
)
{
listener
.
onScrollStateChanged
(
view
,
scrollState
);
}
}
@Override
public
void
onScroll
(
AbsListView
view
,
int
firstVisibleItem
,
int
visibleItemCount
,
int
totalItemCount
)
{
List
<
OnScrollListener
>
listeners
=
new
ArrayList
<
OnScrollListener
>(
scrollListenerList
);
for
(
OnScrollListener
listener
:
listeners
)
{
listener
.
onScroll
(
view
,
firstVisibleItem
,
visibleItemCount
,
totalItemCount
);
}
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentRecyclerView.java
deleted
100644 → 0
View file @
14af1553
package
cn
.
com
.
founder
.
arcgislib
.
widget
.
scrolllayout
.
content
;
import
android.content.Context
;
import
android.os.Looper
;
import
android.util.AttributeSet
;
import
android.view.ViewGroup
;
import
android.view.ViewParent
;
import
android.view.ViewTreeObserver
;
import
android.widget.AbsListView
;
import
androidx.annotation.Nullable
;
import
androidx.recyclerview.widget.RecyclerView
;
import
java.util.ArrayList
;
import
java.util.Iterator
;
import
java.util.List
;
import
cn.com.founder.arcgislib.widget.scrolllayout.ScrollLayout
;
public
class
ContentRecyclerView
extends
RecyclerView
{
private
final
ContentRecyclerView
.
CompositeScrollListener
compositeScrollListener
=
new
ContentRecyclerView
.
CompositeScrollListener
();
public
ContentRecyclerView
(
Context
context
)
{
super
(
context
);
}
public
ContentRecyclerView
(
Context
context
,
@Nullable
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
public
ContentRecyclerView
(
Context
context
,
@Nullable
AttributeSet
attrs
,
int
defStyle
)
{
super
(
context
,
attrs
,
defStyle
);
}
{
super
.
addOnScrollListener
(
compositeScrollListener
);
getViewTreeObserver
().
addOnGlobalLayoutListener
(
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
@Override
public
void
onGlobalLayout
()
{
ViewGroup
.
LayoutParams
layoutParams
=
getLayoutParams
();
ViewParent
parent
=
getParent
();
while
(
parent
!=
null
)
{
if
(
parent
instanceof
ScrollLayout
)
{
int
height
=
((
ScrollLayout
)
parent
).
getMeasuredHeight
()
-
((
ScrollLayout
)
parent
).
minOffset
;
if
(
layoutParams
.
height
==
height
)
{
return
;
}
else
{
layoutParams
.
height
=
height
;
break
;
}
}
parent
=
parent
.
getParent
();
}
setLayoutParams
(
layoutParams
);
}
});
}
@Override
protected
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
ViewParent
parent
=
getParent
();
while
(
parent
!=
null
)
{
if
(
parent
instanceof
ScrollLayout
)
{
((
ScrollLayout
)
parent
).
setAssociatedRecyclerView
(
this
);
break
;
}
parent
=
parent
.
getParent
();
}
}
@Override
protected
void
onDetachedFromWindow
()
{
super
.
onDetachedFromWindow
();
}
private
void
throwIfNotOnMainThread
()
{
if
(
Looper
.
myLooper
()
!=
Looper
.
getMainLooper
())
{
throw
new
IllegalStateException
(
"Must be invoked from the main thread."
);
}
}
private
class
CompositeScrollListener
extends
OnScrollListener
{
private
final
List
<
OnScrollListener
>
scrollListenerList
=
new
ArrayList
<
OnScrollListener
>();
public
void
addOnScrollListener
(
RecyclerView
.
OnScrollListener
listener
)
{
if
(
listener
==
null
)
{
return
;
}
for
(
RecyclerView
.
OnScrollListener
scrollListener
:
scrollListenerList
)
{
if
(
listener
==
scrollListener
)
{
return
;
}
}
scrollListenerList
.
add
(
listener
);
}
public
void
removeOnScrollListener
(
AbsListView
.
OnScrollListener
listener
)
{
if
(
listener
==
null
)
{
return
;
}
Iterator
<
OnScrollListener
>
iterator
=
scrollListenerList
.
iterator
();
while
(
iterator
.
hasNext
())
{
RecyclerView
.
OnScrollListener
scrollListener
=
iterator
.
next
();
if
(
listener
==
scrollListener
)
{
iterator
.
remove
();
return
;
}
}
}
@Override
public
void
onScrollStateChanged
(
RecyclerView
view
,
int
scrollState
)
{
List
<
OnScrollListener
>
listeners
=
new
ArrayList
<
OnScrollListener
>(
scrollListenerList
);
for
(
RecyclerView
.
OnScrollListener
listener
:
listeners
)
{
listener
.
onScrollStateChanged
(
view
,
scrollState
);
}
}
@Override
public
void
onScrolled
(
RecyclerView
recyclerView
,
int
dx
,
int
dy
)
{
super
.
onScrolled
(
recyclerView
,
dx
,
dy
);
List
<
OnScrollListener
>
listeners
=
new
ArrayList
<
OnScrollListener
>(
scrollListenerList
);
for
(
RecyclerView
.
OnScrollListener
listener
:
listeners
)
{
listener
.
onScrolled
(
recyclerView
,
dx
,
dy
);
}
}
}
}
arcgislib/src/main/java/cn/com/founder/arcgislib/widget/scrolllayout/content/ContentScrollView.java
deleted
100644 → 0
View file @
14af1553
/*
*
* * sufly0001@gmail.com Modify the code to enhance the ease of use.
* *
* * Copyright (C) 2015 Ted xiong-wei@hotmail.com
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
*
*
*/
package
cn
.
com
.
founder
.
arcgislib
.
widget
.
scrolllayout
.
content
;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.view.MotionEvent
;
import
android.view.ViewParent
;
import
android.widget.ScrollView
;
import
cn.com.founder.arcgislib.widget.scrolllayout.ScrollLayout
;
public
class
ContentScrollView
extends
ScrollView
{
public
interface
OnScrollChangedListener
{
void
onScrollChanged
(
int
l
,
int
t
,
int
oldl
,
int
oldt
);
}
private
OnScrollChangedListener
listener
;
public
ContentScrollView
(
Context
context
)
{
super
(
context
);
}
public
ContentScrollView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
public
ContentScrollView
(
Context
context
,
AttributeSet
attrs
,
int
defStyle
)
{
super
(
context
,
attrs
,
defStyle
);
}
public
void
setOnScrollChangeListener
(
OnScrollChangedListener
listener
)
{
this
.
listener
=
listener
;
}
@Override
protected
void
onScrollChanged
(
int
l
,
int
t
,
int
oldl
,
int
oldt
)
{
super
.
onScrollChanged
(
l
,
t
,
oldl
,
oldt
);
listener
.
onScrollChanged
(
l
,
t
,
oldl
,
oldt
);
}
@Override
protected
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
ViewParent
parent
=
this
.
getParent
();
while
(
parent
!=
null
)
{
if
(
parent
instanceof
ScrollLayout
)
{
((
ScrollLayout
)
parent
).
setAssociatedScrollView
(
this
);
break
;
}
parent
=
parent
.
getParent
();
}
}
@Override
public
boolean
onTouchEvent
(
MotionEvent
ev
)
{
ViewParent
parent
=
this
.
getParent
();
if
(
parent
instanceof
ScrollLayout
)
{
if
(((
ScrollLayout
)
parent
).
getCurrentStatus
()
==
ScrollLayout
.
Status
.
OPENED
)
return
false
;
}
return
super
.
onTouchEvent
(
ev
);
}
}
arcgislib/src/main/res/layout/layout_search.xml
deleted
100644 → 0
View file @
14af1553
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:orientation=
"vertical"
style=
"@style/WrapContent.WidthMatchParent"
>
<cn.com.founder.arcgislib.widget.scrolllayout.ScrollLayout
android:id=
"@+id/search_scroll_layout"
style=
"@style/MatchParent"
android:background=
"#66000000"
app:exitOffset=
"100dp"
app:isSupportExit=
"false"
app:maxOffset=
"100dp"
app:minOffset=
"100dp"
app:mode=
"open"
>
<RelativeLayout
style=
"@style/MatchParent"
>
<LinearLayout
android:id=
"@+id/search_arrow_layout"
style=
"@style/WrapContent.WidthMatchParent"
android:orientation=
"vertical"
android:background=
"@color/colorWhite"
>
<ImageView
android:id=
"@+id/search_scroll_arrow_iv"
style=
"@style/WrapContent"
android:layout_gravity=
"center"
android:padding=
"@dimen/dimen_block_10"
android:src=
"@drawable/icon_search_line"
/>
</LinearLayout>
<cn.com.founder.arcgislib.widget.scrolllayout.content.ContentScrollView
style=
"@style/MatchParent"
android:layout_below=
"@+id/search_arrow_layout"
android:background=
"@color/colorWhite"
>
<LinearLayout
style=
"@style/MatchParent"
android:orientation=
"vertical"
android:focusable=
"true"
android:focusableInTouchMode=
"true"
>
<RelativeLayout
style=
"@style/WrapContent.WidthMatchParent"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/dimen_block_20"
android:layout_marginLeft=
"@dimen/dimen_block_10"
android:layout_marginRight=
"@dimen/dimen_block_10"
android:background=
"@drawable/bg_white_stroke_gray_selector"
android:descendantFocusability=
"beforeDescendants"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
android:layout_toLeftOf=
"@+id/search_scroll_content_search_cancel_tv"
android:layout_centerVertical=
"true"
>
<ImageView
android:layout_width=
"20dip"
android:layout_height=
"20dip"
android:layout_marginLeft=
"@dimen/dimen_block_10"
android:layout_marginTop=
"2dip"
android:src=
"@drawable/icon_search"
/>
<EditText
android:id=
"@+id/search_scroll_content_search_et"
style=
"@style/WrapContent.WidthMatchParent"
android:textColor=
"@color/color_333333"
android:textSize=
"@dimen/dimen_font_16sp"
android:background=
"@null"
android:hint=
"@string/string_search_hint"
android:paddingLeft=
"@dimen/dimen_block_5"
android:paddingTop=
"@dimen/dimen_block_10"
android:paddingRight=
"@dimen/dimen_block_10"
android:paddingBottom=
"@dimen/dimen_block_10"
android:textColorHint=
"@color/color_CCCCCC"
android:imeOptions=
"actionSearch"
android:inputType=
"text"
android:textCursorDrawable=
"@drawable/bg_navi_et_cursor"
/>
</LinearLayout>
<TextView
android:id=
"@+id/search_scroll_content_search_cancel_tv"
style=
"@style/WrapContent.main_text_style"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:text=
"@string/string_common_cancel"
android:padding=
"@dimen/dimen_block_10"
android:layout_marginRight=
"@dimen/dimen_block_10"
android:visibility=
"gone"
/>
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/search_swipeRecyclerView"
style=
"@style/WrapContent.WidthMatchParent"
android:visibility=
"gone"
/>
<LinearLayout
android:id=
"@+id/search_empty"
style=
"@style/MatchParent"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
>
<TextView
style=
"@style/WrapContent.main_text_style"
android:text=
"@string/string_common_nodata"
/>
</LinearLayout>
</LinearLayout>
</cn.com.founder.arcgislib.widget.scrolllayout.content.ContentScrollView>
</RelativeLayout>
</cn.com.founder.arcgislib.widget.scrolllayout.ScrollLayout>
</LinearLayout>
\ No newline at end of file
arcgislib/src/main/res/values/strings.xml
View file @
6d4d2c2f
...
@@ -28,7 +28,8 @@
...
@@ -28,7 +28,8 @@
<string
name=
"string_navi_start_navi"
>
开始导航
</string>
<string
name=
"string_navi_start_navi"
>
开始导航
</string>
<!--搜索-->
<!--搜索-->
<string
name=
"string_search_hint"
>
请输入地点
</string>
<string
name=
"string_search_hint"
>
请输入关键字
</string>
<string
name=
"string_search_prompt"
>
请选择
</string>
<!--热力图-->
<!--热力图-->
<string
name=
"string_hotpots_title"
>
热力图
</string>
<string
name=
"string_hotpots_title"
>
热力图
</string>
<string
name=
"string_hotpots_start_time"
>
开始时间
</string>
<string
name=
"string_hotpots_start_time"
>
开始时间
</string>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment