From 3c5c1c322053f91b85f47360cacab29353738aa3 Mon Sep 17 00:00:00 2001 From: qiji4215 <qiji4215@navinfo.com> Date: Wed, 12 Jul 2023 10:47:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BD=A6=E9=81=93=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E7=B1=BB=E5=9E=8B=E6=B8=B2=E6=9F=932.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=9C=B0=E5=9B=BE=E7=BA=A7=E5=88=AB=E8=81=94=E5=8A=A8?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E5=B7=A5=E5=85=B7=E6=A0=8F=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../omqs/ui/activity/map/MainActivity.kt | 7 ++ .../personalcenter/PersonalCenterFragment.kt | 4 +- .../src/main/assets/editormarker.xml | 74 +++++++++++++++---- .../src/main/assets/omdb/icon_2083_0.svg | 1 + .../src/main/assets/omdb/icon_2083_6.svg | 13 ++++ .../src/main/assets/omdb/icon_2083_7.svg | 8 ++ .../src/main/assets/omdb/icon_2083_9.svg | 6 ++ .../src/main/assets/omdb/icon_2202_0.svg | 14 +++- .../collect/library/map/NIMapView.java | 23 +++++- 9 files changed, 131 insertions(+), 19 deletions(-) create mode 100644 collect-library/src/main/assets/omdb/icon_2083_0.svg create mode 100644 collect-library/src/main/assets/omdb/icon_2083_6.svg create mode 100644 collect-library/src/main/assets/omdb/icon_2083_7.svg create mode 100644 collect-library/src/main/assets/omdb/icon_2083_9.svg diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 2234802e..d6f34263 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -38,6 +38,8 @@ import com.navinfo.omqs.util.FlowEventBus import com.navinfo.omqs.util.SpeakMode import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch +import org.oscim.core.GeoPoint +import org.oscim.renderer.GLViewport import org.videolan.vlc.Util import java.math.BigDecimal import java.math.RoundingMode @@ -503,9 +505,14 @@ class MainActivity : BaseActivity() { } binding.mainActivityBottomSheetGroup.visibility = View.GONE + + mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5) } else { binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE + mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65) } + mapController.mMapView.vtmMap.animator() + .animateTo(GeoPoint( mapController.mMapView.vtmMap.mapPosition.latitude,mapController.mMapView.vtmMap.mapPosition.latitude)) } private fun voiceOnTouchStart() { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt index c93d949e..8ca20c4a 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt @@ -113,10 +113,10 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) : } R.id.personal_center_menu_test -> { viewModel.readRealmData() - //108.92242999223849 34.27711899342322 + //108.91056000267433 34.29635901721207 // 定位到指定位置 niMapController.mMapView.vtmMap.animator() - .animateTo(GeoPoint( 34.27711899342322, 108.92242999223849)) + .animateTo(GeoPoint( 34.29635901721207, 108.91056000267433)) } // R.id.personal_center_menu_task_list -> { // findNavController().navigate(R.id.TaskManagerFragment) diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 0ce4e342..00864bf8 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1707,7 +1707,48 @@ </m>0 <!-- 道路边界类型 --> <m v="OMDB_RDBOUND_BOUNDARYTYPE"> - <line stroke="#ffffff" width="0.1" /> + <outline-layer id="boundaryType" stroke="#fcba5a" width="0.2" /> + <m k="boundaryType" v="0"> + <!--不应用--> + <line stroke="#fcba5a" use="boundaryType"/> + <lineSymbol repeat-gap="12" repeat-start="12" symbol-height="16" symbol-width="16" src="assets:omdb/icon_2083_0.svg" /> + </m> + <m k="boundaryType" v="1"> + <!--无标线无可区分边界--> + <line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" /> + </m> + <m k="boundaryType" v="2"> + <!--标线--> + <line stroke="#fcba5a" use="boundaryType"/> + </m> + <m k="boundaryType" v="3"> + <!--路牙--> + <line dasharray="10,4" repeat-start="0" stroke="#fcba5a" width="0.2" /> + </m> + <m k="boundaryType" v="4"> + <!--护栏--> + <line dasharray="10,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2"/> + </m> + <m k="boundaryType" v="5"> + <!--墙--> + <line stroke="#fcba5a" use="boundaryType"/> + <line dasharray="10,5" stroke="#fcba5a" width="0.5" /> + </m> + <m k="boundaryType" v="6"> + <!--道路面铺设边缘--> + <line stroke="#fcba5a" use="boundaryType"/> + <lineSymbol repeat-gap="32" repeat-start="0" symbol-height="32" src="assets:omdb/icon_2083_6.svg" /> + </m> + <m k="boundaryType" v="7"> + <!--虚拟三角岛--> + <line stroke="#fcba5a" use="boundaryType"/> + <line src="assets:omdb/icon_2083_7.svg" symbol-height="12" symbol-width="12" symbol-percent="20" width="1" /> + </m> + <m k="boundaryType" v="9"> + <!--杆状障碍物--> + <line stroke="#fcba5a" use="boundaryType"/> + <lineSymbol repeat-gap="16" repeat-start="12" symbol-height="24" symbol-width="8" src="assets:omdb/icon_2083_9.svg" /> + </m> </m> <!-- 车道边界类型 --> <m v="OMDB_LANE_MARK_BOUNDARYTYPE"> @@ -1775,6 +1816,22 @@ </m> </m> </m> + + <!--隧道--> + <m v="OMDB_TUNNEL"> + <m k="formOfWay"> + <line dasharray="0.3,0.3" stroke="#d4237a" width="0.4" /> + </m> + <m k="type" v="s_2_p"> + <symbol repeat="false" repeat-start="0" rotate="false" + src="assets:omdb/icon_2202_0.svg" symbol-height="32" symbol-width="32"></symbol> + </m> + <m k="type" v="e_2_p"> + <symbol repeat="false" repeat-start="0" rotate="false" + src="assets:omdb/icon_2202_1.svg" symbol-height="32" symbol-width="32"></symbol> + </m> + </m> + <!--道路方向--> <m v="OMDB_LINK_DIRECT"> <m k="direct"> @@ -1808,20 +1865,7 @@ <line use="s2e" /> </m> </m> - <!--隧道--> - <m v="OMDB_TUNNEL"> - <m k="formOfWay"> - <line dasharray="24,8,4,2" stroke="#d4237a" width="2" /> - </m> - <m k="type" v="s_2_p"> - <symbol repeat="false" repeat-start="0" rotate="false" - src="assets:omdb/icon_2202_0.svg" symbol-height="69" symbol-width="69"></symbol> - </m> - <m k="type" v="e_2_p"> - <symbol repeat="false" repeat-start="0" rotate="false" - src="assets:omdb/icon_2202_1.svg" symbol-height="69" symbol-width="69"></symbol> - </m> - </m> + <!--电子眼--> <m v="OMDB_ELECTRONICEYE"> <!-- <m k="angle">--> diff --git a/collect-library/src/main/assets/omdb/icon_2083_0.svg b/collect-library/src/main/assets/omdb/icon_2083_0.svg new file mode 100644 index 00000000..e9433758 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2083_0.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1689041545166" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30665" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M512.005117 958.708971C265.683035 958.708971 65.290005 758.316965 65.290005 511.99386c0-246.310825 200.39303-446.703855 446.715111-446.703855 246.310825 0 446.703855 200.39303 446.703855 446.703855C958.708971 758.316965 758.316965 958.708971 512.005117 958.708971zM512.005117 169.716356c-188.738595 0-342.289784 153.545048-342.289784 342.277504 0 188.738595 153.551188 342.289784 342.289784 342.289784 188.733479 0 342.278527-153.551188 342.278527-342.289784C854.283644 323.261405 700.738595 169.716356 512.005117 169.716356z" p-id="30666" fill="#fcba5a"></path></svg> \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2083_6.svg b/collect-library/src/main/assets/omdb/icon_2083_6.svg new file mode 100644 index 00000000..d3205549 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2083_6.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="4" height="58.142" viewBox="0 0 4 58.142"> + <defs> + <style>.a{fill:none;stroke:#ebb972;stroke-width:4px;}.b{opacity:0.001;}</style> + </defs> + <g transform="translate(-401.035 -35.964)"> + <g transform="translate(313.535 166.535) rotate(-90)"> + <line class="a" x2="29.071" transform="translate(101.5 89.5)" /> + </g> + <g class="b" transform="translate(313.535 195.605) rotate(-90)"> + <line class="a" x2="29.071" transform="translate(101.5 89.5)" /> + </g> + </g> +</svg> \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2083_7.svg b/collect-library/src/main/assets/omdb/icon_2083_7.svg new file mode 100644 index 00000000..934314e6 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2083_7.svg @@ -0,0 +1,8 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="69.82" height="37.822" viewBox="0 0 69.82 37.822"> + <defs> + <style>.a{fill:#ebb972;}</style> + </defs> + <path class="a" + d="M8597.151,19460.063a2.98,2.98,0,0,1-2.208-.877l-31.823-31.824a3,3,0,0,1,4.244-4.238l29.787,29.787,29.792-29.787a3,3,0,1,1,4.239,4.238l-31.819,31.824a2.991,2.991,0,0,1-2.122.879C8597.212,19460.064,8597.182,19460.064,8597.151,19460.063Z" + transform="translate(-8562.241 -19422.242)" /> +</svg> \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2083_9.svg b/collect-library/src/main/assets/omdb/icon_2083_9.svg new file mode 100644 index 00000000..06325cf4 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2083_9.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="15" height="48" viewBox="0 0 15 48"> + <defs> + <style>.a{fill:#ebb972;}</style> + </defs> + <rect class="a" width="15" height="48" rx="7.5" /> +</svg> \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2202_0.svg b/collect-library/src/main/assets/omdb/icon_2202_0.svg index b2479462..51a69b01 100644 --- a/collect-library/src/main/assets/omdb/icon_2202_0.svg +++ b/collect-library/src/main/assets/omdb/icon_2202_0.svg @@ -1 +1,13 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1688716256005" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3069" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M512 192c-140.8 0-256 115.2-256 256v512l128-224V448c0-70.4 57.6-128 128-128s128 57.6 128 128v288l128 224V448c0-140.8-115.2-256-256-256z" fill="#FFB43E" p-id="3070"></path><path d="M448 736l-128 224h384L576 736z" fill="#FFB43E" p-id="3071"></path><path d="M512 64C300 64 128 236 128 448v512h64V448c0-176.8 143.2-320 320-320s320 143.2 320 320v512h64V448c0-212-172-384-384-384z" fill="#FFB43E" p-id="3072"></path></svg> \ No newline at end of file +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg t="1688716256005" class="icon" viewBox="0 0 1024 1024" version="1.1" + xmlns="http://www.w3.org/2000/svg" p-id="3069" width="32" height="32" + xmlns:xlink="http://www.w3.org/1999/xlink"> + <path + d="M512 192c-140.8 0-256 115.2-256 256v512l128-224V448c0-70.4 57.6-128 128-128s128 57.6 128 128v288l128 224V448c0-140.8-115.2-256-256-256z" + fill="#FFB43E" p-id="3070"></path> + <path d="M448 736l-128 224h384L576 736z" fill="#FFB43E" p-id="3071"></path> + <path + d="M512 64C300 64 128 236 128 448v512h64V448c0-176.8 143.2-320 320-320s320 143.2 320 320v512h64V448c0-212-172-384-384-384z" + fill="#FFB43E" p-id="3072"></path> +</svg> \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java index f599fcb7..e10dd9a2 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java @@ -36,6 +36,7 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.layers.tile.vector.labeling.LabelTileLoaderHook; import org.oscim.map.Map; import org.oscim.renderer.GLViewport; +import org.oscim.scalebar.MapScaleBarLayer; import org.oscim.theme.IRenderTheme; import org.oscim.theme.ThemeLoader; import org.oscim.theme.VtmThemes; @@ -198,6 +199,11 @@ public final class NIMapView extends RelativeLayout { */ private OnMapTouchListener touchListener; + /** + * 比例尺控件 + */ + private MapScaleBarLayer mapScaleBarLayer; + public NIMapView(Context context, AttributeSet attrs) { this(context, attrs, 0); } @@ -252,7 +258,7 @@ public final class NIMapView extends RelativeLayout { // 增加比例尺图层 NaviMapScaleBar naviMapScaleBar = new NaviMapScaleBar(getVtmMap()); - naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5); + mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5); // if (gridLayer == null) { // gridLayer = new TileGridLayer(getVtmMap()); @@ -878,6 +884,21 @@ public final class NIMapView extends RelativeLayout { } } + /** + * 设置比例尺位置 + * @param position + * @param xOffset + * @param yOffset + */ + public void setScaleBarLayer(GLViewport.Position position, int xOffset, int yOffset){ + if(mapScaleBarLayer!=null&&mapView.map().layers().contains(mapScaleBarLayer)){ + mapView.map().layers().remove(mapScaleBarLayer); + mapScaleBarLayer = null; + } + NaviMapScaleBar naviMapScaleBar = new NaviMapScaleBar(getVtmMap()); + mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, xOffset, yOffset); + } + /** * 设置是否显示缩放控件 *