Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
/**
* A MultiLineString is a type of {@link Geometry}.
*
* @see <a href='http://geojson.org/geojson-spec.html#multilinestringn'>Official GeoJSON MultiLineString Specifications</a>
* @see <a href='http://geojson.org/geojson-spec.html#multilinestring'>Official GeoJSON MultiLineString Specifications</a>
* @since 1.0.0
*/
public class MultiLineString implements Geometry<List<List<Position>>> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ public double getAltitude() {
*/
public double[] getCoordinates() {
if (hasAltitude()) {
return new double[] {getLongitude(), getLatitude(), getAltitude()};
return new double[]{getLongitude(), getLatitude(), getAltitude()};
} else {
return new double[] {getLongitude(), getLatitude()};
return new double[]{getLongitude(), getLatitude()};
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.mapbox.services.geojson;

import com.mapbox.services.commons.geojson.LineString;

import com.mapbox.services.commons.models.Position;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

Expand All @@ -24,4 +26,42 @@ public void toJson() {
compareJson(BaseGeoJSON.SAMPLE_LINESTRING, geo.toJson());
}

@Test
public void checksEqualityFromCoordinates() {
LineString aLine = LineString.fromCoordinates(new double[][]{
{100.0, 0.0}, {101.0, 1.0}
});

String lineCoordinates = obtainLiteralCoordinatesFrom(aLine);

assertEquals("Line: \n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n",
lineCoordinates);
}

@Test
public void checksJsonEqualityFromCoordinates() {
LineString aLine = LineString.fromCoordinates(new double[][]{
{100.0, 0.0}, {101.0, 1.0}
});

String lineJsonCoordinates = aLine.toJson();

compareJson("{ \"type\": \"LineString\",\n"
+ "\"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\n}",
lineJsonCoordinates);
}

private String obtainLiteralCoordinatesFrom(LineString line) {
List<Position> lineCoordinates = line.getCoordinates();
StringBuilder literalCoordinates = new StringBuilder();
literalCoordinates.append("Line: \n");
for (Position point : lineCoordinates) {
literalCoordinates.append(point.toString());
literalCoordinates.append("\n");
}
return literalCoordinates.toString();
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package com.mapbox.services.geojson;

import com.mapbox.services.commons.geojson.MultiLineString;
import com.mapbox.services.commons.models.Position;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

public class MultiLineStringTest extends BaseGeoJSON {

@Test
public void fromJson() {
com.mapbox.services.commons.geojson.MultiLineString geo = com.mapbox.services.commons.geojson.MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
MultiLineString geo = MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
assertEquals(geo.getType(), "MultiLineString");
assertEquals(geo.getCoordinates().get(0).get(0).getLongitude(), 100.0, 0.0);
assertEquals(geo.getCoordinates().get(0).get(0).getLatitude(), 0.0, 0.0);
Expand All @@ -18,8 +22,58 @@ public void fromJson() {

@Test
public void toJson() {
com.mapbox.services.commons.geojson.MultiLineString geo = com.mapbox.services.commons.geojson.MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
MultiLineString geo = MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
compareJson(BaseGeoJSON.SAMPLE_MULTILINESTRING, geo.toJson());
}

@Test
public void checksEqualityFromCoordinates() {
MultiLineString aMultiLine = MultiLineString.fromCoordinates(new double[][][]{
{{100.0, 0.0}, {101.0, 1.0}},
{{102.0, 2.0}, {103.0, 3.0}}
});

String multiLineCoordinates = obtainLiteralCoordinatesFrom(aMultiLine);

assertEquals("Lines: \n"
+ "Line: \n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n"
+ "Line: \n"
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
+ "Position [longitude=103.0, latitude=3.0, altitude=NaN]\n",
multiLineCoordinates);
}

@Test
public void checksJsonEqualityFromCoordinates() {
MultiLineString aMultiLine = MultiLineString.fromCoordinates(new double[][][]{
{{100.0, 0.0}, {101.0, 1.0}},
{{102.0, 2.0}, {103.0, 3.0}}
});

String multiLineJsonCoordinates = aMultiLine.toJson();

compareJson("{ \"type\": \"MultiLineString\",\n"
+ "\"coordinates\": [\n"
+ "[ [100.0, 0.0], [101.0, 1.0] ],\n"
+ "[ [102.0, 2.0], [103.0, 3.0] ]\n"
+ "]\n"
+ "}", multiLineJsonCoordinates);
}

private String obtainLiteralCoordinatesFrom(MultiLineString multiLine) {
List<List<Position>> multiLineCoordinates = multiLine.getCoordinates();
StringBuilder literalCoordinates = new StringBuilder();
literalCoordinates.append("Lines: \n");
for (List<Position> line : multiLineCoordinates) {
literalCoordinates.append("Line: \n");
for (Position point : line) {
literalCoordinates.append(point.toString());
literalCoordinates.append("\n");
}
}
return literalCoordinates.toString();
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package com.mapbox.services.geojson;

import com.mapbox.services.commons.geojson.MultiPoint;
import com.mapbox.services.commons.models.Position;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

public class MultiPointTest extends BaseGeoJSON {

@Test
public void fromJson() {
com.mapbox.services.commons.geojson.MultiPoint geo = com.mapbox.services.commons.geojson.MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
MultiPoint geo = MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
assertEquals(geo.getType(), "MultiPoint");
assertEquals(geo.getCoordinates().get(0).getLongitude(), 100.0, 0.0);
assertEquals(geo.getCoordinates().get(0).getLatitude(), 0.0, 0.0);
Expand All @@ -18,8 +22,46 @@ public void fromJson() {

@Test
public void toJson() {
com.mapbox.services.commons.geojson.MultiPoint geo = com.mapbox.services.commons.geojson.MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
MultiPoint geo = MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
compareJson(BaseGeoJSON.SAMPLE_MULTIPOINT, geo.toJson());
}

@Test
public void checksEqualityFromCoordinates() {
MultiPoint aMultiPoint = MultiPoint.fromCoordinates(new double[][]{
{100.0, 0.0}, {101.0, 1.0}
});

String multiPointCoordinates = obtainLiteralCoordinatesFrom(aMultiPoint);

assertEquals("Points: \n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n",
multiPointCoordinates);
}

@Test
public void checksJsonEqualityFromCoordinates() {
MultiPoint aMultiPoint = MultiPoint.fromCoordinates(new double[][]{
{100.0, 0.0}, {101.0, 1.0}
});

String multiPointJsonCoordinates = aMultiPoint.toJson();

compareJson("{ \"type\": \"MultiPoint\",\n"
+ "\"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\n"
+ "}", multiPointJsonCoordinates);
}

private String obtainLiteralCoordinatesFrom(MultiPoint multiPoint) {
List<Position> multiPointCoordinates = multiPoint.getCoordinates();
StringBuilder literalCoordinates = new StringBuilder();
literalCoordinates.append("Points: \n");
for (Position point : multiPointCoordinates) {
literalCoordinates.append(point.toString());
literalCoordinates.append("\n");
}
return literalCoordinates.toString();
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.mapbox.services.geojson;

import com.mapbox.services.commons.geojson.MultiPolygon;

import com.mapbox.services.commons.models.Position;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

Expand All @@ -24,4 +26,73 @@ public void toJson() {
compareJson(BaseGeoJSON.SAMPLE_MULTIPOLYGON, geo.toJson());
}

@Test
public void checksEqualityFromCoordinates() {
MultiPolygon aMultiPolygon = MultiPolygon.fromCoordinates(new double[][][][]{
{{{102.0, 2.0}, {103.0, 2.0}, {103.0, 3.0}, {102.0, 3.0}, {102.0, 2.0}}},
{{{100.0, 0.0}, {101.0, 0.0}, {101.0, 1.0}, {100.0, 1.0}, {100.0, 0.0}},
{{100.2, 0.2}, {100.8, 0.2}, {100.8, 0.8}, {100.2, 0.8}, {100.2, 0.2}}}
});

String multiPolygonCoordinates = obtainLiteralCoordinatesFrom(aMultiPolygon);

assertEquals("Polygons: \n"
+ "Polygon: \n"
+ "Lines: \n"
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
+ "Position [longitude=103.0, latitude=2.0, altitude=NaN]\n"
+ "Position [longitude=103.0, latitude=3.0, altitude=NaN]\n"
+ "Position [longitude=102.0, latitude=3.0, altitude=NaN]\n"
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
+ "Polygon: \n"
+ "Lines: \n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
+ "Position [longitude=101.0, latitude=0.0, altitude=NaN]\n"
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n"
+ "Position [longitude=100.0, latitude=1.0, altitude=NaN]\n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
+ "Lines: \n"
+ "Position [longitude=100.2, latitude=0.2, altitude=NaN]\n"
+ "Position [longitude=100.8, latitude=0.2, altitude=NaN]\n"
+ "Position [longitude=100.8, latitude=0.8, altitude=NaN]\n"
+ "Position [longitude=100.2, latitude=0.8, altitude=NaN]\n"
+ "Position [longitude=100.2, latitude=0.2, altitude=NaN]\n", multiPolygonCoordinates);
}

@Test
public void checksJsonEqualityFromCoordinates() {
MultiPolygon aMultiPolygon = MultiPolygon.fromCoordinates(new double[][][][]{
{{{102.0, 2.0}, {103.0, 2.0}, {103.0, 3.0}, {102.0, 3.0}, {102.0, 2.0}}},
{{{100.0, 0.0}, {101.0, 0.0}, {101.0, 1.0}, {100.0, 1.0}, {100.0, 0.0}},
{{100.2, 0.2}, {100.8, 0.2}, {100.8, 0.8}, {100.2, 0.8}, {100.2, 0.2}}}
});

String multiPolygonJsonCoordinates = aMultiPolygon.toJson();

compareJson("{ \"type\": \"MultiPolygon\",\n"
+ "\"coordinates\": [\n"
+ "[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\n"
+ "[[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\n"
+ "[[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\n"
+ "]\n"
+ "}", multiPolygonJsonCoordinates);
}

private String obtainLiteralCoordinatesFrom(MultiPolygon multiPolygon) {
List<List<List<Position>>> multiPolygonCoordinates = multiPolygon.getCoordinates();
StringBuilder literalCoordinates = new StringBuilder();
literalCoordinates.append("Polygons: \n");
for (List<List<Position>> polygon : multiPolygonCoordinates) {
literalCoordinates.append("Polygon: \n");
for (List<Position> lines : polygon) {
literalCoordinates.append("Lines: \n");
for (Position point : lines) {
literalCoordinates.append(point.toString());
literalCoordinates.append("\n");
}
}
}
return literalCoordinates.toString();
}

}
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package com.mapbox.services.geojson;

import com.mapbox.services.commons.geojson.Point;
import com.mapbox.services.commons.models.Position;
import org.junit.Test;

import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

public class PointTest extends BaseGeoJSON {

@Test
public void fromJson() {
com.mapbox.services.commons.geojson.Point geo = com.mapbox.services.commons.geojson.Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
Point geo = Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
assertEquals(geo.getType(), "Point");
assertEquals(geo.getCoordinates().getLongitude(), 100.0, 0.0);
assertEquals(geo.getCoordinates().getLatitude(), 0.0, 0.0);
Expand All @@ -17,9 +20,39 @@ public void fromJson() {

@Test
public void toJson() {
com.mapbox.services.commons.geojson.Point geo = com.mapbox.services.commons.geojson.Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
Point geo = Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
compareJson(BaseGeoJSON.SAMPLE_POINT, geo.toJson());
}

@Test
public void checksEqualityFromCoordinates() {
Point aPoint = Point.fromCoordinates(new double[]{100.0, 0.0});

String pointCoordinates = obtainLiteralCoordinatesFrom(aPoint);

assertEquals("Point: \n"
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n", pointCoordinates);
}

@Test
public void checksJsonEqualityFromCoordinates() {
Point aPoint = Point.fromCoordinates(new double[]{100.0, 0.0});

String pointJsonCoordinates = aPoint.toJson();

compareJson("{ \"type\": \"Point\", \"coordinates\": [100.0, 0.0] }", pointJsonCoordinates);
}

private String obtainLiteralCoordinatesFrom(Point point) {
Position thePoint = point.getCoordinates();
StringBuilder literalCoordinates = new StringBuilder();
literalCoordinates.append("Point: \n");

literalCoordinates.append(thePoint.toString());
literalCoordinates.append("\n");

return literalCoordinates.toString();
}

}

Loading