作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用适用于 iOS 的 Google Map SDK。我正在驾驶模式下绘制折线。
但是当我停下来然后缩放谷歌地图时,我的当前位置光标会自动移动并重新绘制之字形多段线,因为之前绘制的所有多段线都会重叠并且多段线会完全改变。当我进入后台并开车时会发生同样的事情.
我能知道为什么会这样吗?以及如何在同一路径上同时在驾驶和步行模式下绘制平滑的多段线。
我的代码-
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
pointString=[NSString stringWithFormat:@"%f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude];
CLLocationDistance kilometers = [newLocation distanceFromLocation:oldLocation] / 1000;
NSLog(@"Distance Travelled in Kilometer :%f",kilometers);
[self.points addObject:pointString];
GMSMutablePath *path = [GMSMutablePath path];
for (int i=0; i<self.points.count; i++)
{
NSArray *latlongArray = [[self.points objectAtIndex:i]componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]];
[path addLatitude:[[latlongArray objectAtIndex:0] doubleValue] longitude:[[latlongArray objectAtIndex:1] doubleValue]];
}
if (self.points.count>2)
{
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeColor = [UIColor blueColor];
polyline.strokeWidth = 5.f;
polyline.map = mapView_;
self.mapContainerView = mapView_;
}
}
如果 ,我保持在相同的位置,那么 Googme map Cursor 位置会自动移动并像这样绘制折线。
最佳答案
添加一个 NSLocationAlwaysUsageDescription 和一个 UIBackgroundModes -> "location" 到 Info.plist
和
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
manager.allowsBackgroundLocationUpdates = YES;
}
在允许后台位置更新之前: enter image description here
允许后台位置更新后: enter image description here
此行程的大部分内容已在后台绘制。
关于ios - 谷歌地图 SDK : Draw correct polyline in google map as Device Moves in Background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40150430/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!