git-svn-id: http://svn.openlayers.org/trunk/openlayers@12370 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
121 lines
8.2 KiB
HTML
121 lines
8.2 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../OLLoader.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
var gpx_data = '<?xml version="1.0" encoding="ISO-8859-1"?><gpx version="1.1" creator="Memory-Map 5.1.3.715 http://www.memory-map.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"><wpt lat="51.3697845627" lon="-0.1853562259"><name>Mark</name><sym><![CDATA[Flag]]></sym><type><![CDATA[Marks]]></type></wpt><rte><name><![CDATA[Route8]]></name><type><![CDATA[Route]]></type><rtept lat="51.3761803674" lon="-0.1829991904"><name><![CDATA[WP0801]]></name><sym><![CDATA[Dot]]></sym><type><![CDATA[Waypoints]]></type></rtept><rtept lat="51.3697894659" lon="-0.1758887005"><name><![CDATA[WP0802]]></name><sym><![CDATA[Dot]]></sym><type><![CDATA[Waypoints]]></type></rtept><rtept lat="51.3639790884" lon="-0.1833202965"><name><![CDATA[WP0803]]></name><sym><![CDATA[Dot]]></sym><type><![CDATA[Waypoints]]></type></rtept><rtept lat="51.3567607069" lon="-0.1751119509"><name><![CDATA[WP0804]]></name><sym><![CDATA[Dot]]></sym><type><![CDATA[Waypoints]]></type></rtept></rte><trk><name><![CDATA[Track]]></name><type><![CDATA[Track]]></type><trkseg><trkpt lat="51.3768216433" lon="-0.1721292044"></trkpt><trkpt lat="51.3708337670" lon="-0.1649230916"></trkpt><trkpt lat="51.3644368725" lon="-0.1736741378"></trkpt><trkpt lat="51.3576354272" lon="-0.1662595250"></trkpt></trkseg></trk></gpx>';
|
|
|
|
function test_Format_GPX_constructor(t) {
|
|
t.plan(5);
|
|
|
|
var options = {'foo': 'bar'};
|
|
var format = new OpenLayers.Format.GPX(options);
|
|
t.ok(format instanceof OpenLayers.Format.GPX,
|
|
"new OpenLayers.Format.GPX returns object" );
|
|
t.eq(format.foo, "bar", "constructor sets options correctly");
|
|
t.eq(typeof format.read, "function", "format has a read function");
|
|
t.eq(typeof format.write, "function", "format has a write function");
|
|
t.eq(format.externalProjection.getCode(), "EPSG:4326",
|
|
"default external projection is EPSG:4326");
|
|
}
|
|
function test_Format_GPX_read(t) {
|
|
t.plan(4);
|
|
var f = new OpenLayers.Format.GPX();
|
|
var features = f.read(gpx_data);
|
|
t.eq(features.length, 3, "Number of features read is correct");
|
|
t.eq(features[2].geometry.toString(), "POINT(-0.1853562259 51.3697845627)", "waypoint feature correctly created");
|
|
t.eq(features[0].geometry.toString(), "LINESTRING(-0.1721292044 51.3768216433,-0.1649230916 51.370833767,-0.1736741378 51.3644368725,-0.166259525 51.3576354272)", "track feature correctly created");
|
|
t.eq(features[1].geometry.toString(), "LINESTRING(-0.1829991904 51.3761803674,-0.1758887005 51.3697894659,-0.1833202965 51.3639790884,-0.1751119509 51.3567607069)", "route feature correctly created");
|
|
}
|
|
function test_format_GPX_read_attributes(t) {
|
|
t.plan(2);
|
|
var f = new OpenLayers.Format.GPX();
|
|
var features = f.read(gpx_data);
|
|
t.eq(features[2].attributes['name'], "Mark", "Text attribute node read correctly.");
|
|
t.eq(features[2].attributes['sym'], "Flag", "CDATA attribute node read correctly.");
|
|
}
|
|
function test_Format_GPX_serialize_points(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
|
|
var point2 = new OpenLayers.Geometry.Point(-112.04, 45.68);
|
|
var features = [
|
|
new OpenLayers.Feature.Vector(point, {name: 'foo', description: 'bar'}),
|
|
new OpenLayers.Feature.Vector(point2, {name: 'foo', description: 'bar'})
|
|
];
|
|
var data = parser.write(features);
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><wpt lon="-111.04" lat="45.68"><name>foo</name><desc>bar</desc></wpt><wpt lon="-112.04" lat="45.68"><name>foo</name><desc>bar</desc></wpt></gpx>', 'GPX serializes points correctly');
|
|
}
|
|
function test_Format_GPX_serialize_line(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
|
|
var point2 = new OpenLayers.Geometry.Point(-112.04, 45.68);
|
|
var line = new OpenLayers.Geometry.LineString([point, point2]);
|
|
var f = new OpenLayers.Feature.Vector(line, {name: 'foo', description: 'bar'});
|
|
var data = parser.write(f);
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><trk><name>foo</name><desc>bar</desc><trkseg><trkpt lon="-111.04" lat="45.68"/><trkpt lon="-112.04" lat="45.68"/></trkseg></trk></gpx>', 'GPX serializes line correctly');
|
|
}
|
|
function test_Format_GPX_serialize_lines(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
|
|
var point2 = new OpenLayers.Geometry.Point(-112.04, 45.68);
|
|
var line = new OpenLayers.Geometry.LineString([point, point2]);
|
|
var point3 = new OpenLayers.Geometry.Point(1, 2);
|
|
var point4 = new OpenLayers.Geometry.Point(3, 4);
|
|
var line2 = new OpenLayers.Geometry.LineString([point3, point4]);
|
|
var f = new OpenLayers.Feature.Vector(line, {name: 'foo', description: 'bar'});
|
|
var f2 = new OpenLayers.Feature.Vector(line2, {name: 'dude', description: 'truite'});
|
|
var data = parser.write([f, f2]);
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><trk><name>foo</name><desc>bar</desc><trkseg><trkpt lon="-111.04" lat="45.68"/><trkpt lon="-112.04" lat="45.68"/></trkseg></trk><trk><name>dude</name><desc>truite</desc><trkseg><trkpt lon="1" lat="2"/><trkpt lon="3" lat="4"/></trkseg></trk></gpx>', 'GPX serializes lines correctly');
|
|
}
|
|
function test_Format_GPX_serialize_multiline(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
|
|
var point2 = new OpenLayers.Geometry.Point(-112.04, 45.68);
|
|
var line = new OpenLayers.Geometry.LineString([point, point2]);
|
|
var point3 = new OpenLayers.Geometry.Point(1, 2);
|
|
var point4 = new OpenLayers.Geometry.Point(3, 4);
|
|
var line2 = new OpenLayers.Geometry.LineString([point3, point4]);
|
|
var multiline = new OpenLayers.Geometry.MultiLineString([line, line2]);
|
|
var f = new OpenLayers.Feature.Vector(multiline, {name: 'foo', description: 'bar'});
|
|
var data = parser.write([f]);
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><trk><name>foo</name><desc>bar</desc><trkseg><trkpt lon="-111.04" lat="45.68"/><trkpt lon="-112.04" lat="45.68"/></trkseg><trkseg><trkpt lon="1" lat="2"/><trkpt lon="3" lat="4"/></trkseg></trk></gpx>', 'GPX serializes multiline correctly');
|
|
}
|
|
function test_Format_GPX_serialize_polygon(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
|
|
var point2 = new OpenLayers.Geometry.Point(-112.04, 45.68);
|
|
var linearRing = new OpenLayers.Geometry.LinearRing([point, point2, point.clone()]);
|
|
var polygon = new OpenLayers.Geometry.Polygon([linearRing]);
|
|
var f = new OpenLayers.Feature.Vector(polygon, {name: 'foo', description: 'bar'});
|
|
var data = parser.write([f]);
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><trk><name>foo</name><desc>bar</desc><trkseg><trkpt lon="-111.04" lat="45.68"/><trkpt lon="-112.04" lat="45.68"/><trkpt lon="-111.04" lat="45.68"/></trkseg></trk></gpx>', 'GPX serializes polygon correctly');
|
|
}
|
|
function test_Format_GPX_serialize_metadata(t) {
|
|
t.plan(1);
|
|
|
|
var parser = new OpenLayers.Format.GPX();
|
|
|
|
var data = parser.write([], {name: 'foo', desc: 'bar'});
|
|
t.xml_eq(data, '<?xml version="1.0" encoding="ISO-8859-1"?><gpx xmlns="http://www.topografix.com/GPX/1/1"><metadata><name>foo</name><desc>bar</desc></metadata></gpx>', 'GPX serializes metadata correctly');
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|