| 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 |
|
|---|
| 6 | boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> > convert(const double longitude, const double latitude);
|
|---|
| 7 | boost::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 |
|
|---|
| 12 | typedef boost::geometry::model::point<double, 2, boost::geometry::cs::spherical_equatorial<boost::geometry::degree> > PointType;
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 | int 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 | }
|
|---|