In general it is not possible to rotate NMAMapMarker, Within HERE iOS Premium SDK the default Position indicator NMAPositionIndicator has the property tracksCourse which would rotate the indicator with the heading available from device.
The alternative would be to use NMAMapLocalModel as also mentioned in the comments above
...
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];
}
}