iOS中ArcGIS Maps中的当前位置问题

时间:2018-07-05 14:05:52

标签: ios swift arcgis

我正在开发一个有地图的应用程序。我正在使用ArcGIS SDK显示地图。在这里,我试图显示地图加载时的当前位置。我已将纬度和经度传递给ArcGIS函数的xy参数。这是该功能的代码,

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

但是当我运行该应用程序时,它在地图上显示了错误的位置。它指向错误的位置。我也印了经纬度。它们是正确的,但位置显示在地图中是错误的。如何获取地图以加载当前位置?

这是加载时显示的位置

enter image description here

1 个答案:

答案 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
)