diff --git a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt index a036cabf..cd3ab3ac 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt @@ -68,6 +68,6 @@ open class TaskBean @JvmOverloads constructor( var message: String = "" ) : RealmObject() { fun getDownLoadUrl(): String { - return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=26" + return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=$id" } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index a00873d3..56ea0bd8 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -1,7 +1,10 @@ package com.navinfo.omqs.db +import android.os.Build import android.util.Log +import androidx.annotation.RequiresApi import com.navinfo.collect.library.data.entity.RenderEntity +import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt @@ -17,10 +20,11 @@ import org.oscim.core.MercatorProjection import javax.inject.Inject import kotlin.streams.toList - +@RequiresApi(Build.VERSION_CODES.N) class RealmOperateHelper() { @Inject lateinit var niMapController: NIMapController + /** * 根据当前点位查询匹配的Link数据 * @param point 点位经纬度信息 @@ -28,7 +32,12 @@ class RealmOperateHelper() { * @param bufferType 点位外扩距离的单位: 米-Meter,像素-PIXEL * @param sort 是否需要排序 * */ - suspend fun queryLink(point: Point, buffer: Double = DEFAULT_BUFFER, bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE, sort: Boolean = false): MutableList { + suspend fun queryLink( + point: Point, + buffer: Double = DEFAULT_BUFFER, + bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE, + sort: Boolean = true + ): MutableList { val result = mutableListOf() withContext(Dispatchers.IO) { val polygon = getPolygonFromPoint(point, buffer, bufferType) @@ -45,25 +54,49 @@ class RealmOperateHelper() { val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) // 查询realm中对应tile号的数据 - val realmList = Realm.getDefaultInstance().where(RenderEntity::class.java) + val realm = Realm.getDefaultInstance() + val realmList = realm.where(RenderEntity::class.java) .equalTo("table", "OMDB_RD_LINK") .and() .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .findAll() // 将获取到的数据和查询的polygon做相交,只返回相交的数据 - val queryResult = realmList?.stream()?.filter { + val dataList = realm.copyFromRealm(realmList) + val queryResult = dataList?.stream()?.filter { polygon.intersects(it.wkt) }?.toList() + queryResult?.let { - result.addAll(queryResult) - } - if (sort) { - result.clear() - result.addAll(sortRenderEntity(point, result)) + if (sort) { + result.addAll(sortRenderEntity(point, it)) + } else { + result.addAll(it) + } } + } return result } + + + suspend fun queryLink( + linkPid: String, + ): RenderEntity? { + var link: RenderEntity? = null + withContext(Dispatchers.IO) { + val realm = Realm.getDefaultInstance() + val realmR = realm.where(RenderEntity::class.java) + .equalTo("table", "OMDB_RD_LINK") + .and() + .rawPredicate("properties['${LinkTable.linkPid}']=$linkPid") + .findFirst() + if (realmR != null) { + link = realm.copyFromRealm(realmR) + } + } + return link + } + /** * 根据当前点位查询匹配的除Link外的其他要素数据 * @param point 点位经纬度信息 @@ -71,7 +104,12 @@ class RealmOperateHelper() { * @param bufferType 点位外扩距离的单位: 米-Meter,像素-PIXEL * @param sort 是否需要排序 * */ - suspend fun queryElement(point: Point, buffer: Double = DEFAULT_BUFFER, bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE, sort: Boolean = false): MutableList { + suspend fun queryElement( + point: Point, + buffer: Double = DEFAULT_BUFFER, + bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE, + sort: Boolean = true + ): MutableList { val result = mutableListOf() withContext(Dispatchers.IO) { val polygon = getPolygonFromPoint(point, buffer, bufferType) @@ -121,7 +159,7 @@ class RealmOperateHelper() { val realmList = Realm.getDefaultInstance().where(RenderEntity::class.java) .notEqualTo("table", "OMDB_RD_LINK") .and() - .equalTo("properties['LINK_PID']", linkPid) + .equalTo("properties['${LinkTable.linkPid}']", linkPid) .findAll() result.addAll(realmList) } @@ -134,15 +172,19 @@ class RealmOperateHelper() { * @param unSortList 未排序的数据 * @return 排序后的数据 * */ - fun sortRenderEntity(point: Point, unSortList: MutableList): List { + fun sortRenderEntity(point: Point, unSortList: List): List { val sortList = unSortList.stream().sorted { renderEntity, renderEntity2 -> val near = point.distance(renderEntity.wkt) - point.distance(renderEntity2.wkt) - if (near<0) -1 else 1 + if (near < 0) -1 else 1 }.toList() return sortList } - private fun getPolygonFromPoint(point: Point, buffer: Double = DEFAULT_BUFFER, bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE): Polygon { + private fun getPolygonFromPoint( + point: Point, + buffer: Double = DEFAULT_BUFFER, + bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE + ): Polygon { // 首先计算当前点位的buffer组成的geometry val wkt: Polygon = if (bufferType == BUFFER_TYPE.METER) { // 如果单位是米 val distanceDegrees = GeometryTools.convertDistanceToDegree(buffer, point.y) @@ -151,14 +193,30 @@ class RealmOperateHelper() { } else { // 如果单位是像素,需要根据当前屏幕像素计算出经纬度变化 val currentMapScale = niMapController.mMapView.vtmMap.mapPosition.scale // 转换为屏幕坐标 - val pixelPoint = MercatorProjection.getPixelWithScale(GeoPoint(point.y, point.x), currentMapScale) + val pixelPoint = + MercatorProjection.getPixelWithScale( + GeoPoint(point.y, point.x), + currentMapScale + ) // 将屏幕坐标外扩指定距离 // 计算外扩矩形 val envelope = Envelope( - MercatorProjection.pixelXToLongitudeWithScale(pixelPoint.x - buffer, currentMapScale), - MercatorProjection.pixelXToLongitudeWithScale(pixelPoint.x + buffer, currentMapScale), - MercatorProjection.pixelYToLatitudeWithScale(pixelPoint.y - buffer, currentMapScale), - MercatorProjection.pixelYToLatitudeWithScale(pixelPoint.y + buffer, currentMapScale), + MercatorProjection.pixelXToLongitudeWithScale( + pixelPoint.x - buffer, + currentMapScale + ), + MercatorProjection.pixelXToLongitudeWithScale( + pixelPoint.x + buffer, + currentMapScale + ), + MercatorProjection.pixelYToLatitudeWithScale( + pixelPoint.y - buffer, + currentMapScale + ), + MercatorProjection.pixelYToLatitudeWithScale( + pixelPoint.y + buffer, + currentMapScale + ), ) // 将Envelope对象转换为Polygon对象 val geometryFactory = GeometryFactory() @@ -178,7 +236,8 @@ class RealmOperateHelper() { enum class BUFFER_TYPE(val index: Int) { METER(0)/*米*/, PIXEL(1)/*像素*/; - fun getBufferTypeByIndex(index: Int): BUFFER_TYPE{ + + fun getBufferTypeByIndex(index: Int): BUFFER_TYPE { for (item in BUFFER_TYPE.values()) { if (item.index == index) { return item; diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index 65ca7324..f99ceed1 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -59,7 +59,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { if (arguments != null) { val id = requireArguments().getString("QsId") if (id != null) { - viewModel.loadData(id) + viewModel.initData(id) } else { viewModel.initNewData() } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index f1914053..e059f3e5 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -1,10 +1,14 @@ package com.navinfo.omqs.ui.fragment.evaluationresult +import android.os.Build import android.util.Log +import androidx.annotation.RequiresApi import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.navinfo.collect.library.data.entity.QsRecordBean +import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable +import com.navinfo.collect.library.map.GeoPoint import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.omqs.db.RealmOperateHelper @@ -14,10 +18,10 @@ import io.realm.Realm import io.realm.kotlin.where import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import org.locationtech.jts.geom.Point import java.util.* import javax.inject.Inject +@RequiresApi(Build.VERSION_CODES.N) @HiltViewModel class EvaluationResultViewModel @Inject constructor( private val roomAppDatabase: RoomAppDatabase, @@ -60,15 +64,7 @@ class EvaluationResultViewModel @Inject constructor( liveDataQsRecordBean.value!!.geometry = it.toGeometry() addMarker(it, markerTitle) viewModelScope.launch { - val linkList = realmOperateHelper.queryLink( - point = GeometryTools.createPoint( - it.longitude, - it.latitude - ), sort = true - ) - if (linkList.isNotEmpty()) { - liveDataQsRecordBean.value!!.linkId = linkList[0].id - } + captureLink(it.longitude, it.latitude) } } } @@ -80,6 +76,7 @@ class EvaluationResultViewModel @Inject constructor( Log.e("jingo", "EvaluationResultViewModel 销毁了 ${hashCode()}") mapController.markerHandle.removeMarker(markerTitle) mapController.markerHandle.removeOnMapClickListener() + mapController.lineHandler.removeLine() } @@ -96,15 +93,29 @@ class EvaluationResultViewModel @Inject constructor( liveDataQsRecordBean.value!!.geometry = it.toGeometry() mapController.markerHandle.addMarker(geoPoint, markerTitle) viewModelScope.launch { - val linkList = realmOperateHelper.queryLink( - GeometryTools.createPoint( - geoPoint.longitude, - geoPoint.latitude - ) - ) - if (linkList.isNotEmpty()) { - liveDataQsRecordBean.value!!.linkId = linkList[0].id - } + captureLink(geoPoint.longitude, geoPoint.latitude) + } + } + } + + /** + * 捕捉到路 + */ + private suspend fun captureLink(longitude: Double, latitude: Double) { + val linkList = realmOperateHelper.queryLink( + point = GeometryTools.createPoint( + longitude, + latitude + ), + ) + liveDataQsRecordBean.value?.let { + if (linkList.isNotEmpty()) { + it.linkId = + linkList[0].properties[LinkTable.linkPid] ?: "" + mapController.lineHandler.showLine(linkList[0].geometry) + } else { + it.linkId = "" + mapController.lineHandler.removeLine() } } } @@ -263,14 +274,28 @@ class EvaluationResultViewModel @Inject constructor( /** * 根据数据id,查询数据 */ - fun loadData(id: String) { + + fun initData(id: String) { viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() val objects = realm.where().equalTo("id", id).findFirst() if (objects != null) { oldBean = realm.copyFromRealm(objects) - liveDataQsRecordBean.postValue(oldBean!!.copy()) + oldBean?.let { + liveDataQsRecordBean.postValue(it.copy()) + val p = GeometryTools.createGeoPoint(it.geometry) + mapController.markerHandle.addMarker( + GeoPoint(p.longitude, p.latitude), + markerTitle + ) + if (it.linkId.isNotEmpty()) { + val link = realmOperateHelper.queryLink(it.linkId) + link?.let { l -> + mapController.lineHandler.showLine(l.geometry) + } + } + } } } } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt index 3f7f0df0..608f59ed 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt @@ -16,7 +16,7 @@ import java.util.* /** * 渲染要素对应的实体 * */ -open class RenderEntity(): RealmObject() { +open class RenderEntity() : RealmObject() { @PrimaryKey var id: String = UUID.randomUUID().toString() // id lateinit var name: String //要素名 @@ -39,14 +39,38 @@ open class RenderEntity(): RealmObject() { } } + @Ignore var wkt: Geometry? = null + get() { + if (field == null || field!!.isEmpty) { + try { + field = GeometryTools.createGeometry(geometry) + } catch (e: Exception) { + + } + } + return field + } var properties: RealmDictionary = RealmDictionary() var tileX: RealmSet = RealmSet() // x方向的tile编码 var tileY: RealmSet = RealmSet() // y方向的tile编码 - constructor(name: String, properties: RealmDictionary): this() { + constructor(name: String, properties: RealmDictionary) : this() { this.name = name this.properties = properties } + + companion object { + object LinkTable { + //道路linkId + const val linkPid = "linkPid" + } + object LimitTable { + const val linkPid = "linkPid" + } + object KindCodeTable { + const val linkPid = "linkPid" + } + } } \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt index f3524706..aafad60d 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt @@ -1,57 +1,27 @@ package com.navinfo.collect.library.map.handler -import android.content.Context -import android.graphics.BitmapFactory -import android.graphics.Canvas -import android.graphics.Color -import android.util.Log import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.res.ResourcesCompat -import androidx.lifecycle.lifecycleScope -import com.navinfo.collect.library.R -import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.map.NIMapView -import com.navinfo.collect.library.map.cluster.ClusterMarkerItem -import com.navinfo.collect.library.map.cluster.ClusterMarkerRenderer -import com.navinfo.collect.library.map.layers.MyItemizedLayer import com.navinfo.collect.library.map.source.MapLifeNiLocationTileSource import com.navinfo.collect.library.map.source.NavinfoMultiMapFileTileSource import com.navinfo.collect.library.map.source.OMDBTileSource import com.navinfo.collect.library.system.Constant -import com.navinfo.collect.library.utils.GeometryTools -import io.realm.Realm -import io.realm.kotlin.where -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import okhttp3.Cache import okhttp3.OkHttpClient -import org.locationtech.jts.geom.Geometry -import org.oscim.android.canvas.AndroidBitmap -import org.oscim.backend.CanvasAdapter -import org.oscim.backend.canvas.Bitmap -import org.oscim.backend.canvas.Paint -import org.oscim.core.GeoPoint import org.oscim.layers.GroupLayer -import org.oscim.layers.marker.MarkerInterface -import org.oscim.layers.marker.MarkerItem -import org.oscim.layers.marker.MarkerRendererFactory -import org.oscim.layers.marker.MarkerSymbol import org.oscim.layers.tile.buildings.BuildingLayer import org.oscim.layers.tile.vector.VectorTileLayer import org.oscim.layers.tile.vector.labeling.LabelLayer import org.oscim.layers.tile.vector.labeling.LabelTileLoaderHook -import org.oscim.map.Map import org.oscim.map.Map.UpdateListener import org.oscim.tiling.source.OkHttpEngine.OkHttpFactory import org.oscim.tiling.source.mapfile.MapFileTileSource import java.io.File -import java.util.* /** * Layer 操作 */ -open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tracePath: String) : BaseHandler(context, mapView) { +class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tracePath: String) : BaseHandler(context, mapView) { private var baseGroupLayer // 用于盛放所有基础底图的图层组,便于统一管理 : GroupLayer? = null protected val mTracePath:String = tracePath @@ -76,10 +46,6 @@ open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tr * */ private lateinit var omdbVectorTileLayer: VectorTileLayer private lateinit var omdbLabelLayer: LabelLayer - /** - * 文字大小 - */ - private val NUM_13 = 13 init { initMap() diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt index ac0abb70..ca3ed0b9 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt @@ -1,13 +1,15 @@ package com.navinfo.collect.library.map.handler -import android.content.Context import android.graphics.BitmapFactory +import android.os.Build import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import com.navinfo.collect.library.R import com.navinfo.collect.library.map.NIMapView import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.StringUtil +import org.locationtech.jts.geom.LineString import org.oscim.android.canvas.AndroidBitmap import org.oscim.backend.canvas.Bitmap import org.oscim.core.GeoPoint @@ -22,8 +24,9 @@ import org.oscim.layers.vector.PathLayer import org.oscim.layers.vector.geometries.Style import org.oscim.map.Map -open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : - BaseHandler(context, mapView), Map.UpdateListener { +@RequiresApi(Build.VERSION_CODES.M) +class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(context, mapView), + Map.UpdateListener { private var editIndex: Int = -1; private val mPathMakers: MutableList = mutableListOf() @@ -51,6 +54,9 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : private var bDrawLine = false + + private val mDefaultPathLayer: PathLayer + init { mMapView.vtmMap.events.bind(this) @@ -61,29 +67,21 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : .fillColor(context.resources.getColor(R.color.draw_line_blue2_color, null)) .fillAlpha(0.5f) .strokeColor(context.resources.getColor(R.color.draw_line_blue2_color, null)) - .fixed(true) - .build() + .fixed(true).build() - newTempStyle = Style.builder() - .stippleColor(context.resources.getColor(R.color.transparent, null)) - .stipple(30) - .stippleWidth(30f) - .strokeWidth(4f) - .strokeColor(context.resources.getColor(R.color.draw_line_blue2_color, null)) - .fixed(true) - .randomOffset(false) - .build() - - editTempStyle = Style.builder() - .stippleColor(context.resources.getColor(R.color.transparent, null)) - .stipple(30) - .stippleWidth(30f) - .strokeWidth(8f) - .strokeColor(context.resources.getColor(R.color.draw_line_red_color, null)) - .fixed(true) - .randomOffset(false) - .build() + newTempStyle = + Style.builder().stippleColor(context.resources.getColor(R.color.transparent, null)) + .stipple(30).stippleWidth(30f).strokeWidth(4f) + .strokeColor(context.resources.getColor(R.color.draw_line_blue2_color, null)) + .fixed(true).randomOffset(false).build() + editTempStyle = + Style.builder().stippleColor(context.resources.getColor(R.color.transparent, null)) + .stipple(30).stippleWidth(30f).strokeWidth(8f) + .strokeColor(context.resources.getColor(R.color.draw_line_red_color, null)) + .fixed(true).randomOffset(false).build() + mDefaultPathLayer = PathLayer(mMapView.vtmMap, lineStyle) + addLayer(mDefaultPathLayer, NIMapView.LAYER_GROUPS.VECTOR) mPathLayer = PathLayer(mMapView.vtmMap, lineStyle) // addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE) @@ -92,8 +90,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : mPathMarkerBitmap = AndroidBitmap( BitmapFactory.decodeResource( - mContext.resources, - R.mipmap.icon_path_maker + mContext.resources, R.mipmap.icon_path_maker ) ) val markerSymbol = MarkerSymbol(mPathMarkerBitmap, MarkerSymbol.HotspotPlace.CENTER) @@ -110,8 +107,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : if (item === item1) { mMapView.vtmMap.animator().animateTo( GeoPoint( - item.getPoint().latitude, - item.getPoint().longitude + item.getPoint().latitude, item.getPoint().longitude ) ) editIndex = i @@ -139,6 +135,22 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : }) } + fun showLine(geometry: String) { + try { + + } catch (e: Exception) { + Toast.makeText(mContext, "高亮路线失败 ${e.message}", Toast.LENGTH_SHORT).show() + } + val g = GeometryTools.getGeoPoints(geometry) + mDefaultPathLayer.setPoints(g) + mDefaultPathLayer.isEnabled = true + } + + fun removeLine() { + mDefaultPathLayer.clearPath() + mDefaultPathLayer.isEnabled = false + } + fun addDrawLinePoint(geoPoint: GeoPoint): List { if (!bDrawLine) { @@ -210,7 +222,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : } } } - if (editIndex < mPathLayer.getPoints().size) { + if (editIndex < mPathLayer.points.size) { mPathLayer.points.removeAt(editIndex) val list2: MutableList = mutableListOf() list2.addAll(mPathLayer.points) @@ -268,8 +280,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : override fun onMapEvent(e: Event, mapPosition: MapPosition) { - if (!bDrawLine) - return + if (!bDrawLine) return // if (mMapView.centerPixel[1] > mMapView.vtmMap.height / 2) { // val geoPoint = // mMapView.vtmMap.viewport() @@ -287,16 +298,14 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : list.add(mPathMakers[editIndex].geoPoint) list.add( GeoPoint( - mapPosition.latitude, - mapPosition.longitude + mapPosition.latitude, mapPosition.longitude ) ) } else { list.add(mPathMakers[editIndex - 1].geoPoint) list.add( GeoPoint( - mapPosition.latitude, - mapPosition.longitude + mapPosition.latitude, mapPosition.longitude ) ) list.add(mPathMakers[editIndex + 1].geoPoint) @@ -308,8 +317,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : list.add(mPathLayer.points[mPathLayer.points.size - 1]) list.add( GeoPoint( - mapPosition.latitude, - mapPosition.longitude + mapPosition.latitude, mapPosition.longitude ) ) mPathLayerTemp.setPoints(list) @@ -317,8 +325,7 @@ open class LineHandler(context: AppCompatActivity, mapView: NIMapView) : val listDis: MutableList = mutableListOf() listDis.add( GeoPoint( - mapPosition.latitude, - mapPosition.longitude + mapPosition.latitude, mapPosition.longitude ) ) // val distance: Double = diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LocationLayerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LocationLayerHandler.kt index 8865493a..4b18e5b2 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LocationLayerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LocationLayerHandler.kt @@ -65,6 +65,7 @@ class LocationLayerHandler(context: AppCompatActivity, mapView: NIMapView) : Bas //第一次定位成功显示当前位置 if (this.bFirst) { animateToCurrentPosition(16.0) + this.bFirst = false } }