正确的代码在解决方案中。我提到的下面的错误是在解决方案中发生的。
您好,我自己解决了这个问题,但这里是在地图套件中的区域顶部显示圆圈的代码。您只需提供一个州和城市,它就会在该区域的顶部放置一个圆圈。当我运行这段代码时,一切正常,但我在输出中得到了这个
“缺少 (6/6) 地面瓷砖的地面网格层的 MeshRenderables。瓷砖调试信息:(密钥:0.2.2.255 t:34 kt:0,有网格错误:0,MeshInstance 计数:1,PendingMaterial 计数:1,不可见 MeshInstances 计数:0 | 键:1.0.2.255 t:34 kt:0,有网格错误:0,MeshInstance 计数:2,PendingMaterial 数量:2,Invisible MeshInstances 数量:0 |"
如果有人知道如何获得此 ID,请感谢您的帮助。
import SwiftUI
import MapKit
struct MapView: UIViewRepresentable {
let region: MKCoordinateRegion
let circleRadius: CLLocationDistance
@Binding var regionToDisplay: MKCoordinateRegion?
func makeUIView(context: Context) -> MKMapView {
MKMapView()
}
func updateUIView(_ view: MKMapView, context: Context) {
view.setRegion(region, animated: true)
let circle = MKCircle(center: region.center, radius: circleRadius)
view.addOverlay(circle)
}
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.strokeColor = UIColor.black
let greenColorWithOpacity = UIColor.green.withAlphaComponent(0.5)
circleRenderer.fillColor = greenColorWithOpacity
circleRenderer.lineWidth = 3.0
return circleRenderer
}
}
import SwiftUI
import MapKit
struct MapView: UIViewRepresentable {
@State private var coordinate = CLLocationCoordinate2DMake(45.5202471, -122.6741949)
let city: String
let state: String
func makeUIView(context: Context) -> MKMapView {
let mapView = MKMapView()
mapView.delegate = context.coordinator
let geocoder = CLGeocoder()
let address = "\(city), \(state)"
geocoder.geocodeAddressString(address) { placemarks, error in
if let placemark = placemarks?.first, let location = placemark.location {
self.coordinate = location.coordinate
mapView.setCenter(self.coordinate, animated: true)
let region = MKCoordinateRegion(center: coordinate, latitudinalMeters: 10000, longitudinalMeters: 10000)
mapView.setRegion(region, animated: true)
let regionRadius = 3500.0
let circle = MKCircle(center: coordinate, radius: regionRadius)
mapView.addOverlay(circle)
}
}
return mapView
}
func updateUIView(_ uiView: MKMapView, context: Context) {}
func makeCoordinator() -> Coordinator {
Coordinator()
}
class Coordinator: NSObject, MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let circle = overlay as? MKCircle {
let circleRenderer = MKCircleRenderer(circle: circle)
circleRenderer.strokeColor = UIColor.black
circleRenderer.fillColor = UIColor.green.withAlphaComponent(0.5)
circleRenderer.lineWidth = 1.0
return circleRenderer
}
return MKOverlayRenderer(overlay: overlay)
}
}
}