IOS SwiftUI – Как размещать маркеры на изображениях, таких как карты GoogleIOS

Программируем под IOS
Ответить
Anonymous
 IOS SwiftUI – Как размещать маркеры на изображениях, таких как карты Google

Сообщение Anonymous »

Привет, я работаю над iOS-версией проекта, который я сделал для Android, и пытаюсь разместить маркеры/аннотации на изображении. Мне удалось получить некоторую помощь по версии для Android, но я не совсем понимаю математику и то, как сделать то же самое в SwiftUI.
Сейчас это то, что я настроил в Swift. -

Код: Выделить всё

import SwiftUI
import Kingfisher

struct ImageView: View {
@StateObject var viewModel = viewModel()
let index: Int
@State var showSheet: Bool = false
@State var show: Bool = false
@State var currentAnnotationSelected: SelectedAnnotationModel?
@State var showDialog: Bool = false
@State var note: String = ""
@State var localY: CGFloat = 0
@State var globalY: CGFloat = 0
@State var localX: CGFloat = 0
@State var globalX: CGFloat = 0
var annotationIndex: Int = 0

var body: some View {
VStack {

KFImage.url(URL(string: viewModel.uri ?? ""))
.placeholder {ProgressView()}
.loadDiskFileSynchronously()
.cacheMemoryOnly()
.gesture(DragGesture(minimumDistance: 0, coordinateSpace: .local).onEnded { dragGesture in
self.localY = dragGesture.location.y
self.localX = dragGesture.location.x
showSheet = true
})
}
.sheet(isPresented: $showSheet) {
VStack {
AnnotationNote(x: Int(self.localX), y: Int(self.localY))
}
.presentationDetents([.medium])
.presentationDragIndicator(.visible)

}
.overlay {
VStack{
if(viewModel.annotations != [] && viewModel.annotations  != nil) {

ForEach(Array((viewModel.annotations.enumerated())!), id: \.offset) { index, annotation in

Circle()
.frame(width: 15, height: 15)
.position(x: 100, y: 100)
//.position(x: CGFloat(annotation.coordinateX), y: CGFloat(annotation.coordinateY))
.onTapGesture {
currentAnnotationSelected = SelectedAnnotationModel(index: index, details: annotation)
self.showSheet = true
}
}
}
}
}
}
}
Однако у меня возникают две проблемы: 1. Маркеры не показывают то место, где я щелкнул, и 2. Мне нужны версии для Android и iOS, чтобы корректно отображать маркеры для одного и того же изображения на любом устройство, поэтому я не уверен, как быстро выполнить те же вычисления? - Версия для Android

Подробнее здесь: https://stackoverflow.com/questions/792 ... oogle-maps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»