tap on map and get location

Will this version of MapKit allow you to tap on a map and get the location to say play a pin there?

Thanks

The onTapGesture that returns a point is deprecated and only return screen coord.

So my question is how to take the x,y and get Lat/Long

Multiline

VStack { Map() // .onTapGesture { // print("onTapGesture") // } // .onTapGesture(perform: { // print ("onTapperform") // }) .onTapGesture(perform: { pt in print(pt) })

BlockQuote

The current version I could add MKMapViewDelegate to my MapView

Multiline

@objc func handleTap(sender: UITapGestureRecognizer) { guard sender.state == .ended else { return } let locationInView = sender.location(in: parent.vm.mapView) let tappedCoordinate = parent.vm.mapView.convert(locationInView, toCoordinateFrom: parent.vm.mapView) }

BlockQuote

Can you provide me the iOS17/Xcode 15?

I put together a little "hello MapKit" application to try with.

The idea is click the "Place A Pin" button, then the next spot, on them map clicked, a pin should appear.

My issue is HOW TO convert the X/Y position of the screen to Lat/Lon potions for CLLocation object.

Any body know how to do this?

Here is the GITHub Repo https://github.com/tomha2014/LearnMapKitiOS17

Thanks

Apple answer my TSI and it worked :)

You need to wrap map with MapReader here is a simple example:

`

               MapReader{ reader in
                    Map(
                        position: $cameraProsition,
                        interactionModes: .all
                    )
                    {}
                    .onTapGesture(perform: { screenCoord in
                        pinLocation = reader.convert(screenCoord, from: .local)
                    })`

Here is my learning project: https://github.com/tomha2014/LearnMapKitiOS17.git

I figured out something similar, but I am having issues that the latitude of the coordinates seem to be wrong on macOS at least. Basically my markers appear a bit below the clicked coordinate (unless I turn off the toolbar, in which case they appear at the mouse location but we are talking about the top of the balloons, not the little bottom arrow part).

I suspect there is an issue with converting the coordinates using .local caused by the height off toolbars and the window frame.

It seems I get the correct latitude if I hide the toolbar and expand the window to fullscreen.

tap on map and get location
 
 
Q