Ticket #9354: bug_report.cpp

File bug_report.cpp, 15.8 KB (added by Charles-Edward Cady <charlesedouardcady@…>, 9 years ago)

Test case exposing the bug. Compile from the directory containing BOOST_ROOT with g++ -I . bug_report.cpp

Line 
1#include <iostream>
2#include <boost/geometry/geometry.hpp>
3#include <boost/geometry/geometries/point_xy.hpp>
4#include <boost/geometry/extensions/gis/latlong/latlong.hpp>
5
6boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> > convert(const double longitude, const double latitude);
7boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> > convert(const double longitude, const double latitude)
8{
9 return boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> >(longitude,latitude);
10}
11
12typedef boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> > PointType;
13
14
15int main()
16{
17 boost::geometry::model::polygon<PointType> polygon;
18 boost::geometry::append(polygon, convert(-64.156,60));
19 boost::geometry::append(polygon, convert(-56.71666667,60));
20 boost::geometry::append(polygon, convert(-55.63416667,58.90016667));
21 boost::geometry::append(polygon, convert(-55.05783333,57.842));
22 boost::geometry::append(polygon, convert(-54.00983333,57.5855));
23 boost::geometry::append(polygon, convert(-53.12633333,57.23666667));
24 boost::geometry::append(polygon, convert(-52.38816667,56.8015));
25 boost::geometry::append(polygon, convert(-51.82366667,56.30216667));
26 boost::geometry::append(polygon, convert(-50.29066667,54.38683333));
27 boost::geometry::append(polygon, convert(-50.1195,53.74233333));
28 boost::geometry::append(polygon, convert(-50.1675,53.0765));
29 boost::geometry::append(polygon, convert(-49.9515,52.33433333));
30 boost::geometry::append(polygon, convert(-48.87416667,51.57));
31 boost::geometry::append(polygon, convert(-48.26733333,50.66916667));
32 boost::geometry::append(polygon, convert(-48.11716667,50.038));
33 boost::geometry::append(polygon, convert(-48.15583333,49.4005));
34 boost::geometry::append(polygon, convert(-47.9195,48.65366667));
35 boost::geometry::append(polygon, convert(-47.776,47.40416667));
36 boost::geometry::append(polygon, convert(-48.009,46.58533333));
37 boost::geometry::append(polygon, convert(-48.72133333,45.32416667));
38 boost::geometry::append(polygon, convert(-49.275,44.723));
39 boost::geometry::append(polygon, convert(-49.85383333,44.273));
40 boost::geometry::append(polygon, convert(-50.56683333,43.88583333));
41 boost::geometry::append(polygon, convert(-51.34016667,43.601));
42 boost::geometry::append(polygon, convert(-52.287,43.39316667));
43 boost::geometry::append(polygon, convert(-53.3355,43.325));
44 boost::geometry::append(polygon, convert(-54.15333333,43.35233333));
45 boost::geometry::append(polygon, convert(-55.1235,43.49016667));
46 boost::geometry::append(polygon, convert(-55.524,42.66866667));
47 boost::geometry::append(polygon, convert(-56.15566667,41.96983333));
48 boost::geometry::append(polygon, convert(-57.0855,41.33683333));
49 boost::geometry::append(polygon, convert(-58.0425,40.92233333));
50 boost::geometry::append(polygon, convert(-59.08633333,40.68966667));
51 boost::geometry::append(polygon, convert(-60.20333333,40.63883333));
52 boost::geometry::append(polygon, convert(-61.23383333,40.75766667));
53 boost::geometry::append(polygon, convert(-62.2915,41.07533333));
54 boost::geometry::append(polygon, convert(-63.17483333,40.60916667));
55 boost::geometry::append(polygon, convert(-64.1395,40.28866667));
56 boost::geometry::append(polygon, convert(-64.9885,40.12433333));
57 boost::geometry::append(polygon, convert(-65.8845,40.09066667));
58 boost::geometry::append(polygon, convert(-65.99183333,39.9675));
59 boost::geometry::append(polygon, convert(-66.35233333,39.47066667));
60 boost::geometry::append(polygon, convert(-66.8055,39.02566667));
61 boost::geometry::append(polygon, convert(-67.34316667,38.65266667));
62 boost::geometry::append(polygon, convert(-68.0335,38.32));
63 boost::geometry::append(polygon, convert(-68.77583333,38.08816667));
64 boost::geometry::append(polygon, convert(-69.56783333,37.969));
65 boost::geometry::append(polygon, convert(-70.4015,37.95783333));
66 boost::geometry::append(polygon, convert(-70.625,37.87433333));
67 boost::geometry::append(polygon, convert(-71.13883333,37.30616667));
68 boost::geometry::append(polygon, convert(-71.55983333,36.5375));
69 boost::geometry::append(polygon, convert(-71.43366667,35.57633333));
70 boost::geometry::append(polygon, convert(-71.61733333,34.55166667));
71 boost::geometry::append(polygon, convert(-71.8725,33.90816667));
72 boost::geometry::append(polygon, convert(-72.28533333,33.3205));
73 boost::geometry::append(polygon, convert(-72.90083333,32.75516667));
74 boost::geometry::append(polygon, convert(-74.20033333,31.91883333));
75 boost::geometry::append(polygon, convert(-75.25333333,31.45233333));
76 boost::geometry::append(polygon, convert(-75.853,31.05266667));
77 boost::geometry::append(polygon, convert(-76.523,30.757));
78 boost::geometry::append(polygon, convert(-77.30483333,30.208));
79 boost::geometry::append(polygon, convert(-76.94033333,29.4195));
80 boost::geometry::append(polygon, convert(-76.79333333,28.60983333));
81 boost::geometry::append(polygon, convert(-76.66833333,28.2855));
82 boost::geometry::append(polygon, convert(-79.18716667,28.28533333));
83 boost::geometry::append(polygon, convert(-79.4725,27.876));
84 boost::geometry::append(polygon, convert(-79.523,27.4335));
85 boost::geometry::append(polygon, convert(-79.56966667,27.26883333));
86 boost::geometry::append(polygon, convert(-79.576,27.19233333));
87 boost::geometry::append(polygon, convert(-79.5865,27.09316667));
88 boost::geometry::append(polygon, convert(-79.58616667,27.00466667));
89 boost::geometry::append(polygon, convert(-79.57316667,26.91933333));
90 boost::geometry::append(polygon, convert(-79.57116667,26.893));
91 boost::geometry::append(polygon, convert(-79.54016667,26.75766667));
92 boost::geometry::append(polygon, convert(-79.53716667,26.73833333));
93 boost::geometry::append(polygon, convert(-79.53666667,26.72333333));
94 boost::geometry::append(polygon, convert(-79.5335,26.68533333));
95 boost::geometry::append(polygon, convert(-79.522,26.6355));
96 boost::geometry::append(polygon, convert(-79.51766667,26.605));
97 boost::geometry::append(polygon, convert(-79.50833333,26.58683333));
98 boost::geometry::append(polygon, convert(-79.50766667,26.57516667));
99 boost::geometry::append(polygon, convert(-79.50633333,26.5685));
100 boost::geometry::append(polygon, convert(-79.5025,26.51866667));
101 boost::geometry::append(polygon, convert(-79.49216667,26.48416667));
102 boost::geometry::append(polygon, convert(-79.493,26.42183333));
103 boost::geometry::append(polygon, convert(-79.4925,26.38816667));
104 boost::geometry::append(polygon, convert(-79.49233333,26.38683333));
105 boost::geometry::append(polygon, convert(-79.52583333,26.3095));
106 boost::geometry::append(polygon, convert(-79.55283333,26.25433333));
107 boost::geometry::append(polygon, convert(-79.55383333,26.25216667));
108 boost::geometry::append(polygon, convert(-79.59216667,26.13483333));
109 boost::geometry::append(polygon, convert(-79.6015,26.1245));
110 boost::geometry::append(polygon, convert(-79.60583333,26.10983333));
111 boost::geometry::append(polygon, convert(-79.637,26.042));
112 boost::geometry::append(polygon, convert(-79.66716667,25.98833333));
113 boost::geometry::append(polygon, convert(-79.668,25.986));
114 boost::geometry::append(polygon, convert(-79.673,25.958));
115 boost::geometry::append(polygon, convert(-79.68433333,25.93633333));
116 boost::geometry::append(polygon, convert(-79.68966667,25.90066667));
117 boost::geometry::append(polygon, convert(-79.691,25.88733333));
118 boost::geometry::append(polygon, convert(-79.69316667,25.859));
119 boost::geometry::append(polygon, convert(-79.70266667,25.82216667));
120 boost::geometry::append(polygon, convert(-79.70383333,25.804));
121 boost::geometry::append(polygon, convert(-79.704,25.80333333));
122 boost::geometry::append(polygon, convert(-79.70733333,25.771));
123 boost::geometry::append(polygon, convert(-79.7075,25.76933333));
124 boost::geometry::append(polygon, convert(-79.70983333,25.72333333));
125 boost::geometry::append(polygon, convert(-79.708,25.70516667));
126 boost::geometry::append(polygon, convert(-79.7045,25.67283333));
127 boost::geometry::append(polygon, convert(-79.7045,25.62066667));
128 boost::geometry::append(polygon, convert(-79.7045,25.618));
129 boost::geometry::append(polygon, convert(-79.702,25.51716667));
130 boost::geometry::append(polygon, convert(-79.70183333,25.45983333));
131 boost::geometry::append(polygon, convert(-79.702,25.40066667));
132 boost::geometry::append(polygon, convert(-79.70333333,25.37016667));
133 boost::geometry::append(polygon, convert(-79.70133333,25.35483333));
134 boost::geometry::append(polygon, convert(-79.68733333,25.27533333));
135 boost::geometry::append(polygon, convert(-79.6885,25.2595));
136 boost::geometry::append(polygon, convert(-79.6885,25.17316667));
137 boost::geometry::append(polygon, convert(-79.68933333,25.1585));
138 boost::geometry::append(polygon, convert(-79.69083333,25.1505));
139 boost::geometry::append(polygon, convert(-79.70483333,25.05916667));
140 boost::geometry::append(polygon, convert(-79.70933333,25.04333333));
141 boost::geometry::append(polygon, convert(-79.73416667,25.005));
142 boost::geometry::append(polygon, convert(-79.74133333,24.98383333));
143 boost::geometry::append(polygon, convert(-79.7595,24.92133333));
144 boost::geometry::append(polygon, convert(-79.82066667,24.73633333));
145 boost::geometry::append(polygon, convert(-79.823,24.71733333));
146 boost::geometry::append(polygon, convert(-79.84166667,24.706));
147 boost::geometry::append(polygon, convert(-79.87616667,24.69116667));
148 boost::geometry::append(polygon, convert(-79.993,24.63866667));
149 boost::geometry::append(polygon, convert(-80.0585,24.6045));
150 boost::geometry::append(polygon, convert(-80.20716667,24.553));
151 boost::geometry::append(polygon, convert(-80.22016667,24.55083333));
152 boost::geometry::append(polygon, convert(-80.25266667,24.5355));
153 boost::geometry::append(polygon, convert(-80.27583333,24.52116667));
154 boost::geometry::append(polygon, convert(-80.29116667,24.5095));
155 boost::geometry::append(polygon, convert(-80.32016667,24.50233333));
156 boost::geometry::append(polygon, convert(-80.324,24.501));
157 boost::geometry::append(polygon, convert(-80.35083333,24.48966667));
158 boost::geometry::append(polygon, convert(-80.40583333,24.46966667));
159 boost::geometry::append(polygon, convert(-80.41833333,24.46766667));
160 boost::geometry::append(polygon, convert(-80.45333333,24.45383333));
161 boost::geometry::append(polygon, convert(-80.48833333,24.43833333));
162 boost::geometry::append(polygon, convert(-80.537,24.41783333));
163 boost::geometry::append(polygon, convert(-80.6015,24.38833333));
164 boost::geometry::append(polygon, convert(-80.64266667,24.37216667));
165 boost::geometry::append(polygon, convert(-80.6585,24.36783333));
166 boost::geometry::append(polygon, convert(-80.7535,24.32183333));
167 boost::geometry::append(polygon, convert(-80.75783333,24.31933333));
168 boost::geometry::append(polygon, convert(-80.77483333,24.30633333));
169 boost::geometry::append(polygon, convert(-80.77566667,24.30583333));
170 boost::geometry::append(polygon, convert(-80.99116667,24.1585));
171 boost::geometry::append(polygon, convert(-80.99183333,24.158));
172 boost::geometry::append(polygon, convert(-81.01783333,24.143));
173 boost::geometry::append(polygon, convert(-81.02516667,24.13833333));
174 boost::geometry::append(polygon, convert(-81.02616667,24.13766667));
175 boost::geometry::append(polygon, convert(-81.051,24.12133333));
176 boost::geometry::append(polygon, convert(-81.15083333,24.03666667));
177 boost::geometry::append(polygon, convert(-81.186,23.99333333));
178 boost::geometry::append(polygon, convert(-81.20916667,23.922));
179 boost::geometry::append(polygon, convert(-81.32383333,23.892));
180 boost::geometry::append(polygon, convert(-81.49316667,23.842));
181 boost::geometry::append(polygon, convert(-81.65983333,23.83366667));
182 boost::geometry::append(polygon, convert(-81.8265,23.8175));
183 boost::geometry::append(polygon, convert(-82.00183333,23.8175));
184 boost::geometry::append(polygon, convert(-82.15983333,23.82366667));
185 boost::geometry::append(polygon, convert(-82.40983333,23.85233333));
186 boost::geometry::append(polygon, convert(-82.65983333,23.85233333));
187 boost::geometry::append(polygon, convert(-82.80883333,23.82366667));
188 boost::geometry::append(polygon, convert(-82.85183333,23.822));
189 boost::geometry::append(polygon, convert(-82.99316667,23.82066667));
190 boost::geometry::append(polygon, convert(-83.24316667,23.82533333));
191 boost::geometry::append(polygon, convert(-83.42483333,23.85366667));
192 boost::geometry::append(polygon, convert(-83.55016667,23.87116667));
193 boost::geometry::append(polygon, convert(-83.68916667,23.90066667));
194 boost::geometry::append(polygon, convert(-83.80183333,23.9245));
195 boost::geometry::append(polygon, convert(-83.99316667,23.973));
196 boost::geometry::append(polygon, convert(-84.48783333,24.15616667));
197 boost::geometry::append(polygon, convert(-84.63983333,24.22));
198 boost::geometry::append(polygon, convert(-84.76783333,24.2735));
199 boost::geometry::append(polygon, convert(-84.99316667,24.38833333));
200 boost::geometry::append(polygon, convert(-85.10316667,24.4395));
201 boost::geometry::append(polygon, convert(-85.52566667,24.64283333));
202 boost::geometry::append(polygon, convert(-85.7185,24.73616667));
203 boost::geometry::append(polygon, convert(-85.99316667,24.89283333));
204 boost::geometry::append(polygon, convert(-86.50116667,25.174));
205 boost::geometry::append(polygon, convert(-86.35233333,25.71916667));
206 boost::geometry::append(polygon, convert(-86.1075,26.21883333));
207 boost::geometry::append(polygon, convert(-86.21916667,26.45366667));
208 boost::geometry::append(polygon, convert(-86.61783333,26.55766667));
209 boost::geometry::append(polygon, convert(-87.48916667,26.02066667));
210 boost::geometry::append(polygon, convert(-88.55,25.70416667));
211 boost::geometry::append(polygon, convert(-90.49016667,25.77566667));
212 boost::geometry::append(polygon, convert(-90.78416667,25.73983333));
213 boost::geometry::append(polygon, convert(-91.875,25.85716667));
214 boost::geometry::append(polygon, convert(-93.05983333,26.29066667));
215 boost::geometry::append(polygon, convert(-93.55866667,25.9925));
216 boost::geometry::append(polygon, convert(-95.6545,26.00533333));
217 boost::geometry::append(polygon, convert(-96.805,26.0055));
218 boost::geometry::append(polygon, convert(-96.92133333,25.972));
219 boost::geometry::append(polygon, convert(-96.9735,25.96916667));
220 boost::geometry::append(polygon, convert(-97.02566667,25.95966667));
221 boost::geometry::append(polygon, convert(-97.08466667,25.95683333));
222 boost::geometry::append(polygon, convert(-97.13683333,25.954));
223 boost::geometry::append(polygon, convert(-97.14116667,25.954));
224 boost::geometry::append(polygon, convert(-97.81605295593207,27.01607612255437));
225 boost::geometry::append(polygon, convert(-91.76985060722265,35.3356681601088));
226 boost::geometry::append(polygon, convert(-84.89571294528193,41.0738644453726));
227 boost::geometry::append(polygon, convert(-70.34043050675062,54.64100005535186));
228 boost::geometry::append(polygon, convert(-64.156,60));
229 std::cout << "(-78.1239,25.9556) in polygon? " << boost::geometry::within(convert(-78.1239,25.9556),polygon) << std::endl;
230 std::cout << "(-78.1239,25.95) in polygon? " << boost::geometry::within(convert(-78.1239,25.95),polygon) << std::endl;
231 return 0;
232}