Merge branch 'master' into spirit-x3
This commit is contained in:
commit
d21d49a8ef
1 changed files with 36 additions and 32 deletions
|
@ -162,41 +162,45 @@ int main (int argc,char** argv)
|
|||
mapnik::quad_tree<int> tree(extent, depth, ratio);
|
||||
int count = 0;
|
||||
|
||||
while (shx.is_good() && pos <= file_length - 4)
|
||||
if (shape_type != shape_io::shape_null)
|
||||
{
|
||||
int offset = shx.read_xdr_integer();
|
||||
int content_length = shx.read_xdr_integer();
|
||||
pos += 4;
|
||||
box2d<double> item_ext;
|
||||
shp.seek(offset * 2);
|
||||
int record_number = shp.read_xdr_integer();
|
||||
if (content_length != shp.read_xdr_integer())
|
||||
while (shx.is_good() && pos <= file_length - 4)
|
||||
{
|
||||
std::clog << "Content length mismatch for record number " << record_number << std::endl;
|
||||
continue;
|
||||
}
|
||||
shape_type = shp.read_ndr_integer();
|
||||
int offset = shx.read_xdr_integer();
|
||||
int shx_content_length = shx.read_xdr_integer();
|
||||
pos += 4;
|
||||
box2d<double> item_ext;
|
||||
shp.seek(offset * 2);
|
||||
int record_number = shp.read_xdr_integer();
|
||||
int shp_content_length = shp.read_xdr_integer();
|
||||
if (shx_content_length != shp_content_length)
|
||||
{
|
||||
std::clog << "Content length mismatch for record number " << record_number << std::endl;
|
||||
continue;
|
||||
}
|
||||
shape_type = shp.read_ndr_integer();
|
||||
|
||||
if (shape_type==shape_io::shape_point
|
||||
|| shape_type==shape_io::shape_pointm
|
||||
|| shape_type == shape_io::shape_pointz)
|
||||
{
|
||||
double x=shp.read_double();
|
||||
double y=shp.read_double();
|
||||
item_ext=box2d<double>(x,y,x,y);
|
||||
}
|
||||
else
|
||||
{
|
||||
shp.read_envelope(item_ext);
|
||||
}
|
||||
if (verbose)
|
||||
{
|
||||
std::clog << "record number " << record_number << " box=" << item_ext << std::endl;
|
||||
}
|
||||
if (item_ext.valid())
|
||||
{
|
||||
tree.insert(offset * 2,item_ext);
|
||||
++count;
|
||||
if (shape_type==shape_io::shape_point
|
||||
|| shape_type==shape_io::shape_pointm
|
||||
|| shape_type == shape_io::shape_pointz)
|
||||
{
|
||||
double x=shp.read_double();
|
||||
double y=shp.read_double();
|
||||
item_ext=box2d<double>(x,y,x,y);
|
||||
}
|
||||
else
|
||||
{
|
||||
shp.read_envelope(item_ext);
|
||||
}
|
||||
if (verbose)
|
||||
{
|
||||
std::clog << "record number " << record_number << " box=" << item_ext << std::endl;
|
||||
}
|
||||
if (item_ext.valid())
|
||||
{
|
||||
tree.insert(offset * 2,item_ext);
|
||||
++count;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue