Текущая проблема местоположения в ArcGIS Maps в iOS - PullRequest
0 голосов
/ 05 июля 2018

Я разрабатываю приложение, в котором у меня есть карта. Я использую ArcGIS SDK для показа карты. Здесь я пытаюсь показать свое текущее местоположение при загрузке карты. Я передал широту и долготу параметрам x и y функции ArcGIS. Это код для этой функции,

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

Но когда я запускаю приложение, оно показывает неправильное местоположение на карте. Это указывает на неправильное местоположение. Я также напечатал лат и lng. Они верны, но отображение местоположения на карте неверно. Как я могу получить карту для загрузки моего текущего местоположения?

Это то, что показывает местоположение при загрузке,

enter image description here

1 Ответ

0 голосов
/ 06 июля 2018

Вы используете широту и долготу, то есть несколько градусов (возможно, в WGS 1984), но затем вы сообщаете ArcGIS, что они находятся в Web Mercator, то есть на нескольких метрах. Это определенно приведет к тому поведению, которое вы видите.

Чтобы исправить это, просто замените webMercator() на WGS84().

Кроме того, вы смешиваете широту и долготу. Широта - это у, а долгота - это х, и у вас это наоборот.

Таким образом, замените ваш setViewpointCenter вызов следующим:

self.mapView.setViewpointCenter(
    AGSPoint(x: lon!, y: lat!, spatialReference: AGSSpatialReference.WGS84()),
    scale: 4e7,
    completion: nil
)
...