我正在开发一个有地图的应用程序。我正在使用ArcGIS SDK显示地图。在这里,我试图显示地图加载时的当前位置。我已将纬度和经度传递给ArcGIS函数的x
和y
参数。这是该功能的代码,
let lat = gpsLocation.location?.coordinate.latitude
let lng = gpsLocation.location?.coordinate.longitude
print(lat)
print(lng)
//zoom to custom view point
self.mapView.setViewpointCenter(AGSPoint(x: lat!, y: lng!, spatialReference: AGSSpatialReference.webMercator()), scale: 4e7, completion: nil)
self.mapView.interactionOptions.isMagnifierEnabled = true
但是当我运行该应用程序时,它在地图上显示了错误的位置。它指向错误的位置。我也印了经纬度。它们是正确的,但位置显示在地图中是错误的。如何获取地图以加载当前位置?
这是加载时显示的位置
答案 0 :(得分:0)
您使用的是纬度和经度,即一定的度数(可能在WGS 1984中),但是您要告诉ArcGIS它们在Web Mercator中,即若干米。肯定会导致您看到的行为。
要解决此问题,只需将webMercator()
替换为WGS84()
。
此外,您正在混合纬度和经度。纬度是y,经度是x,反之亦然。
总而言之,将您的setViewpointCenter
呼叫替换为:
self.mapView.setViewpointCenter(
AGSPoint(x: lon!, y: lat!, spatialReference: AGSSpatialReference.WGS84()),
scale: 4e7,
completion: nil
)