diff --git a/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt b/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt index 905ec07..d691183 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt @@ -33,6 +33,7 @@ import com.mirenkov.ktheightmap.Config.Companion.MAP_START_OFFSET_X import com.mirenkov.ktheightmap.Config.Companion.MAP_START_OFFSET_Y import com.mirenkov.ktheightmap.parser.KhmParser import kotlin.math.absoluteValue +import kotlin.math.ceil import kotlin.math.floor import kotlin.math.min import kotlin.math.pow @@ -257,7 +258,7 @@ fun DrawScope.drawPointInfo( val latDiff = lat - pointLat val lonDiff = lon - pointLon val distance = sqrt((latDiff).pow(2) + (lonDiff).pow(2)) - val valuesCount = min(floor(distance / valueDistance).toInt(),1000) + val valuesCount = min(ceil(distance / valueDistance).toInt(), 1000) val array: Array> = Array(valuesCount) { step -> val interCoef = 1F - step.toFloat() / valuesCount Pair(lon - lonDiff * interCoef, lat - latDiff * interCoef) diff --git a/app/src/main/java/com/mirenkov/ktheightmap/parser/KhmParser.kt b/app/src/main/java/com/mirenkov/ktheightmap/parser/KhmParser.kt index efc8bc9..35801e8 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/parser/KhmParser.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/parser/KhmParser.kt @@ -122,10 +122,14 @@ class KhmParser { return Pair( UShortArray(coords.size) { i -> - if (cutOffsets[i] > 0) { - dis.skipBytes(cutOffsets[i]) - dis.readUnsignedShort().toUShort() - } else 0u }, + when { + (cutOffsets[i] > 0) -> { + dis.skipBytes(cutOffsets[i]) + dis.readUnsignedShort().toUShort() + } + (cutOffsets[i] == 0) -> {dis.readUnsignedShort().toUShort()} + else -> 0u + } }, if (reversed) coords else coords.reversed().toTypedArray()) } }