在 IOS 中使用 ArcGIS 的当前 GPS 位置
Current GPS location using ArcGIS in IOS
我明白
mapView.locationDisplay.startDataSource()
将在arcGIS地图中定位当前位置标记,可以通过在项目中添加名为LocationDisplay.png的图像文件来更改当前位置标记的图像。
默认情况下,当前位置图标为蓝色圆圈图标。默认情况下,此图标包含在一个圆圈内(有动画)。
当我们将地图放大到最大比例时,蓝色圆圈图标周围的封闭圆圈也会增加。
更改图标图像没有帮助,因为它只会将蓝色圆圈图标更改为我们更改的图像,但封闭的圆圈仍然存在。
请建议我们是否有任何选项可以删除当前位置图标周围的动画。
P.S:我知道我们可以从 coreLocation 获取当前位置并可以放置自定义标记。欢迎任何其他更好的可能性。
谢谢。
accuracySymbol 是用于显示位置精度的符号。
mapView.locationDisplay.accuracySymbol = [AGSSimpleFillSymbol simpleFillSymbolWithColor:[UIColor clearColor] outlineColor:[UIColor clearColor]];
这是 Objective-C 代码。 (请转换为swift。)
也可以像下面苹果地图提供的delegate方法一样追踪当前位置
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
并追踪到这里
- (void)registerArcgisAsObserver {
[ self.viewEvacuation.locationDisplay addObserver:self
forKeyPath:@"location"
options:(NSKeyValueObservingOptionNew)
context:NULL];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([keyPath isEqual:@"location"] ) {
NSLog(@"Location updated to %@", [self.mapview.locationDisplay mapLocation]);
}
}
我明白
mapView.locationDisplay.startDataSource()
将在arcGIS地图中定位当前位置标记,可以通过在项目中添加名为LocationDisplay.png的图像文件来更改当前位置标记的图像。
默认情况下,当前位置图标为蓝色圆圈图标。默认情况下,此图标包含在一个圆圈内(有动画)。 当我们将地图放大到最大比例时,蓝色圆圈图标周围的封闭圆圈也会增加。 更改图标图像没有帮助,因为它只会将蓝色圆圈图标更改为我们更改的图像,但封闭的圆圈仍然存在。 请建议我们是否有任何选项可以删除当前位置图标周围的动画。
P.S:我知道我们可以从 coreLocation 获取当前位置并可以放置自定义标记。欢迎任何其他更好的可能性。
谢谢。
accuracySymbol 是用于显示位置精度的符号。
mapView.locationDisplay.accuracySymbol = [AGSSimpleFillSymbol simpleFillSymbolWithColor:[UIColor clearColor] outlineColor:[UIColor clearColor]];
这是 Objective-C 代码。 (请转换为swift。)
也可以像下面苹果地图提供的delegate方法一样追踪当前位置
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
并追踪到这里
- (void)registerArcgisAsObserver {
[ self.viewEvacuation.locationDisplay addObserver:self
forKeyPath:@"location"
options:(NSKeyValueObservingOptionNew)
context:NULL];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([keyPath isEqual:@"location"] ) {
NSLog(@"Location updated to %@", [self.mapview.locationDisplay mapLocation]);
}
}