提交代码,修复交通标牌不显示,增加车道、道路边界类型杆状障碍物渲染
@ -65,8 +65,8 @@
|
||||
"table": "OMDB_LINK_NAME",
|
||||
"code": 2011,
|
||||
"name": "道路名",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17,
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 20,
|
||||
"checkLinkId": false,
|
||||
"transformer": [
|
||||
{
|
||||
@ -110,14 +110,54 @@
|
||||
"code": 2019,
|
||||
"name": "常规线限速",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17
|
||||
"zoomMax": 17,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateRight()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateS2EReferenceLine()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateDirectReferenceLine()"
|
||||
}
|
||||
]
|
||||
},
|
||||
"2020": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_COND",
|
||||
"code": 2020,
|
||||
"name": "条件线限速",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17
|
||||
"zoomMax": 17,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateRight()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateS2EReferenceLine()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateDirectReferenceLine()"
|
||||
}
|
||||
]
|
||||
},
|
||||
"2021": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
|
||||
@ -134,7 +174,15 @@
|
||||
"filterData": true,
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 20,
|
||||
"catch": true
|
||||
"catch": true,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "dengfenLineString()"
|
||||
}
|
||||
]
|
||||
},
|
||||
"2090": {
|
||||
"table": "OMDB_LANE_CONSTRUCTION",
|
||||
@ -387,6 +435,18 @@
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateRight()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateS2EReferenceLine()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateDirectReferenceLine()"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -455,7 +455,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
val boundaryType = renderEntity.properties["boundaryType"]
|
||||
if (boundaryType != null) {
|
||||
when (boundaryType.toInt()) {
|
||||
0, 1, 6, 8, 9 -> {
|
||||
0, 1, 7, 8 -> {
|
||||
renderEntity.enable = 0
|
||||
line = bufferedReader.readLine()
|
||||
continue
|
||||
@ -468,7 +468,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
val boundaryType = renderEntity.properties["boundaryType"]
|
||||
if (boundaryType != null) {
|
||||
when (boundaryType.toInt()) {
|
||||
0, 1, 3, 4, 5, 7, 9 -> {
|
||||
0, 1, 2, 7, 8 -> {
|
||||
renderEntity.enable = 0
|
||||
line = bufferedReader.readLine()
|
||||
continue
|
||||
@ -770,8 +770,8 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
renderEntity.properties.remove("linkPid")
|
||||
}
|
||||
|
||||
//去掉暂用控件较大的字段多余属性字段
|
||||
if (renderEntity.properties.containsKey("shapeList")) {
|
||||
//去掉暂用控件较大的字段多余属性字段,保留道路名用于展示详情
|
||||
if (renderEntity.code!=DataCodeEnum.OMDB_LINK_NAME.code&&renderEntity.properties.containsKey("shapeList")) {
|
||||
renderEntity.properties.remove("shapeList")
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,6 @@ class ImportPreProcess {
|
||||
) != null
|
||||
) {
|
||||
// 带有angle字段的数据,也有可能是线,需要判断是否需要根据指定字段判断数据是否为逆向
|
||||
|
||||
var angle = renderEntity?.properties?.get("angle")?.toDouble()!!
|
||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||
angle = ((450 - angle) % 360)
|
||||
@ -226,7 +225,6 @@ class ImportPreProcess {
|
||||
|
||||
// 将这个起终点的线记录在数据中
|
||||
val startEndReference = ReferenceEntity()
|
||||
// startEndReference.renderEntityId = renderEntity.id
|
||||
startEndReference.name = "${renderEntity.name}参考线"
|
||||
startEndReference.table = renderEntity.table
|
||||
startEndReference.code = renderEntity.code
|
||||
@ -239,11 +237,8 @@ class ImportPreProcess {
|
||||
GeometryTools.createLineString(arrayOf<Coordinate>(pointStart, pointEnd)).toString()
|
||||
startEndReference.properties["qi_table"] = renderEntity.table
|
||||
startEndReference.properties["type"] = "s_2_e"
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
startEndReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(startEndReference.properties))
|
||||
renderEntity.referenceEntitys?.add(startEndReference)
|
||||
//listResult.add(startEndReference)
|
||||
//insertData(listResult)
|
||||
renderEntity.referenceEntitys.add(startEndReference)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -306,7 +301,7 @@ class ImportPreProcess {
|
||||
endReference.properties["qi_table"] = renderEntity.table
|
||||
endReference.properties["type"] = "e${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000)>0) "_dec" else "_acc"}"
|
||||
endReference.properties["geometry"] = endReference.geometry
|
||||
renderEntity.referenceEntitys?.add(endReference)
|
||||
renderEntity.referenceEntitys.add(endReference)
|
||||
//listResult.add(endReference)
|
||||
//insertData(listResult)
|
||||
}
|
||||
@ -325,7 +320,6 @@ class ImportPreProcess {
|
||||
|
||||
// 将这个起终点的线记录在数据中
|
||||
val startReference = ReferenceEntity()
|
||||
// startReference.renderEntityId = renderEntity.id
|
||||
startReference.name = "${renderEntity.name}参考点"
|
||||
startReference.code = renderEntity.code
|
||||
startReference.table = renderEntity.table
|
||||
@ -363,7 +357,6 @@ class ImportPreProcess {
|
||||
Log.e("qj", "generateS2EReferencePoint===1")
|
||||
|
||||
val endReference = ReferenceEntity()
|
||||
// endReference.renderEntityId = renderEntity.id
|
||||
endReference.name = "${renderEntity.name}参考点"
|
||||
endReference.code = renderEntity.code
|
||||
endReference.table = renderEntity.table
|
||||
@ -393,10 +386,8 @@ class ImportPreProcess {
|
||||
}
|
||||
endReference.properties["geometry"] = endReference.geometry
|
||||
endReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(endReference.properties))
|
||||
renderEntity.referenceEntitys?.add(endReference)
|
||||
//listResult.add(endReference)
|
||||
renderEntity.referenceEntitys.add(endReference)
|
||||
Log.e("qj", "generateS2EReferencePoint===4")
|
||||
//insertData(listResult)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -407,6 +398,7 @@ class ImportPreProcess {
|
||||
direction: String = "",
|
||||
distance: String = ""
|
||||
) {
|
||||
Log.e("qj", "generateDirectReferenceLine===0==${renderEntity.code}")
|
||||
// 根据数据或angle计算方向对应的角度和偏移量
|
||||
val geometry = renderEntity.wkt
|
||||
var isReverse = false // 是否为逆向
|
||||
@ -473,13 +465,11 @@ class ImportPreProcess {
|
||||
geometry?.coordinate?.y!!
|
||||
) * Math.sin(radian)
|
||||
}
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
|
||||
for (pointStart in pointStartArray) {
|
||||
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
|
||||
|
||||
val angleReference = ReferenceEntity()
|
||||
// angleReference.renderEntityId = renderEntity.id
|
||||
angleReference.name = "${renderEntity.name}参考方向"
|
||||
angleReference.table = renderEntity.table
|
||||
angleReference.code = renderEntity.code
|
||||
@ -493,10 +483,9 @@ class ImportPreProcess {
|
||||
angleReference.properties["qi_table"] = renderEntity.table
|
||||
angleReference.properties["type"] = "angle"
|
||||
angleReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties))
|
||||
renderEntity.referenceEntitys?.add(angleReference)
|
||||
//listResult.add(angleReference)
|
||||
renderEntity.referenceEntitys.add(angleReference)
|
||||
}
|
||||
//insertData(listResult)
|
||||
Log.e("qj", "generateDirectReferenceLine===1")
|
||||
}
|
||||
|
||||
fun addAngleFromGeometry(renderEntity: RenderEntity): String {
|
||||
@ -574,6 +563,8 @@ class ImportPreProcess {
|
||||
renderEntityTemp.zoomMax = renderEntity.zoomMax
|
||||
renderEntityTemp.enable = renderEntity.enable
|
||||
renderEntityTemp.taskId = renderEntity.taskId
|
||||
renderEntityTemp.linkPid = renderEntity.linkPid
|
||||
renderEntity.linkRelation = renderEntity.linkRelation
|
||||
renderEntityTemp.catchEnable = renderEntity.catchEnable
|
||||
var dis = -lateralOffset.toDouble() / 100000000
|
||||
//最小值取10厘米,否正渲染太近无法显示
|
||||
@ -607,6 +598,37 @@ class ImportPreProcess {
|
||||
if (listResult.size > 0) {
|
||||
insertData(listResult)
|
||||
}
|
||||
}else if(boundaryType.toInt() == 9){//根据线型平分为点数据,用于渲染3D标
|
||||
dengfenLineString(renderEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun dengfenLineString(renderEntity: RenderEntity){
|
||||
if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code||renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){
|
||||
val boundaryType = renderEntity.properties["boundaryType"]
|
||||
if (boundaryType != null) {
|
||||
if(boundaryType.toInt()==9){
|
||||
Log.e("qj","杆状物转换开始")
|
||||
val geopointList = GeometryTools.getLineToDengGeoPints(renderEntity.wkt,5.0)
|
||||
geopointList.forEach{
|
||||
val referenceEntity = ReferenceEntity()
|
||||
referenceEntity.name = "${renderEntity.name}线转点坐标"
|
||||
referenceEntity.table = renderEntity.table
|
||||
referenceEntity.code = renderEntity.code
|
||||
referenceEntity.geometry = GeometryTools.createGeometry(it).toString()
|
||||
Log.e("jingo", "几何转换结束")
|
||||
referenceEntity.properties["qi_table"] = renderEntity.table
|
||||
referenceEntity.properties["boundaryType"] = "pole"
|
||||
referenceEntity.zoomMin = renderEntity.zoomMin
|
||||
referenceEntity.zoomMax = renderEntity.zoomMax
|
||||
referenceEntity.taskId = renderEntity.taskId
|
||||
referenceEntity.enable = renderEntity.enable
|
||||
referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
|
||||
renderEntity.referenceEntitys.add(referenceEntity)
|
||||
}
|
||||
Log.e("qj","杆状物转换结束")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -652,11 +674,9 @@ class ImportPreProcess {
|
||||
"assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
|
||||
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
|
||||
referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
|
||||
renderEntity.referenceEntitys?.add(referenceEntity)
|
||||
renderEntity.referenceEntitys.add(referenceEntity)
|
||||
Log.e("qj", "车信===插入车信箭头")
|
||||
//listResult.add(referenceEntity)
|
||||
}
|
||||
//insertData(listResult)
|
||||
}
|
||||
//将主表线转化为单个点,按点要素实现捕捉
|
||||
if (Geometry.TYPENAME_LINESTRING == renderEntity.wkt?.geometryType) {
|
||||
@ -774,7 +794,7 @@ class ImportPreProcess {
|
||||
angleReference.enable = renderEntity.enable
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
angleReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties))
|
||||
renderEntity.referenceEntitys?.add(angleReference)
|
||||
renderEntity.referenceEntitys.add(angleReference)
|
||||
//listResult.add(angleReference)
|
||||
//insertData(listResult)
|
||||
}
|
||||
@ -806,7 +826,7 @@ class ImportPreProcess {
|
||||
intersectionReference.properties["qi_table"] = renderEntity.table
|
||||
intersectionReference.properties["type"] = "node"
|
||||
intersectionReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(intersectionReference.properties))
|
||||
renderEntity.referenceEntitys?.add(intersectionReference)
|
||||
renderEntity.referenceEntitys.add(intersectionReference)
|
||||
//listResult.add(intersectionReference)
|
||||
}
|
||||
//insertData(listResult)
|
||||
@ -992,7 +1012,7 @@ class ImportPreProcess {
|
||||
val code = renderEntity.properties[codeName]
|
||||
dynamicSrcReference.properties["src"] = "${prefix}${code}${suffix}"
|
||||
dynamicSrcReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(dynamicSrcReference.properties))
|
||||
renderEntity.referenceEntitys?.add(dynamicSrcReference)
|
||||
renderEntity.referenceEntitys.add(dynamicSrcReference)
|
||||
//listResult.add(dynamicSrcReference)
|
||||
}
|
||||
//insertData(listResult)
|
||||
|
@ -181,7 +181,7 @@ class RealmOperateHelper() {
|
||||
var nearLast: Double = 99999.99
|
||||
for (link in realmList) {
|
||||
if (polygon.intersects(GeometryTools.createGeometry(link.geometry))) {
|
||||
val near = point.distance(GeometryTools.createGeoPoint(link.geometry))
|
||||
val near = GeometryTools.createGeometry(link.geometry).distance(GeometryTools.createGeometry(point))
|
||||
if (near < nearLast) {
|
||||
nearLast = near
|
||||
linkBean = link
|
||||
@ -302,6 +302,7 @@ class RealmOperateHelper() {
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val queryResult = realmList?.stream()?.filter {
|
||||
if (Constant.MapCatchLine) {
|
||||
Log.e("qj",it.code+"捕捉要素编码"+it.enable+"==="+it.catchEnable)
|
||||
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase()
|
||||
.equals("LINESTRING") || it.wkt?.geometryType?.uppercase().equals("POLYGON")
|
||||
} else {
|
||||
|
@ -127,6 +127,7 @@ class LoginActivity : CheckPermissionsActivity() {
|
||||
private fun initView() {
|
||||
//登录校验,初始化成功
|
||||
viewModel.loginStatus.observe(this, loginObserve)
|
||||
viewModel.lastLoginUserInfo(this)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -87,10 +87,17 @@ class LoginViewModel @Inject constructor(
|
||||
var sharedPreferences: SharedPreferences? = null
|
||||
|
||||
init {
|
||||
loginUser.value = LoginUserBean(userCode = "lixiaoming00427", passWord = "123456")
|
||||
}
|
||||
|
||||
|
||||
fun lastLoginUserInfo(context: Context){
|
||||
sharedPreferences =
|
||||
context.getSharedPreferences("USER_SHAREDPREFERENCES", Context.MODE_PRIVATE)
|
||||
val userNameCache = sharedPreferences?.getString("userName", "lixiaoming00427")
|
||||
val passwordCache = sharedPreferences?.getString("passWord", "123456")
|
||||
loginUser.value = LoginUserBean(userCode = "$userNameCache", passWord = "$passwordCache")
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理注册按钮
|
||||
*/
|
||||
|
@ -22,8 +22,6 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import com.blankj.utilcode.util.ClipboardUtils
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.enums.DataCodeEnum
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.handler.MeasureLayerHandler
|
||||
import com.navinfo.collect.library.utils.DeflaterUtil
|
||||
@ -688,7 +686,7 @@ class MainActivity : BaseActivity() {
|
||||
index = p0.position
|
||||
editText.text = null
|
||||
//清理已绘制线
|
||||
mapController.lineHandler.removeLine()
|
||||
mapController.lineHandler.removeAllLine()
|
||||
mapController.markerHandle.removeMarker("location")
|
||||
when (p0.position) {
|
||||
0 -> editText.hint = "请输入LinkPid例如:12345678"
|
||||
@ -819,35 +817,15 @@ class MainActivity : BaseActivity() {
|
||||
* zoomOut
|
||||
*/
|
||||
fun zoomOutOnclick(view: View) {
|
||||
/* val result = mutableListOf<RenderEntity>()
|
||||
for (i in 0 until 10) {
|
||||
var renderEntity: RenderEntity = RenderEntity()
|
||||
renderEntity.code = "3005"
|
||||
renderEntity.geometry = "POINT(116.2694${i}13016946 40.0844${i}5791644373 0)"
|
||||
result.add(renderEntity)
|
||||
val lineString =
|
||||
"LINESTRING(115.92708317758513 40.42230758745775 0, 115.9272990153405 40.422317981061205 0, 115.92750895192124 40.42232797132084 0, 115.9277199918031 40.422337964543026 0)"
|
||||
val geometry = GeometryTools.createGeometry(lineString)
|
||||
//定位
|
||||
mapController.animationHandler.animationByLatLon(geometry.centroid.y,geometry.centroid.x,500)
|
||||
GeometryTools.getLineToDengGeoPints(geometry, 5.0)?.forEach {
|
||||
mapController.markerHandle.addMarker(it, it.toString())
|
||||
}
|
||||
var renderEntity: RenderEntity = RenderEntity()
|
||||
renderEntity.code = "3006"
|
||||
renderEntity.geometry = "POINT(116.269413016946 40.08445791644373 0)"
|
||||
result.add(renderEntity)
|
||||
|
||||
var renderEntity1: RenderEntity = RenderEntity()
|
||||
renderEntity1.code = "3007"
|
||||
renderEntity1.geometry = "POINT(116.269413016946 40.08445791644373 0)"
|
||||
result.add(renderEntity1)
|
||||
//计算后
|
||||
var index = 0
|
||||
Log.e("qj","====计算开始")
|
||||
var lastRender:RenderEntity = RenderEntity()
|
||||
GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.code,result, 5.0)?.forEach {
|
||||
if(lastRender!=null&&lastRender.geometry!=null&& lastRender.geometry != ""){
|
||||
if(it.geometry!=lastRender.geometry){
|
||||
Log.e("qj","${index++}====计算后"+it.geometry)
|
||||
}
|
||||
}
|
||||
lastRender = it
|
||||
}*/
|
||||
Log.e("qj","====计算结束")
|
||||
mapController.lineHandler.showLine(geometry.toString())
|
||||
mapController.animationHandler.zoomOut()
|
||||
}
|
||||
|
||||
|
@ -1340,9 +1340,9 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
|
||||
if (data.wkt != null) {
|
||||
/* if (data.wkt != null) {
|
||||
mapController.markerHandle.removeMarker("moreInfo")
|
||||
mapController.lineHandler.removeLine()
|
||||
mapController.lineHandler.removeAllLine()
|
||||
when (data.wkt!!.geometryType) {
|
||||
Geometry.TYPENAME_POINT -> {
|
||||
val geoPoint = GeometryTools.createGeoPoint(data.wkt!!.toText())
|
||||
@ -1350,10 +1350,10 @@ class MainViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
Geometry.TYPENAME_LINESTRING -> {
|
||||
mapController.lineHandler.showLine(data.wkt!!.toText())
|
||||
mapController.lineHandler.showSubLine(data.wkt!!.toText())
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
fun sendServerCommand(
|
||||
|
@ -12,6 +12,7 @@ import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResult
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.navigation.NavOptions
|
||||
import androidx.navigation.findNavController
|
||||
@ -75,6 +76,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
//// 设置 RecyclerView 的固定大小,避免在滚动时重新计算视图大小和布局,提高性能
|
||||
@ -178,6 +180,8 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
try {
|
||||
signBean = it.getParcelable("SignBean")
|
||||
autoSave = it.getBoolean("AutoSave")
|
||||
//高亮数据几何
|
||||
signBean?.let { it1 -> viewModel.show(it1.renderEntity) }
|
||||
} catch (_: java.lang.Exception) {
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,9 @@ import io.realm.RealmList
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.locationtech.jts.geom.Geometry
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.core.GeometryBuffer.GeometryType
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.util.*
|
||||
@ -73,6 +75,8 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
|
||||
private val TAG = "点选marker"
|
||||
|
||||
private val ELEMENT_MARKER = "elementMarker"
|
||||
|
||||
/**
|
||||
* 操作结束,销毁页面
|
||||
*/
|
||||
@ -155,8 +159,10 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
mapController.mMapView.removeOnNIMapClickListener(TAG)
|
||||
//移除要素marker
|
||||
mapController.markerHandle.removeMarker(ELEMENT_MARKER)
|
||||
mapController.markerHandle.removeMarker()
|
||||
mapController.lineHandler.removeLine()
|
||||
mapController.lineHandler.removeAllLine()
|
||||
}
|
||||
|
||||
|
||||
@ -204,7 +210,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
} else {
|
||||
liveDataQsRecordBean.value?.run {
|
||||
elementId = bean.renderEntity.code
|
||||
elementId = bean.renderEntity.id
|
||||
linkId = bean.linkId
|
||||
if (linkId.isNotEmpty()) {
|
||||
viewModelScope.launch {
|
||||
@ -495,6 +501,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
* 根据数据id,查询数据
|
||||
*/
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
fun initData(id: String) {
|
||||
Log.e("jingo", "捕捉到的要素 id = $id")
|
||||
viewModelScope.launch(Dispatchers.Main) {
|
||||
@ -545,14 +552,21 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
// 显示语音数据到界面
|
||||
getChatMsgEntityList()
|
||||
realm.close()
|
||||
if (it.elementId == DataCodeEnum.OMDB_LANEINFO.code) {
|
||||
//增加要素高亮
|
||||
if(it.elementId!=null){
|
||||
val realm2 = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
val r = realm2.where(RenderEntity::class.java)
|
||||
.equalTo("table", DataCodeEnum.OMDB_LANEINFO.name)
|
||||
.equalTo("linkPid", it.linkId).findFirst()
|
||||
if (r != null) {
|
||||
renderEntity = realm2.copyFromRealm(r)
|
||||
laneInfoList = SignUtil.getLineInfoIcons(renderEntity!!)
|
||||
val rEntity = realm2.where(RenderEntity::class.java).equalTo("id",it.elementId).findFirst()
|
||||
if(rEntity!=null){
|
||||
show(rEntity!!)
|
||||
}
|
||||
if (it.classCode == DataCodeEnum.OMDB_LANEINFO.code) {
|
||||
val r = realm2.where(RenderEntity::class.java)
|
||||
.equalTo("table", DataCodeEnum.OMDB_LANEINFO.name)
|
||||
.equalTo("linkPid", it.linkId).findFirst()
|
||||
if (r != null) {
|
||||
renderEntity = realm2.copyFromRealm(r)
|
||||
laneInfoList = SignUtil.getLineInfoIcons(renderEntity!!)
|
||||
}
|
||||
}
|
||||
realm2.close()
|
||||
}
|
||||
@ -561,8 +575,27 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
liveDataToastMessage.postValue("数据读取失败")
|
||||
realm.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun show(renderEntity: RenderEntity) {
|
||||
if (renderEntity != null) {
|
||||
if (renderEntity.wkt != null) {
|
||||
mapController.markerHandle.removeMarker(ELEMENT_MARKER)
|
||||
mapController.lineHandler.removeElementLine()
|
||||
when (renderEntity.wkt!!.geometryType) {
|
||||
Geometry.TYPENAME_POINT -> {
|
||||
val geoPoint = GeometryTools.createGeoPoint(renderEntity.wkt!!.toText())
|
||||
mapController.markerHandle.addMarker(geoPoint, ELEMENT_MARKER)
|
||||
}
|
||||
Geometry.TYPENAME_LINESTRING -> {
|
||||
mapController.lineHandler.showElementLine(renderEntity.wkt!!.toText())
|
||||
}
|
||||
Geometry.TYPENAME_POLYGON -> {
|
||||
mapController.lineHandler.showElementLine(renderEntity.wkt!!.toText())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -444,7 +444,7 @@ class TaskViewModel @Inject constructor(
|
||||
|
||||
override fun onCleared() {
|
||||
mapController.mMapView.removeOnNIMapClickListener(TAG)
|
||||
mapController.lineHandler.removeLine()
|
||||
mapController.lineHandler.removeAllLine()
|
||||
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
|
||||
super.onCleared()
|
||||
}
|
||||
|
@ -1858,7 +1858,7 @@ class SignUtil {
|
||||
"3" -> "三角形"
|
||||
"4" -> "圆形"
|
||||
"5" -> "菱形"
|
||||
"6" -> "到三角形"
|
||||
"6" -> "倒三角形"
|
||||
"7" -> "正方形"
|
||||
"8" -> "八角形"
|
||||
else -> ""
|
||||
|
@ -1615,24 +1615,29 @@
|
||||
src="assets:omdb/icon_4023_0.svg" symbol-height="56" symbol-width="56"></symbol>
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<!-- 道路边界类型 -->
|
||||
<m v="OMDB_RDBOUND_BOUNDARYTYPE">
|
||||
<outline-layer id="boundaryType" stroke="#8e44ad" width="0.1" />
|
||||
<!--护栏-->
|
||||
<m k="boundaryType" v="4">
|
||||
<line stroke="#FFBC6E" use="boundaryType" width="0.1"/>
|
||||
<symbol repeat-gap="12" repeat="true" repeat-start="0" src="assets:omdb/icon_2013_4.svg" symbol-width="16" symbol-height="46"></symbol>
|
||||
<symbol repeat="true" repeat-gap="12" gland="true" repeat-start="0.01" src="assets:omdb/icon_2013_4.svg" symbol-width="16" symbol-height="36"></symbol>
|
||||
</m>
|
||||
<!--路牙-->
|
||||
<m k="boundaryType" v="3">
|
||||
<symbol repeat="true" repeat-gap="10" repeat-start="0" src="assets:omdb/icon_2013_3.svg" symbol-width="16" symbol-height="10"></symbol>
|
||||
<symbol repeat="true" repeat-gap="12" gland="true" repeat-start="0.01" src="assets:omdb/icon_2013_3.svg" symbol-width="16" symbol-height="10"></symbol>
|
||||
</m>
|
||||
<m k="boundaryType" v="2|6">
|
||||
<line stroke="#ffffff" use="boundaryType" width="0.1"/>
|
||||
<!--墙-->
|
||||
<m k="boundaryType" v="5">
|
||||
<symbol repeat="true" gland="true" repeat-gap="12" repeat-start="0.01" src="assets:omdb/icon_2013_3.svg" symbol-width="24" symbol-height="12"></symbol>
|
||||
</m>
|
||||
<m k="boundaryType" v="8">
|
||||
<line stroke="#FFBC6E" use="boundaryType" width="0.1"/>
|
||||
<symbol repeat-gap="12" repeat="true" repeat-start="0" src="assets:omdb/icon_2083_8.svg" symbol-width="24" symbol-height="32"></symbol>
|
||||
<!--铺设路面边缘-->
|
||||
<m k="boundaryType" v="6">
|
||||
<line stroke="#8a8a8a" use="boundaryType"/>
|
||||
</m>
|
||||
<!--杆状障碍物-->
|
||||
<m k="boundaryType" v="pole">
|
||||
<symbol src="assets:omdb/icon_pole_barrier.svg" gland="true"></symbol>
|
||||
</m>
|
||||
</m>
|
||||
|
||||
@ -1643,14 +1648,25 @@
|
||||
|
||||
<!--护栏-->
|
||||
<m k="boundaryType" v="4">
|
||||
<line stroke="#FFBC6E" use="boundaryType" width="0.1"/>
|
||||
<symbol repeat-gap="12" repeat="true" repeat-start="0" src="assets:omdb/icon_2013_4.svg" symbol-width="16" symbol-height="46"></symbol>
|
||||
<symbol repeat="true" repeat-gap="12" gland="true" repeat-start="0.01" src="assets:omdb/icon_2013_4.svg" symbol-width="16" symbol-height="36"></symbol>
|
||||
</m>
|
||||
<!--路牙-->
|
||||
<m k="boundaryType" v="3">
|
||||
<symbol repeat="true" repeat-gap="10" repeat-start="0" src="assets:omdb/icon_2013_3.svg" symbol-width="16" symbol-height="10"></symbol>
|
||||
<symbol repeat="true" gland="true" repeat-gap="12" repeat-start="0.01" src="assets:omdb/icon_2013_3.svg" symbol-width="16" symbol-height="10"></symbol>
|
||||
</m>
|
||||
<!--墙-->
|
||||
<m k="boundaryType" v="5">
|
||||
<symbol repeat="true" gland="true" repeat-gap="12" repeat-start="0.01" src="assets:omdb/icon_2013_3.svg" symbol-width="24" symbol-height="12"></symbol>
|
||||
</m>
|
||||
<!--铺设路面边缘-->
|
||||
<m k="boundaryType" v="6">
|
||||
<line stroke="#8a8a8a" use="boundaryType"/>
|
||||
</m>
|
||||
<!--杆状障碍物-->
|
||||
<m k="boundaryType" v="pole">
|
||||
<line stroke="#ffffff" use="boundaryType"/>
|
||||
<symbol src="assets:omdb/icon_pole_barrier.svg" gland="true"></symbol>
|
||||
</m>
|
||||
|
||||
<m k="boundaryType" v="2">
|
||||
<!--标线-->
|
||||
<m k="markMaterial" v="2|3">
|
||||
@ -1894,14 +1910,19 @@
|
||||
<m k="speedFlag" v="0">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_0.svg" symbol-height="38"
|
||||
symbol-width="20"></symbol>
|
||||
<symbol src="assets:omdb/icon_4002_0.svg" symbol-width="24"></symbol>
|
||||
</m>
|
||||
<m k="speedFlag" v="1">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="10" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_1.svg" symbol-height="38"
|
||||
symbol-width="20"></symbol>
|
||||
<symbol src="assets:omdb/icon_4002_1.svg" symbol-width="24"></symbol>
|
||||
</m>
|
||||
<m k="type" v="angle">
|
||||
<symbol repeat="false" repeat-gap="2000" repeat-start="0" rotate="true" symbol-width="24"
|
||||
src="assets:omdb/icon_arrow_right.svg" ></symbol>
|
||||
</m>
|
||||
<m k="type" v="s_2_e">
|
||||
<line use="s2e" />
|
||||
</m>
|
||||
</m>
|
||||
|
||||
@ -1910,14 +1931,19 @@
|
||||
<m k="speedFlag" v="0">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_0.svg" symbol-height="38"
|
||||
symbol-width="20"></symbol>
|
||||
<symbol src="assets:omdb/icon_4003_0.svg" symbol-width="24"></symbol>
|
||||
</m>
|
||||
<m k="speedFlag" v="1">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_1.svg" symbol-height="38"
|
||||
symbol-width="20"></symbol>
|
||||
<symbol src="assets:omdb/icon_4003_1.svg" symbol-width="24"></symbol>
|
||||
</m>
|
||||
<m k="type" v="angle">
|
||||
<symbol repeat="false" repeat-gap="2000" repeat-start="0" rotate="true" symbol-width="24"
|
||||
src="assets:omdb/icon_arrow_right.svg" ></symbol>
|
||||
</m>
|
||||
<m k="type" v="s_2_e">
|
||||
<line use="s2e" />
|
||||
</m>
|
||||
</m>
|
||||
|
||||
|
Before Width: | Height: | Size: 683 KiB After Width: | Height: | Size: 777 KiB |
@ -1 +1,9 @@
|
||||
<?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>
|
||||
<?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>
|
Before Width: | Height: | Size: 900 B After Width: | Height: | Size: 935 B |
@ -1 +1,18 @@
|
||||
<?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="1695778478511" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11568" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M773.504 615.189333S771.157333 597.333333 746.688 597.333333h-79.338667c17.024 56.981333 31.936 109.546667 31.936 112.618667 0 50.922667-72.554667 72.384-190.229333 72.384-117.653333 0-184.554667-20.053333-184.554667-70.954667 0-3.562667 21.290667-57.429333 38.208-114.048h-86.677333c-17.194667 0-19.989333 15.978667-19.989333 15.978667L174.058667 874.368 188.053333 896h653.909334l8.021333-21.632-76.48-259.178667z" fill="#e54031" p-id="11569" data-spm-anchor-id="a313x.search_index.0.i15.29a03a81xPIsNv" class="selected"></path><path d="M512.021333 128c-21.952 0-39.765333 3.818667-39.765333 8.490667-10.496 31.637333-173.269333 557.717333-173.269333 571.178666 0 50.944 95.381333 81.642667 213.013333 81.642667s213.034667-30.698667 213.034667-81.642667c0-11.712-162.432-539.050667-173.269334-571.178666 0.021333-4.672-17.770667-8.490667-39.744-8.490667z" fill="#ffffff" p-id="11570" data-spm-anchor-id="a313x.search_index.0.i13.29a03a81xPIsNv" class=""></path><path d="M708.181333 649.536C683.349333 687.616 604.608 725.333333 512.981333 725.333333c-92.586667 0-173.994667-36.181333-197.994666-74.88-10.645333 31.637333-19.029333 56.469333-19.029334 69.973334 0 50.901333 96.704 90.218667 216.064 90.218666s216.128-39.338667 216.128-90.218666c0-11.690667-8.938667-38.72-19.968-70.890667zM669.589333 518.698667l-44.245333-144.938667s-39.616 31.552-113.301333 31.552c-73.664 0-113.408-31.552-113.408-31.552l-44.394667 145.194667S398.357333 576 512.042667 576c114.624 0 157.546667-57.301333 157.546666-57.301333zM581.141333 230.592l-29.354666-94.08s-1.770667-8.490667-39.765334-8.490667c-39.338667 0-39.765333 8.490667-39.765333 8.490667l-29.354667 94.016S461.781333 256 512 256c50.24 0 69.141333-25.408 69.141333-25.408z" fill="#e54031" p-id="11571" data-spm-anchor-id="a313x.search_index.0.i12.29a03a81xPIsNv" class="selected"></path></svg>
|
||||
<?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="1695778478511" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="11568" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="64" height="64">
|
||||
<path
|
||||
d="M773.504 615.189333S771.157333 597.333333 746.688 597.333333h-79.338667c17.024 56.981333 31.936 109.546667 31.936 112.618667 0 50.922667-72.554667 72.384-190.229333 72.384-117.653333 0-184.554667-20.053333-184.554667-70.954667 0-3.562667 21.290667-57.429333 38.208-114.048h-86.677333c-17.194667 0-19.989333 15.978667-19.989333 15.978667L174.058667 874.368 188.053333 896h653.909334l8.021333-21.632-76.48-259.178667z"
|
||||
fill="#e54031" p-id="11569" data-spm-anchor-id="a313x.search_index.0.i15.29a03a81xPIsNv"
|
||||
class="selected"></path>
|
||||
<path
|
||||
d="M512.021333 128c-21.952 0-39.765333 3.818667-39.765333 8.490667-10.496 31.637333-173.269333 557.717333-173.269333 571.178666 0 50.944 95.381333 81.642667 213.013333 81.642667s213.034667-30.698667 213.034667-81.642667c0-11.712-162.432-539.050667-173.269334-571.178666 0.021333-4.672-17.770667-8.490667-39.744-8.490667z"
|
||||
fill="#ffffff" p-id="11570" data-spm-anchor-id="a313x.search_index.0.i13.29a03a81xPIsNv"
|
||||
class=""></path>
|
||||
<path
|
||||
d="M708.181333 649.536C683.349333 687.616 604.608 725.333333 512.981333 725.333333c-92.586667 0-173.994667-36.181333-197.994666-74.88-10.645333 31.637333-19.029333 56.469333-19.029334 69.973334 0 50.901333 96.704 90.218667 216.064 90.218666s216.128-39.338667 216.128-90.218666c0-11.690667-8.938667-38.72-19.968-70.890667zM669.589333 518.698667l-44.245333-144.938667s-39.616 31.552-113.301333 31.552c-73.664 0-113.408-31.552-113.408-31.552l-44.394667 145.194667S398.357333 576 512.042667 576c114.624 0 157.546667-57.301333 157.546666-57.301333zM581.141333 230.592l-29.354666-94.08s-1.770667-8.490667-39.765334-8.490667c-39.338667 0-39.765333 8.490667-39.765333 8.490667l-29.354667 94.016S461.781333 256 512 256c50.24 0 69.141333-25.408 69.141333-25.408z"
|
||||
fill="#e54031" p-id="11571" data-spm-anchor-id="a313x.search_index.0.i12.29a03a81xPIsNv"
|
||||
class="selected"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.2 KiB |
@ -1 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="69.7" height="136" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 69.7 136"><defs><radialGradient id="d" cx="16.6" cy="167.7" fx="16.6" fy="167.7" r="1.3" gradientTransform="translate(-4555.9 6707) rotate(38.9) scale(76 -48) skewX(-8.4)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b5b4b4"/><stop offset=".7" stop-color="#6e6c6c"/><stop offset="1" stop-color="#2f2f2f"/></radialGradient><radialGradient id="e" cx="16.4" cy="167.9" fx="16.4" fy="167.9" r=".5" gradientTransform="translate(-867.4 9288.4) scale(54.9 -54.9)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e75545"/><stop offset=".8" stop-color="#c4483b"/><stop offset="1" stop-color="#983b31"/></radialGradient></defs><g id="c"><rect x="0" width="69.7" height="136" style="fill:none; stroke-width:0px;"/><ellipse cx="34.8" cy="123.5" rx="24.2" ry="8.5" style="fill:#4d4d4d; isolation:isolate; opacity:.3; stroke-width:0px;"/><ellipse cx="34.8" cy="123.5" rx="8.5" ry="3.3" style="fill:#363333; isolation:isolate; opacity:.7; stroke-width:0px;"/><path d="m23,104.9c-.5-.5-1-1-1.5-1.5C8.2,97.4-.2,84.2,0,69.7,0,49.6,15.6,33.3,34.8,33.3s34.8,16.3,34.8,36.4-9,28.3-21.7,33.7c-.4.4-.8.9-1.2,1.4-4.7,5.6-8.6,11.9-11.5,18.6,0,0-5-11.2-12.4-18.6Z" style="fill:url(#d); stroke-width:0px;"/><circle cx="34.5" cy="68.4" r="27.5" style="fill:url(#e); stroke-width:0px;"/><circle cx="34.8" cy="68" r="28" style="fill:#fff; stroke-width:0px;"/><circle cx="34.8" cy="68" r="26.5" style="fill:none; stroke:#db4646; stroke-width:3px;"/><circle cx="34.8" cy="68" r="28" style="fill:#fff; stroke-width:0px;"/><circle cx="34.8" cy="68" r="26.5" style="fill:none; stroke:#2f2f2f; stroke-width:3px;"/><line x1="11" y1="79.4" x2="44.8" y2="45.3" style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;"/><line x1="15.8" y1="85.9" x2="52.3" y2="49.5" style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;"/><path d="m22.8,91.7l18.7-18.7,16.5-16.5" style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;"/></g></svg>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="69.7" height="136"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 69.7 136">
|
||||
<defs>
|
||||
<radialGradient id="d" cx="16.6" cy="167.7" fx="16.6" fy="167.7" r="1.3"
|
||||
gradientTransform="translate(-4555.9 6707) rotate(38.9) scale(76 -48) skewX(-8.4)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#b5b4b4" />
|
||||
<stop offset=".7" stop-color="#6e6c6c" />
|
||||
<stop offset="1" stop-color="#2f2f2f" />
|
||||
</radialGradient>
|
||||
<radialGradient id="e" cx="16.4" cy="167.9" fx="16.4" fy="167.9" r=".5"
|
||||
gradientTransform="translate(-867.4 9288.4) scale(54.9 -54.9)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#e75545" />
|
||||
<stop offset=".8" stop-color="#c4483b" />
|
||||
<stop offset="1" stop-color="#983b31" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g id="c">
|
||||
<rect x="0" width="69.7" height="136" style="fill:none; stroke-width:0px;" />
|
||||
<ellipse cx="34.8" cy="123.5" rx="24.2" ry="8.5"
|
||||
style="fill:#4d4d4d; isolation:isolate; opacity:.3; stroke-width:0px;" />
|
||||
<ellipse cx="34.8" cy="123.5" rx="8.5" ry="3.3"
|
||||
style="fill:#363333; isolation:isolate; opacity:.7; stroke-width:0px;" />
|
||||
<path
|
||||
d="m23,104.9c-.5-.5-1-1-1.5-1.5C8.2,97.4-.2,84.2,0,69.7,0,49.6,15.6,33.3,34.8,33.3s34.8,16.3,34.8,36.4-9,28.3-21.7,33.7c-.4.4-.8.9-1.2,1.4-4.7,5.6-8.6,11.9-11.5,18.6,0,0-5-11.2-12.4-18.6Z"
|
||||
style="fill:url(#d); stroke-width:0px;" />
|
||||
<circle cx="34.5" cy="68.4" r="27.5" style="fill:url(#e); stroke-width:0px;" />
|
||||
<circle cx="34.8" cy="68" r="28" style="fill:#fff; stroke-width:0px;" />
|
||||
<circle cx="34.8" cy="68" r="26.5" style="fill:none; stroke:#db4646; stroke-width:3px;" />
|
||||
<circle cx="34.8" cy="68" r="28" style="fill:#fff; stroke-width:0px;" />
|
||||
<circle cx="34.8" cy="68" r="26.5" style="fill:none; stroke:#2f2f2f; stroke-width:3px;" />
|
||||
<line x1="11" y1="79.4" x2="44.8" y2="45.3"
|
||||
style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;" />
|
||||
<line x1="15.8" y1="85.9" x2="52.3" y2="49.5"
|
||||
style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;" />
|
||||
<path d="m22.8,91.7l18.7-18.7,16.5-16.5"
|
||||
style="fill:none; stroke:#2f2f2f; stroke-linecap:round; stroke-width:2px;" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
collect-library/src/main/assets/omdb/icon_5005_0.png
Normal file
After Width: | Height: | Size: 206 B |
92
collect-library/src/main/assets/omdb/icon_pole_barrier.svg
Normal file
@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 28 124">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #aa211a;
|
||||
mix-blend-mode: multiply;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: none;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.cls-10 {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: url(#_铃琨眄沭噤桢眚_3);
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: #721715;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
fill: #d24f00;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
fill: #dd2824;
|
||||
}
|
||||
|
||||
.cls-7 {
|
||||
fill: #bc1919;
|
||||
}
|
||||
|
||||
.cls-8 {
|
||||
fill: #ffe2d6;
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
fill: #ff4545;
|
||||
}
|
||||
</style>
|
||||
<linearGradient id="_铃琨眄沭噤桢眚_3" data-name="铃琨眄沭噤桢眚 3" x1="-3198.91" y1="65.71" x2="-3176.55" y2="65.71" gradientTransform="translate(-3173.67) rotate(-180) scale(1 -1)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#d87a1e"/>
|
||||
<stop offset=".21" stop-color="#d87a1e"/>
|
||||
<stop offset=".21" stop-color="#c4660a"/>
|
||||
<stop offset=".79" stop-color="#9f3e00"/>
|
||||
<stop offset=".79" stop-color="#913300"/>
|
||||
<stop offset="1" stop-color="#9d3f00"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g class="cls-10">
|
||||
<g id="_图层_2" data-name="图层 2">
|
||||
<g id="_图层_1-2" data-name="图层 1">
|
||||
<rect class="cls-2" width="28" height="124"/>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-3" d="m2.88,64.12v-1.9l22.36-.58v1.32c-.02,1.74-1.12,3.48-3.3,4.81-4.38,2.67-11.46,2.69-15.81.03-2.18-1.33-3.27-3.09-3.25-4.84v1.16Z"/>
|
||||
<path class="cls-6" d="m6.13,67.06c4.35,2.66,11.43,2.64,15.81-.03,4.38-2.67,4.4-7,.05-9.66-4.35-2.66-11.43-2.64-15.81.03-4.38,2.67-4.4,7-.05,9.66Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-5" d="m7.52,54.02l3.57-32.53-3.62,32c0,.18.02.35.06.53Z"/>
|
||||
<path class="cls-5" d="m6.99,58.87c-.04-.09-.07-.19-.1-.28l-.42,3.75s.08.09.13.14l.39-3.6Z"/>
|
||||
<path class="cls-1" d="m10.41,21.64s-4.45,38.19-4.45,38.52c0,.8.1,1.33.3,1.97,0,0,.07.08.19.21l.42-3.75.58-5.09,3.62-32-.68.15Z"/>
|
||||
<path class="cls-6" d="m14.8,62.49l-.08-4.63-.63-35.83h-1.41l-1.63,35.39-.21,4.61-.14,3.13c1.2.47,2.6.78,4.17.7l-.06-3.37Z"/>
|
||||
<path class="cls-7" d="m11.09,21.49l-3.57,32.53-.53,4.85-.39,3.6c.61.61,2.04,1.9,4.09,2.71l.14-3.13.21-4.61,1.63-35.39-1.59-.55Z"/>
|
||||
<path class="cls-5" d="m7.52,54.02c-.03-.18-.05-.35-.06-.53l-.58,5.09c.03.09.06.19.1.28l.53-4.85Z"/>
|
||||
<path class="cls-7" d="m17.6,21.86l-.77.18,3.66,31.62.57,4.92.53,4.59c.31-.97.43-2.01.43-3.01l-4.42-38.29Z"/>
|
||||
<path class="cls-9" d="m21.06,58.58l-.57-4.92-3.66-31.62h-2.75l.63,35.83.08,4.63.06,3.37c2-.11,4.28-.85,6.73-2.7l-.53-4.59Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-4" d="m16.56,23.23c-1.4.86-3.69.85-5.1,0-1.41-.86-1.42-2.26-.02-3.11,1.4-.86,3.69-.85,5.1,0,1.41.86,1.42,2.26.02,3.11Z"/>
|
||||
<path class="cls-4" d="m16.3,23.12c-1.34.82-3.52.81-4.86,0-1.35-.82-1.35-2.15-.02-2.97,1.34-.82,3.52-.81,4.86,0,1.35.82,1.35,2.15.02,2.97Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-8" d="m19.24,52.34c-3.2,2.75-8.04,2.48-10.81-.59-.59-.66-1.04-1.39-1.35-2.16-.26,2.29-.5,4.35-.69,5.99.33,1.07.89,2.1,1.71,3,3,3.33,8.17,3.76,11.55.98.91-.75,1.59-1.66,2.04-2.64l-.77-6.65c-.42.76-.98,1.47-1.68,2.08Z"/>
|
||||
<path class="cls-8" d="m19.34,47.54c.43-.36.8-.76,1.12-1.19l-.75-6.53c-.23.27-.48.54-.75.78-3.02,2.64-7.59,2.39-10.21-.57-.18-.2-.34-.41-.49-.63-.23,2.01-.47,4.04-.69,5.99.25.42.54.83.88,1.21,2.83,3.2,7.72,3.62,10.91.94Z"/>
|
||||
<path class="cls-8" d="m19.18,35.21l-.68-5.9c-2.74,1.8-6.51,1.69-9.05-.22-.2,1.69-.41,3.56-.64,5.51,2.82,2.45,7.32,2.73,10.37.6Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
@ -24,7 +24,6 @@ import java.util.*
|
||||
open class ReferenceEntity() : RealmObject(), Parcelable {
|
||||
@PrimaryKey
|
||||
var id: String = UUID.randomUUID().toString() // id
|
||||
@Ignore
|
||||
lateinit var name: String //要素名
|
||||
lateinit var table: String //要素表名
|
||||
var propertiesDb: String = ""
|
||||
|
@ -40,6 +40,24 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(
|
||||
layer
|
||||
}
|
||||
|
||||
/**
|
||||
* 高亮线图层,同时只高亮一条线,如要素本身线型
|
||||
*/
|
||||
private val mDataGeometryPathLayer: PathLayer by lazy {
|
||||
//高亮线绘制线 样式
|
||||
val defaultLineStyle = Style.builder()
|
||||
.stippleColor(context.resources.getColor(R.color.teal_200))
|
||||
.strokeWidth(5f)
|
||||
.fillColor(context.resources.getColor(R.color.draw_line_blue2_color))
|
||||
.fillAlpha(0.3f)
|
||||
.strokeColor(context.resources.getColor(R.color.draw_line_blue2_color))
|
||||
.fixed(true).build()
|
||||
|
||||
val layer = PathLayer(mMapView.vtmMap, defaultLineStyle)
|
||||
addLayer(layer, NIMapView.LAYER_GROUPS.OPERATE_LINE)
|
||||
layer
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 路口高亮
|
||||
@ -139,6 +157,42 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 高亮一条线
|
||||
*/
|
||||
fun showElementLine(list:List<GeoPoint>) {
|
||||
try {
|
||||
mDataGeometryPathLayer.clearPath()
|
||||
mDataGeometryPathLayer.setPoints(list)
|
||||
mDataGeometryPathLayer.isEnabled = true
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(mContext, "高亮路线失败 ${e.message}", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 高亮一条线
|
||||
*/
|
||||
fun showElementLine(geometry: String) {
|
||||
try {
|
||||
mDataGeometryPathLayer.clearPath()
|
||||
mDataGeometryPathLayer.setPoints(GeometryTools.getGeoPoints(geometry))
|
||||
mDataGeometryPathLayer.isEnabled = true
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(mContext, "高亮路线失败 ${e.message}", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消高亮线
|
||||
*/
|
||||
fun removeElementLine() {
|
||||
mDataGeometryPathLayer.clearPath()
|
||||
mDataGeometryPathLayer.isEnabled = false
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消高亮线
|
||||
@ -148,6 +202,14 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(
|
||||
mDefaultPathLayer.isEnabled = false
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消高亮线
|
||||
*/
|
||||
fun removeAllLine() {
|
||||
removeLine()
|
||||
removeElementLine()
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除所有任务高亮线
|
||||
*/
|
||||
|
@ -93,6 +93,26 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
|
||||
layer
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认marker图层
|
||||
*/
|
||||
private val mDataMarkerLayer: ItemizedLayer by lazy {
|
||||
//新增marker图标样式
|
||||
val mDefaultBitmap =
|
||||
AndroidBitmap(BitmapFactory.decodeResource(context.resources, R.mipmap.icon_path_maker))
|
||||
mDefaultBitmap.scaleTo(150, 150)
|
||||
val markerSymbol = MarkerSymbol(
|
||||
mDefaultBitmap,
|
||||
MarkerSymbol.HotspotPlace.CENTER
|
||||
)
|
||||
val layer = ItemizedLayer(
|
||||
mapView.vtmMap,
|
||||
markerSymbol,
|
||||
)
|
||||
addLayer(layer, NIMapView.LAYER_GROUPS.OPERATE_MARKER)
|
||||
layer
|
||||
}
|
||||
|
||||
private val niLocationBitmap: Bitmap by lazy {
|
||||
AndroidBitmap(
|
||||
BitmapFactory.decodeResource(
|
||||
|
@ -75,11 +75,10 @@ public class OMDBDataDecoder extends TileDecoder {
|
||||
listResult.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() {
|
||||
@Override
|
||||
public void accept(RenderEntity renderEntity) {
|
||||
|
||||
if (!(mapLevel < renderEntity.getZoomMin() || mapLevel > renderEntity.getZoomMax())) {
|
||||
if (renderEntity.getCode().equals(DataCodeEnum.OMDB_TRAFFIC_SIGN.getCode())) {
|
||||
list.add(renderEntity);
|
||||
}else if (renderEntity.getCode().equals(DataCodeEnum.OMDB_TRAFFICLIGHT.getCode())) {
|
||||
} else if (renderEntity.getCode().equals(DataCodeEnum.OMDB_TRAFFICLIGHT.getCode())) {
|
||||
traffList.add(renderEntity);
|
||||
} else {
|
||||
Map<String, Object> properties = new HashMap<>(renderEntity.getProperties().size());
|
||||
@ -93,8 +92,8 @@ public class OMDBDataDecoder extends TileDecoder {
|
||||
});
|
||||
//增加交通标牌聚合显示
|
||||
List<RenderEntity> list1 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.getCode(), list, 5.0);
|
||||
if(list1!=null&&list1.size()>0){
|
||||
Log.e("qj","聚合交通标牌转换开始"+list.size());
|
||||
if (list1 != null && list1.size() > 0) {
|
||||
Log.e("qj", "聚合交通标牌转换开始" + list.size());
|
||||
list1.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() {
|
||||
@Override
|
||||
public void accept(RenderEntity renderEntity) {
|
||||
@ -103,12 +102,12 @@ public class OMDBDataDecoder extends TileDecoder {
|
||||
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);
|
||||
}
|
||||
});
|
||||
Log.e("qj","聚合交通标牌转换结束"+list1.size());
|
||||
Log.e("qj", "聚合交通标牌转换结束" + list1.size());
|
||||
}
|
||||
//增加交通标牌聚合显示
|
||||
List<RenderEntity> list2 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFICLIGHT.getCode(), traffList, 5.0);
|
||||
if(list2!=null&&list2.size()>0){
|
||||
Log.e("qj","聚合红绿灯转换开始"+traffList.size());
|
||||
if (list2 != null && list2.size() > 0) {
|
||||
Log.e("qj", "聚合红绿灯转换开始" + traffList.size());
|
||||
list2.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() {
|
||||
@Override
|
||||
public void accept(RenderEntity renderEntity) {
|
||||
@ -117,7 +116,7 @@ public class OMDBDataDecoder extends TileDecoder {
|
||||
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);
|
||||
}
|
||||
});
|
||||
Log.e("qj","聚合红绿灯转换结束"+list2.size());
|
||||
Log.e("qj", "聚合红绿灯转换结束" + list2.size());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -127,7 +127,6 @@ public class OMDBTileDataSource implements ITileDataSource {
|
||||
for (String type : Constant.HAD_LAYER_INVISIABLE_ARRAY) {
|
||||
realmQuery.notEqualTo("table", type);
|
||||
}
|
||||
realmQuery.notEqualTo("table", "OMDB_TRAFFIC_SIGN");
|
||||
realmQuery.endGroup();
|
||||
}
|
||||
long time = System.currentTimeMillis();
|
||||
|
@ -35,7 +35,7 @@ import java.util.List;
|
||||
* @author qj 几何工具类
|
||||
*/
|
||||
public class GeometryTools {
|
||||
|
||||
private final static String TAG = "GeometryTools";
|
||||
static final double PI = 3.14159216;
|
||||
private static volatile GeometryTools mInstance;
|
||||
static double earthRadiusMeters = 6371000.0;
|
||||
@ -1647,4 +1647,89 @@ public class GeometryTools {
|
||||
|
||||
return listReslut;
|
||||
}
|
||||
|
||||
/**
|
||||
* 线几何按距离等分点
|
||||
*/
|
||||
public static synchronized List<GeoPoint> getLineToDengGeoPints(Geometry lineGeometry, double dengDisance) {
|
||||
List<GeoPoint> geoPointList = new ArrayList<>();
|
||||
//获取线几何点
|
||||
List<GeoPoint> list = getGeoPoints(lineGeometry);
|
||||
|
||||
if(list!=null&&list.size()>=2) {
|
||||
|
||||
for (int i = 0; i < list.size() - 1; i++) {
|
||||
|
||||
GeoPoint geoPoint1 = list.get(i);
|
||||
|
||||
GeoPoint geoPoint2 = list.get(i + 1);
|
||||
|
||||
double disance = getDistance(geoPoint1.getLatitude(), geoPoint1.getLongitude(), geoPoint2.getLatitude(), geoPoint2.getLongitude());
|
||||
|
||||
//只有第一个点进行添加,后面数据过滤掉
|
||||
if(i==0){
|
||||
geoPointList.add(geoPoint1);
|
||||
}
|
||||
|
||||
geoPointList.add(geoPoint2);
|
||||
|
||||
if (disance > dengDisance) {
|
||||
//向上取整
|
||||
int num = (int) Math.ceil(disance / dengDisance);
|
||||
|
||||
//计算等分数据
|
||||
List<GeoPoint> dengList = getDengGeoPoint(geoPoint1, geoPoint2, num);
|
||||
|
||||
if (dengList != null && dengList.size() > 0) {
|
||||
|
||||
geoPointList.addAll(dengList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return geoPointList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算两点之间等距的经纬度
|
||||
*/
|
||||
private static List<GeoPoint> getDengGeoPoint(GeoPoint geoPoint1, GeoPoint geoPoint2, int number) {
|
||||
|
||||
double aaa, bbb, ccc = 0, ddd = 0;
|
||||
|
||||
List<GeoPoint> geoPointList = new ArrayList<>();
|
||||
|
||||
for (int i = 1; i < number + 1; i++) {
|
||||
if (geoPoint1.getLongitude() > geoPoint2.getLongitude() && geoPoint1.getLatitude() > geoPoint2.getLatitude()) {
|
||||
aaa = (geoPoint1.getLongitude() - geoPoint2.getLongitude()) / (number + 1);
|
||||
ccc = geoPoint2.getLongitude() + aaa * (i);
|
||||
bbb = (geoPoint1.getLatitude() - geoPoint2.getLatitude()) / (number + 1);
|
||||
ddd = bbb * (i) + geoPoint2.getLatitude();
|
||||
Log.e(TAG, "getLatLng:a " + ddd + " " + ccc);
|
||||
} else if (geoPoint1.getLongitude() < geoPoint2.getLongitude() && geoPoint1.getLatitude() < geoPoint2.getLatitude()) {
|
||||
aaa = (geoPoint2.getLongitude() - geoPoint1.getLongitude()) / (number + 1);
|
||||
ccc = geoPoint1.getLongitude() + aaa * (i);
|
||||
bbb = (geoPoint2.getLatitude() - geoPoint1.getLatitude()) / (number + 1);
|
||||
ddd = geoPoint1.getLatitude() + bbb * i;
|
||||
Log.e(TAG, "getLatLng:b " + ddd + " " + ccc);
|
||||
} else if (geoPoint1.getLongitude() > geoPoint2.getLongitude() && geoPoint1.getLatitude() < geoPoint2.getLatitude()) {
|
||||
aaa = (geoPoint1.getLongitude() - geoPoint2.getLongitude()) / (number + 1);
|
||||
ccc = geoPoint2.getLongitude() + aaa * (number + 1 - i);
|
||||
bbb = (geoPoint2.getLatitude() - geoPoint1.getLatitude()) / (number + 1);
|
||||
ddd = geoPoint1.getLatitude() + bbb * i;
|
||||
Log.e(TAG, "getLatLng:c " + ddd + " " + ccc);
|
||||
} else if (geoPoint1.getLongitude() < geoPoint2.getLongitude() && geoPoint1.getLatitude() > geoPoint2.getLatitude()) {
|
||||
aaa = (geoPoint2.getLongitude() - geoPoint1.getLongitude()) / (number + 1);
|
||||
ccc = geoPoint1.getLongitude() + aaa * (i);
|
||||
bbb = (geoPoint1.getLatitude() - geoPoint2.getLatitude()) / (number + 1);
|
||||
ddd = geoPoint1.getLatitude() - bbb * i;
|
||||
Log.e(TAG, "getLatLng:d " + ddd + " " + ccc);
|
||||
}
|
||||
|
||||
geoPointList.add(new GeoPoint(ddd, ccc));
|
||||
}
|
||||
|
||||
return geoPointList;
|
||||
}
|
||||
}
|
||||
|