Revert "shape: check if multiple parts are interior rings or separate"

This reverts commit faaa4f6e3f.
This commit is contained in:
Dane Springmeyer 2012-02-26 22:11:22 -08:00
parent ce3078fa98
commit 5bdaf44a7a

View file

@ -103,12 +103,12 @@ void shape_io::read_polyline(mapnik::geometry_container & geom)
{
shape_file::record_type record(reclength_ * 2 - 36);
shp_.read_record(record);
int num_parts = record.read_ndr_integer();
int num_points = record.read_ndr_integer();
if (num_parts == 1)
{
geometry_type* line = new geometry_type(mapnik::LineString);
geometry_type* line = new geometry_type(mapnik::LineString);
record.skip(4);
double x = record.read_double();
double y = record.read_double();
@ -132,7 +132,7 @@ void shape_io::read_polyline(mapnik::geometry_container & geom)
int start, end;
for (int k = 0; k < num_parts; ++k)
{
geometry_type* line = new geometry_type(mapnik::LineString);
geometry_type* line = new geometry_type(mapnik::LineString);
start = parts[k];
if (k == num_parts - 1)
{
@ -179,21 +179,19 @@ void shape_io::read_polygon(mapnik::geometry_container & geom)
{
shape_file::record_type record(reclength_ * 2 - 36);
shp_.read_record(record);
int num_parts = record.read_ndr_integer();
int num_points = record.read_ndr_integer();
std::vector<int> parts(num_parts);
for (int i = 0; i < num_parts; ++i)
{
parts[i] = record.read_ndr_integer();
}
geometry_type* poly = new geometry_type(mapnik::Polygon);
for (int k = 0; k < num_parts; k++)
{
geometry_type* poly = new geometry_type(mapnik::Polygon);
int start = parts[k];
int end;
if (k == num_parts - 1)
@ -207,13 +205,6 @@ void shape_io::read_polygon(mapnik::geometry_container & geom)
double x = record.read_double();
double y = record.read_double();
if (k > 0 && !poly->hit_test(x,y,0))
{
geom.push_back(poly);
poly = new geometry_type(mapnik::Polygon);
}
poly->move_to(x, y);
for (int j=start+1;j<end;j++)
@ -222,9 +213,8 @@ void shape_io::read_polygon(mapnik::geometry_container & geom)
y = record.read_double();
poly->line_to(x, y);
}
geom.push_back(poly);
}
geom.push_back(poly);
// z-range
//double z0=record.read_double();
//double z1=record.read_double();