gpt4 book ai didi

ipad - 使用 WhirlyGlobeComponet 在 Globe 上创建纬度线时出现问题

转载 作者:行者123 更新时间:2023-12-04 04:47:28 25 4
gpt4 key购买 nike

我正在开发 WhirlyGlobe 组件测试器应用程序(mousebird 团队在 ios 中开发的地球应用程序的伟大框架)并尝试创建纬度和经度。我使用以下方法在地球上创建了经度:- (void)addGreatCircles:(LocationInfo *)locations len:(int)len stride:(int)stride offset:(int)offset
并分配数组中的值:LocationInfo locations[NumLocations] 但是当我尝试在地球上创建纬度时 通过在 as 中给出坐标:

LocationInfo locations[NumLocations] = {
{"twenty five",0, 180},
{"twenty six",0, -10}
// {"three",30,180.0},
// {"four",30,0},
// {"five",60, 180},
//{"six",60, 0},
}

儿子……我只能得到地球上一半的纬度线。我不知道为什么会出现这个问题。这是由于 OpenGL 还是什么原因。请有人帮我正确地做。
当我给出起点 (0,-180) 终点 (0,0) 时的屏幕截图出现,如 IMAGES-1,2 所示:

图像1
enter image description here

图像 2
enter image description here

我需要的是在地球上绘制的完整纬度线。使用起点(0,0)到终点(0,360)给我一个空白输出(地球上没有画线)。
我已经尝试过起点(0,10)终点(0,-10),以便该线覆盖整个地球但还没有成功。请帮助大家!

最佳答案

首先,您需要移动到 github 上的开发分支。那是即将发布的 2.2 版。

我在测试应用程序中添加了一个示例,它正是这样做的。

enter image description here

这是我们如何实现的。

- (void)addLinesLon:(float)lonDelta lat:(float)latDelta color:(UIColor *)color
{
NSMutableArray *vectors = [[NSMutableArray alloc] init];
NSDictionary *desc = @{kMaplyColor: color, kMaplySubdivType: kMaplySubdivSimple, kMaplySubdivEpsilon: @(0.001), kMaplyVecWidth: @(4.0), kMaplyDrawPriority: @(1000)};
// Longitude lines
for (float lon = -180;lon < 180;lon += lonDelta)
{
MaplyCoordinate coords[3];
coords[0] = MaplyCoordinateMakeWithDegrees(lon, -90);
coords[1] = MaplyCoordinateMakeWithDegrees(lon, 0);
coords[2] = MaplyCoordinateMakeWithDegrees(lon, +90);
MaplyVectorObject *vec = [[MaplyVectorObject alloc] initWithLineString:coords numCoords:3 attributes:nil];
[vectors addObject:vec];
}
// Latitude lines
for (float lat = -90;lat < 90;lat += latDelta)
{
MaplyCoordinate coords[5];
coords[0] = MaplyCoordinateMakeWithDegrees(-180, lat);
coords[1] = MaplyCoordinateMakeWithDegrees(-90, lat);
coords[2] = MaplyCoordinateMakeWithDegrees(0, lat);
coords[3] = MaplyCoordinateMakeWithDegrees(90, lat);
coords[4] = MaplyCoordinateMakeWithDegrees(+180, lat);
MaplyVectorObject *vec = [[MaplyVectorObject alloc] initWithLineString:coords numCoords:5 attributes:nil];
[vectors addObject:vec];
}

latLonObj = [baseViewC addVectors:vectors desc:desc];
}

WhirlyGlobe-Maply 2.2 为矢量渲染和分割添加了一些技巧。您现在可以告诉工具包将行分割为一个 epsilon 以使其可接受。我们还可以将一个东西渲染在另一个东西之上,而不必担心 z 缓冲。所以你去了,现在很容易。

这里唯一真正的技巧是我们必须将线条分解成碎片。我们至少需要三个点,否则分割逻辑只会检测到退化的情况。纬度的 5 条点线适用于一些错误测试逻辑。

关于ipad - 使用 WhirlyGlobeComponet 在 Globe 上创建纬度线时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com