updated on Tue Jan 17 16:10:12 UTC 2012
[aur-mirror.git] / osm2pgsql-svn / patch-build_geometry.cpp
blobfd37e3670ae5061898cf5ca1562ba4c11a36bcf4
1 // The patch makes it build with new geos-3.3.0
2 // create(suze_t, size_t) is pretty straightforward, but
3 // these dynamic_casts I really don't like
4 --- build_geometry.cpp.orig 2011-01-16 20:01:16.000000000 +0300
5 +++ build_geometry.cpp 2011-06-30 02:51:28.000000000 +0400
6 @@ -71,7 +71,7 @@
8 char *get_wkt_simple(osmNode *nodes, int count, int polygon) {
9 GeometryFactory gf;
10 - std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create(0, 2));
11 + std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
13 try
15 @@ -113,7 +113,7 @@
17 size_t get_wkt_split(osmNode *nodes, int count, int polygon, double split_at) {
18 GeometryFactory gf;
19 - std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create(0, 2));
20 + std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
21 double area;
22 WKTWriter wktw;
23 size_t wkt_size = 0;
24 @@ -143,7 +143,7 @@
26 double distance = 0;
27 std::auto_ptr<CoordinateSequence> segment;
28 - segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create(0, 2));
29 + segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
30 segment->add(coords->getAt(0));
31 for(unsigned i=1; i<coords->getSize(); i++) {
32 segment->add(coords->getAt(i));
33 @@ -155,7 +155,7 @@
34 areas.push_back(0);
35 wkt_size++;
36 distance=0;
37 - segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create(0, 2));
38 + segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
39 segment->add(coords->getAt(i));
42 @@ -253,7 +253,7 @@
43 case GEOS_MULTIPOINT:
44 // Drop through
45 case GEOS_MULTILINESTRING:
46 - gc = (GeometryCollection *) geometry;
47 + gc = dynamic_cast<GeometryCollection *>(geometry);
48 num_geometries = gc->getNumGeometries();
49 *xnodes = (struct osmNode **) malloc((num_geometries + 1) * sizeof(struct osmNode *));
50 *xcount = (int *) malloc(num_geometries * sizeof(int));
51 @@ -309,7 +309,7 @@
52 try
54 for (int c=0; xnodes[c]; c++) {
55 - std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create(0, 2));
56 + std::auto_ptr<CoordinateSequence> coords(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
57 for (int i = 0; i < xcount[c]; i++) {
58 struct osmNode *nodes = xnodes[c];
59 Coordinate c;
60 @@ -358,7 +358,7 @@
61 //std::cerr << "polygon(" << osm_id << ") is no good: points(" << pline->getNumPoints() << "), closed(" << pline->isClosed() << "). " << writer.write(pline.get()) << std::endl;
62 double distance = 0;
63 std::auto_ptr<CoordinateSequence> segment;
64 - segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create(0, 2));
65 + segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
66 segment->add(pline->getCoordinateN(0));
67 for(unsigned i=1; i<pline->getNumPoints(); i++) {
68 segment->add(pline->getCoordinateN(i));
69 @@ -370,7 +370,7 @@
70 areas.push_back(0);
71 wkt_size++;
72 distance=0;
73 - segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create(0, 2));
74 + segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory()->create((size_t)0, (size_t)2));
75 segment->add(pline->getCoordinateN(i));
78 @@ -484,7 +484,7 @@
80 for(unsigned i=0; i<toplevelpolygons; i++)
82 - Polygon* poly = (Polygon*)polygons->at(i);
83 + Polygon* poly = dynamic_cast<Polygon*>(polygons->at(i));
84 std::string text = writer.write(poly);
85 wkts.push_back(text);
86 areas.push_back(poly->getArea());