Here maps iOS SDK:旋转Here maps中的标记
Posted
技术标签:
【中文标题】Here maps iOS SDK:旋转Here maps中的标记【英文标题】:Here maps iOS SDK: Rotate the marker in Here maps 【发布时间】:2019-10-18 11:30:49 【问题描述】:我正在使用 Here 地图开发车辆跟踪应用程序。我想根据车辆的转弯将Here中的标记图标(NMAMapMarker)旋转到特定的角度(类似于优步应用程序)。早些时候我使用谷歌地图,谷歌地图中的标记提供了一个旋转属性来将标记旋转到特定的角度。 Here地图中是否有类似的属性?
这个有更新吗 Nokia Here maps Navigation marker orientation
谢谢
【问题讨论】:
我不明白为什么这个问题会被否决。在对这个问题投反对票之前,请添加评论以启发我为什么你认为这个问题有资格投反对票。这肯定会在未来改善我的问题。 赞成,因为我认为这是相关问题 您可能投了反对票,因为该问题基本上与您链接的问题重复。 @Scriptable 我了解,但 3 年前在 android 中有人问过这个问题。此后,这里的地图为其 SDK 添加了新功能。 我没有投反对票,但你说你不明白为什么,所以我试图解释。 SDK 没有提供您想要的功能,因此您可能需要查看一些较旧的解决方法并提出您自己的 ios 解决方案 【参考方案1】:一般来说,不可能旋转 NMAMapMarker,在 HERE iOS Premium SDK 中,默认的位置指示器 NMAPositionIndicator 具有属性轨道课程,它将使用设备提供的标题旋转指示器。
替代方法是使用 NMAMapLocalModel,如上面的 cmets 中所述
...
NMAFloatMesh *mesh = [[NMAFloatMesh alloc] init];
float size = 5.0f;
float vertices[4 * 3] = -size / 2, -size/2, 0.0f,
-size/2, size / 2, 0.0f,
size / 2, -size/2, 0.0f,
size/2, size/2, 0.0f,
;
[mesh setVertices:vertices withCount:4];
float textureCoordinates[4 * 2] = 0.0, 0.0,
0.0, 1.0,
1.0, 0.0,
1.0, 1.0;
[mesh setTextureCoordinates:textureCoordinates withCount:4];
short triangles[2 * 3] = 2, 1, 0,
1, 2, 3;
[mesh setTriangles:triangles withCount:2];
_customPosIndicator = [[NMAMapLocalModel alloc] initWithMesh:mesh];
NMAImage *image = [NMAImage imageWithUIImage:[UIImage imageNamed:@"256-256-pin2.png"]];
/*
// To load svg file as a custom position indicator, please use this code.
NSBundle* main = [NSBundle mainBundle];
NSString *resourcePath = [main pathForResource:@"tracker-1093167" ofType:@"svg"];
NSLog(@"resourcePath: %@", resourcePath);
NSData *resourceData = [NSData dataWithContentsOfFile:resourcePath];
NMAImage *image = [NMAImage imageWithData:resourceData];
*/
[_customPosIndicator setAutoscaled:true];
[_customPosIndicator setTexture:image];
[_customPosIndicator setCoordinates:[NMAGeoCoordinates alloc]];
self.mapView.positionIndicator.displayObject = _customPosIndicator;
self.mapView.positionIndicator.visible = true;
...
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(nonnull CLHeading *)newHeading
NSLog(@"%f", newHeading.magneticHeading);
if(_customPosIndicator != nil)
[_customPosIndicator setYaw:newHeading.magneticHeading];
【讨论】:
以上是关于Here maps iOS SDK:旋转Here maps中的标记的主要内容,如果未能解决你的问题,请参考以下文章
HERE maps iOS SDK 是不是像 Android SDK 一样提供默认图标?
如何使用 Here Map for android SDK 获取纬度和经度?
HERE Api - 使用 iOS/Android SDK 和 REST API 的不同路由结果