mirror of
https://github.com/mapnik/mapnik.git
synced 2025-12-08 20:13:09 +00:00
Conflicts: tests/python_tests/ogr_test.py
This commit is contained in:
parent
67379d1bba
commit
a4c926ac8a
@ -264,9 +264,16 @@ void ogr_datasource::init(mapnik::parameters const& params)
|
||||
OGRErr e = layer->GetExtent(&envelope);
|
||||
if (e == OGRERR_FAILURE)
|
||||
{
|
||||
std::ostringstream s;
|
||||
s << "OGR Plugin: Extent missing for layer '" << layer->GetName() << "'. Use <extent> paramater to define a custom extent value.";
|
||||
throw datasource_exception(s.str());
|
||||
if (layer->GetFeatureCount() == 0)
|
||||
{
|
||||
MAPNIK_LOG_ERROR(ogr) << "could not determine extent, layer '" << layer->GetName() << "' appears to have no features";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::ostringstream s;
|
||||
s << "OGR Plugin: Cannot determine extent for layer '" << layer->GetName() << "'. Please provide a manual extent string (minx,miny,maxx,maxy).";
|
||||
throw datasource_exception(s.str());
|
||||
}
|
||||
}
|
||||
extent_.init(envelope.MinX, envelope.MinY, envelope.MaxX, envelope.MaxY);
|
||||
}
|
||||
|
||||
9
tests/data/gpx/empty.gpx
Normal file
9
tests/data/gpx/empty.gpx
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" standalone="yes"?>
|
||||
<gpx version="1.0">
|
||||
<name>Empty GPX</name>
|
||||
<desc></desc>
|
||||
<wpt lat="48" lon="-122">
|
||||
<ele>0</ele>
|
||||
<time>2001-11-28T21:06:52Z</time>
|
||||
</wpt>
|
||||
</gpx>
|
||||
@ -69,6 +69,33 @@ if 'ogr' in mapnik.DatasourceCache.plugin_names():
|
||||
eq_(e.maxx,1)
|
||||
eq_(e.maxy,1)
|
||||
|
||||
def test_ogr_reading_gpx_waypoint():
|
||||
ds = mapnik.Ogr(file='../data/gpx/empty.gpx',layer='waypoints')
|
||||
e = ds.envelope()
|
||||
eq_(e.minx,-122)
|
||||
eq_(e.miny,48)
|
||||
eq_(e.maxx,-122)
|
||||
eq_(e.maxy,48)
|
||||
|
||||
def test_ogr_empty_data_should_not_throw():
|
||||
default_logging_severity = mapnik.logger.get_severity()
|
||||
mapnik.logger.set_severity(mapnik.severity_type.None)
|
||||
# use logger to silence expected warnings
|
||||
for layer in ['routes', 'tracks', 'route_points', 'track_points']:
|
||||
ds = mapnik.Ogr(file='../data/gpx/empty.gpx',layer=layer)
|
||||
e = ds.envelope()
|
||||
eq_(e.minx,0)
|
||||
eq_(e.miny,0)
|
||||
eq_(e.maxx,0)
|
||||
eq_(e.maxy,0)
|
||||
mapnik.logger.set_severity(default_logging_severity)
|
||||
|
||||
# disabled because OGR prints an annoying error: ERROR 1: Invalid Point object. Missing 'coordinates' member.
|
||||
#def test_handling_of_null_features():
|
||||
# ds = mapnik.Ogr(file='../data/json/null_feature.geojson',layer_by_index=0)
|
||||
# fs = ds.all_features()
|
||||
# eq_(len(fs),1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
setup()
|
||||
exit(run_all(eval(x) for x in dir() if x.startswith("test_")))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user