GeometryBuffer: add removeLastPoint (#702)
This commit is contained in:
parent
4e37ae26c9
commit
fb8e6dab20
@ -259,7 +259,7 @@ public class GeoJsonTileDecoder implements ITileDecoder {
|
|||||||
|
|
||||||
ring++;
|
ring++;
|
||||||
parseCoordSequence(jp);
|
parseCoordSequence(jp);
|
||||||
removeLastPoint();
|
mMapElement.removeLastPoint();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -268,11 +268,6 @@ public class GeoJsonTileDecoder implements ITileDecoder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeLastPoint() {
|
|
||||||
mMapElement.pointNextPos -= 2;
|
|
||||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void parseLineString(JsonParser jp)
|
private void parseLineString(JsonParser jp)
|
||||||
throws JsonParseException, IOException {
|
throws JsonParseException, IOException {
|
||||||
mMapElement.startLine();
|
mMapElement.startLine();
|
||||||
|
@ -127,15 +127,10 @@ public class OverpassTileDecoder implements ITileDecoder {
|
|||||||
|
|
||||||
//ring++;
|
//ring++;
|
||||||
parseCoordSequence(element);
|
parseCoordSequence(element);
|
||||||
removeLastPoint();
|
mMapElement.removeLastPoint();
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeLastPoint() {
|
|
||||||
mMapElement.pointNextPos -= 2;
|
|
||||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void parseLine(OsmWay element) {
|
private void parseLine(OsmWay element) {
|
||||||
mMapElement.startLine();
|
mMapElement.startLine();
|
||||||
parseCoordSequence(element);
|
parseCoordSequence(element);
|
||||||
|
@ -256,7 +256,7 @@ public class TileDecoder implements ITileDecoder {
|
|||||||
|
|
||||||
ring++;
|
ring++;
|
||||||
parseCoordSequence(jp);
|
parseCoordSequence(jp);
|
||||||
removeLastPoint();
|
mMapElement.removeLastPoint();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,11 +265,6 @@ public class TileDecoder implements ITileDecoder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeLastPoint() {
|
|
||||||
mMapElement.pointNextPos -= 2;
|
|
||||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void parseLineString(JsonParser jp) throws IOException {
|
private void parseLineString(JsonParser jp) throws IOException {
|
||||||
mMapElement.startLine();
|
mMapElement.startLine();
|
||||||
parseCoordSequence(jp);
|
parseCoordSequence(jp);
|
||||||
|
35
vtm-tests/test/org/oscim/core/GeometryBufferTest.java
Normal file
35
vtm-tests/test/org/oscim/core/GeometryBufferTest.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 Gustl22
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify it under the
|
||||||
|
* terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
|
* Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License along with
|
||||||
|
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.oscim.core;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class GeometryBufferTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void removeLastPointPolyTest() {
|
||||||
|
GeometryBuffer buffer = new GeometryBuffer(4, 1);
|
||||||
|
buffer.startPolygon();
|
||||||
|
buffer.addPoint(0, 0);
|
||||||
|
buffer.addPoint(10, 0);
|
||||||
|
buffer.addPoint(10, 10);
|
||||||
|
buffer.addPoint(0, 10);
|
||||||
|
|
||||||
|
buffer.removeLastPoint();
|
||||||
|
System.out.println(buffer.toString());
|
||||||
|
Assert.assertEquals(buffer.getNumPoints(), 3);
|
||||||
|
}
|
||||||
|
}
|
@ -468,6 +468,16 @@ public class GeometryBuffer {
|
|||||||
return GeometryUtils.isClockwise(points, index[0]);
|
return GeometryUtils.isClockwise(points, index[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the last point.
|
||||||
|
*/
|
||||||
|
public void removeLastPoint() {
|
||||||
|
if (!isTris()) {
|
||||||
|
pointNextPos -= 2;
|
||||||
|
index[indexCurrentPos] -= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reverse the order of points for lines and polygons.
|
* Reverse the order of points for lines and polygons.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user