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 获取纬度和经度?

Google Maps iOS SDK - 搜索地点

HERE Api - 使用 iOS/Android SDK 和 REST API 的不同路由结果

为 React Native 应用程序(iOS 和 Android)实现 Here SDK 的最佳方式是啥?

IOS/Swift:HERE MAPS 不清除地图上的地图标记(探索版)