- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要在等角投影上绘制卫星观测区的边界。我找到了这个公式 (1) 和图:
sin(fi) = cos(alpha) * sin(fiSat) – sin(alpha) * sin (Beta) * cos (fiSat);
sin(lambda) = (cos(alpha) * cos(fiSat) * sin(lambdaSat)) / cos(asin(sin(fi))) +
(sin(alpha) * sin(Beta) * sin(fiSat) * sin(lambdaSat)) / cos(asin(sin(fi))) -
(sin(alpha) * cos(Beta) * cos(lambdaSat))/cos(asin(sin(fi)));
cos(lambda) = (cos(alpha) * cos(fiSat) * cos(lambdaSat)) / cos(asin(sin(fi))) +
(sin(alpha) * sin(Beta) * sin(fiSat) * cos(lambdaSat)) / cos(asin(sin(fi))) -
(sin(alpha) * cos(Beta) * sin(lambdaSat)) / cos(asin(sin(fi)));
地球各个平面的横截面:
与方程组(2)同图:
if sin(lambda) > 0, cos(lambda) > 0 then lambda = asin(sin(lambda));
if sin(lambda) > 0, cos(lambda) < 0 then lambda = 180 - asin(sin(lambda));
if sin(lambda) < 0, cos(lambda) < 0 then lambda = 180 - asin(sin(lambda));
if sin(lambda) < 0, cos(lambda) > 0 then lambda = asin(sin(lambda));
地球经度的引用角方案:
Where: alpha – polar angle;
fiSat, lambdaSat – latitude, longitude of satellite;
Beta – angle which change from 0 to 2*Pi and help to draw the observation zone;
fi, lambda – latitude, longitude of point B on the border of observation zone;
我从 0 到 2*Pi 循环重复 (1) 和 (2) 两个公式来绘制观察区域的边界。但是在(2)方程组中我不太确定。
在 [-180;-90]、[-90;90]、[90;180] 区间内,区域绘制正确。
中心在 -35;45:
中心在 120;60:
中心在 -120;-25
但是在 -90 度和 90 度的边界上它变得凌乱:
中心在 -95;-50
中心在 95;30
你能帮我算一下公式(1)和(2)或者再写一个吗?
double deltaB = 1.0*M_PI/180;
observerZone.clear();
for (double Beta = 0.0; Beta <= (M_PI * 2) ; Beta += deltaB){
double sinFi = cos(alpha) * sin(fiSat) - sin(alpha) * sin(Beta) * cos(fiSat);
double sinLambda = (cos(alpha) * cos(fiSat) * sin(lambdaSat))/cos(asin(sinFi)) +
(sin(alpha) * sin(Beta) * sin(fiSat) * sin(lambdaSat))/cos(asin(sinFi)) -
(sin(alpha) * cos(Beta) * cos(lambdaSat))/cos(asin(sinFi));
double cosLambda = (cos(alpha) * cos(fiSat) * cos(lambdaSat))/cos(asin(sinFi)) +
(sin(alpha) * sin(Beta) * sin(fiSat) * cos(lambdaSat))/cos(asin(sinFi)) -
(sin(alpha) * cos(Beta) * sin(lambdaSat))/cos(asin(sinFi));
if (sinLambda > 0) {
if (cosLambda > 0 ){
sinLambda = asin(sinLambda);
sinFi = asin(sinFi);
}
else {
sinLambda = M_PI - asin(sinLambda);
sinFi = asin(sinFi);
}
}
else if (cosLambda > 0) {
sinLambda = asin(sinLambda);
sinFi = asin(sinFi);
}
else {
sinLambda = -M_PI - asin(sinLambda);
sinFi = asin(sinFi);
}
Point point;
point.latitude = qRadiansToDegrees(sinFi);
point.longitude = qRadiansToDegrees(sinLambda);
observerZone.push_back(point);
}
最佳答案
我解决了我的问题。 (1)式中计算cosLambda时应为+而不是-。
double cosLambda = (cos(alpha) * cos(fiSat) * cos(lambdaSat))/cos(asin(sinFi)) +
(sin(alpha) * sin(Beta) * sin(fiSat) * cos(lambdaSat))/cos(asin(sinFi)) +
(sin(alpha) * cos(Beta) * sin(lambdaSat))/cos(asin(sinFi));
抱歉打扰了。
关于c++ - 在等角投影上绘制卫星覆盖区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48211719/
尊敬的成员(member),我正在开发一个基本的 Google map 应用程序。我已经为这个应用程序实现了一些功能,如 GPS 检查、互联网检查、工作互联网检查等。我刚刚在顶部添加了一个选项菜单,其
如何检测基于 Android 的移动设备是否支持 glonass 功能? 最佳答案 这可能有点困难,也可能不是。这取决于 Android 平台的实现。 Google 提供的默认框架不携带除 GPS 以
我正在寻找一种在 Android 模拟器中模拟卫星存在的方法。我可以通过 telnet 提交 lon/lat 对作为“geo fix”并且在谷歌地图或类似应用程序中工作正常,或者通过扩展控件重播 .k
我需要监控用户的位置以获得纬度和经度,当我使用网络提供商或 gps 提供商时,它工作正常。但是当我使用这两个提供商时,我没有得到值(value)。任何人都请提供解决方案。正在搜索并尝试很多示例
phonegap 似乎不使用 GPS 卫星而是使用蜂窝网络的地理定位。我对精度不满意,总是在150-1000米之间。 GPS Activity Logo 也未显示。 有什么方法可以强制 Android
我正在尝试使用分段控制按钮更改 map 类型,我希望它可以通过 3 个选项更改 map 类型:标准、卫星和混合。到目前为止,我有这段代码,但是一旦选择了不同的 map 类型,什么也不会发生: @IBA
我想在 Android 中显示没有道路/城市/国家标签重叠的卫星 map View 。这是 Android 中的默认设置,我该怎么做。 我想显示图片中显示的两个 View 。我可以显示混合 View
如何在我的 iOS 应用程序上获取卫星 View ? Google SDK 网站上的代码不起作用。我正在运行最新版本的 Xcode。 如果我使用 Google SDK 网站上提供的代码,则会收到此错误
自去年以来,我一直在开发一个使用 Google MAP iOS SDK 的应用程序。应用程序为用户提供了在卫星 View 和普通 View 之间切换的灵 active 。直到 2 天前一切正常,突然我
我有一些非常高分辨率的航拍图像,我想在卫星 View basemap 上显示它们。我的图像足以生成缩放级别为 23 的图像。但是,Google 的卫星 View 只允许放大到级别 20。我知道一旦用户
我成功地在 MKAnnotationView 上设置了自定义图像来替换图钉(我使用了函数 setImage)。但它仅在 MKMapView 类型为“Standard”时有效。卫星和混合模式始终显示引脚
我遇到了无法在 Visual Studio 中构建新创建的 C++/CLI 类库项目的问题: 即使我没有进行任何更改,我在尝试编译时也会收到错误消息: Severity Code Descriptio
我已经尝试过请求、pydap、urllib 和 netcdf4,但在尝试下载以下 NASA 数据时总是出现重定向错误或权限错误: GLDAS_NOAH025SUBP_3H:GLDAS Noah 陆地表
不久前,我的 Android map 应用程序停止获取 Google 卫星图 block 。现在它已成为最重要的问题,我跟踪了代码并发现它创建了如下请求: http://khm3.google.com
许多问题看起来与我的相似,但我无法找到适合 R 的答案。 到目前为止,我以这种方式使用很棒的 R leaflet(和 ggmap)包: library(ggmap) library(leaflet)
众所周知,这些 map ,无论是常规街道 map 还是卫星 map ,在中国的特定地区都无法正确排列。那么哪个 map 排列正确,是卫星 map 还是默认街道 map ?一些网站表明卫星 map 是正
在 Android 2.3.4 Gingerbread 中通过默认浏览器进行地理定位是否存在公认的问题? 在 HTC G2 android 2.3.4 上,默认浏览器似乎不使用 GPS 卫星来确定位置
在苹果 map 应用程序中,如果您点击 MKPinAnnotation 标注,将显示以下 View 。我试图重新创建类似的东西,但我不确定如何实现卫星图像(我假设它是所选注释坐标上的 MKMapVie
请问如何在 Google Maps JavaScript API 中启用 3D 卫星 View ? 让我重复一遍! 3D! 请不要让我引用 45 度角 View ,那不是 3D! 您可以通过单击卫星
Openstreetmap (OSM) 的图块是否与 Google map (卫星 View )的图块兼容? 我的意思是兼容 - 是否可以使用编写的代码/逻辑来读取 OSM 图块以从 Google m
我是一名优秀的程序员,十分优秀!