gpt4 book ai didi

android - 折线从头到尾连接 |谷歌地图 |安卓

转载 作者:行者123 更新时间:2023-12-04 07:41:01 26 4
gpt4 key购买 nike

问题是当我绘制折线时,它们会从不应该连接的起点和终点连接起来。我只是解码我的多点(它们是来自方向 api 的编码字符串),然后将它们添加到多选项中以在 map 上绘制多段线。
下面是我的代码:

val options = PolylineOptions()
options.color(Color.RED)
options.width(10f)
val list = booking.polyPointsList.flatMap { it.decodePoly() }
options.addAll(list)
decodepoly() 里面有什么
fun String.decodePoly(): MutableList<LatLng> {
if (this.isEmpty()) return mutableListOf()
val poly = ArrayList<LatLng>()
var index = 0
val len = this.length
var lat = 0
var lng = 0

while (index < len) {
var b: Int
var shift = 0
var result = 0
do {
b = this[index++].toInt() - 63
result = result or (b and 0x1f shl shift)
shift += 5
} while (b >= 0x20)
val dlat = if (result and 1 != 0) (result shr 1).inv() else result shr 1
lat += dlat

shift = 0
result = 0
do {
b = this[index++].toInt() - 63
result = result or (b and 0x1f shl shift)
shift += 5
} while (b >= 0x20)
val dlng = if (result and 1 != 0) (result shr 1).inv() else result shr 1
lng += dlng

val p = LatLng(
lat.toDouble() / 1E5,
lng.toDouble() / 1E5
)
poly.add(p)
}

return poly
}
See Polylines here

最佳答案

可能在您的解码折线点中,起始位置坐标是第一个点和最后一个点的两倍。因此,尝试删除列表中的最后一点:

val options = PolylineOptions()
options.color(Color.RED)
options.width(10f)
val list = booking.polyPointsList.flatMap { it.decodePoly() }
list.removeLast()
^^^^^^^^^^^^^^^^^ - add this line
options.addAll(list)
或者,您可能会将所有折线点添加两次(或更多)。在这种情况下,“第一个点”也至少存在于折线点中两次:
     +--------------------- Cycle --------------------+
| |
first_point -> second_point -> ... last_point -> first_point -> ... -> last_point
\____________________ _____________________/ \__________ _________________/
V V
first time added points list second time added points list

关于android - 折线从头到尾连接 |谷歌地图 |安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67466966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com