| 198 | } |
| 199 | |
| 200 | OsmOAuth::Response ServerApi06::GetXmlFeaturesAtLatLon(double lat, double lon, double radiusInMeters) const |
| 201 | { |
| 202 | double const latDegreeOffset = radiusInMeters * mercator::Bounds::kDegreesInMeter; |
| 203 | double const minLat = std::max(-90.0, lat - latDegreeOffset); |
| 204 | double const maxLat = std::min(90.0, lat + latDegreeOffset); |
| 205 | double const cosL = std::max(cos(math::DegToRad(std::max(fabs(minLat), fabs(maxLat)))), 0.00001); |
| 206 | double const lonDegreeOffset = radiusInMeters * mercator::Bounds::kDegreesInMeter / cosL; |
| 207 | double const minLon = std::max(-180.0, lon - lonDegreeOffset); |
| 208 | double const maxLon = std::min(180.0, lon + lonDegreeOffset); |
| 209 | return GetXmlFeaturesInRect(minLat, minLon, maxLat, maxLon); |
| 210 | } |
| 211 | |
| 212 | OsmOAuth::Response ServerApi06::GetXmlFeaturesAtLatLon(ms::LatLon const & ll, double radiusInMeters) const |
| 213 | { |