我的应用程序获取以下覆盖区域中的数据。我想使用这些边界值在地图上绘制矩形。你有什么主意吗?提前致谢
左上边界:30.439217,-95.899668;
右上边界:30.443953,-94.685679;
左按钮边界:28.930662,-95.908595;
右臀边界:28.930061,-94.690486;
我有一些坐标,它总是在海洋中的某个地方.我需要一种方法将坐标转换为一个字符串,告诉坐标落在哪个海洋/海洋.有没有方便的方法呢?
谢谢
我需要使用CLGeocoder 而不是 Google API 对大量地址进行地理编码.
我的问题是我的代码只为下面数组中的第一个地址添加了注释.但是,函数被调用适当的次数 - 在为所有地址调用函数之后,块只运行第一个地址:
- (void)mapPoints {
NSString *foo = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"names%d", self.indexOfSchool] ofType:@"plist"];
NSArray *description = [NSArray arrayWithContentsOfFile:foo];
NSString *bar = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d1", self.indexOfSchool] ofType:@"plist"];
NSArray *details = [NSArray arrayWithContentsOfFile:bar];
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d0", self.indexOfSchool] ofType:@"plist"];
NSArray *addresses = [NSArray arrayWithContentsOfFile:path];
self.saved = [NSMutableArray alloc] init];
for (int q = 0; q < addresses.count; q+= 20) {
[self annotate:[addresses objectAtIndex:q] detail:[details objectAtIndex:q] andDesc:[description objectAtIndex:q]];
}
}
see updated …Run Code Online (Sandbox Code Playgroud) 我有一个带有圆形叠加层的地图,它总是从 CGPathContainsPoint 方法返回 false。我是否传入了错误的 tapPoint 值?
func didTapMap(gestureRecognizer: UIGestureRecognizer) {
let tapPoint: CGPoint = gestureRecognizer.locationInView(map)
NSLog("%@,%@",tapPoint.x, tapPoint.y)
for overlay in self.map.overlays{
if (overlay.isKindOfClass(MKCircle))
{
let circle = overlay as MKCircle
let circleRenderer:MKCircleRenderer = map.rendererForOverlay(circle) as MKCircleRenderer
circleRenderer.invalidatePath()
let mapCoordinateIsInCircle = CGPathContainsPoint(circleRenderer.path, nil, tapPoint, false)
if (mapCoordinateIsInCircle == true)
{
NSLog("tapped in circle");
break
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我按照关于如何使用MapKit的教程进行操作,但是我无法完成本教程的前几个步骤.我检查了其他教程,他们都有完全相同的初始步骤.
但是我得到一个警告,ViewController是模块Mapkit的一部分而忽略了MapKit
然后我得到一个错误:使用未声明的类型MKMapView - 这很可能是由于MapKit没有被导入造成的.
这是错误和代码的屏幕截图:
我相信我正确地遵循了教程步骤.
任何想法,我做错了什么?
我正在评估从 MapKit 切换到 Mapbox。
我已经找到了所有函数的等效项,除了MKUserTrackingBarButtonItem.
let trackingButton = MKUserTrackingBarButtonItem(mapView: map)
Run Code Online (Sandbox Code Playgroud)
有没有办法为 Mapbox iOS SDK 创建这个按钮?
我在 Mapbox 文档中没有找到类似的东西,我不能继续使用这个函数,因为它需要一个MKMapView.
提前致谢。
我想知道如何annotation在拖动标题时更新我的标题,因为所有annotation属性都是get唯一的。
我尝试过的代码:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, didChange newState: MKAnnotationViewDragState, fromOldState oldState: MKAnnotationViewDragState) {
switch (newState) {
case .starting:
//view.dragState = .dragging
print("dragging.....")
case .ending, .canceling:
// view.dragState = .none
let lat = view.annotation?.coordinate.latitude
let long = view.annotation?.coordinate.longitude
let coordinates = CLLocationCoordinate2D(latitude: lat!, longitude: long!)
print(" pin lat \(lat) long \(long)")
//Error here - title is get only property
view.annotation?.title = "New Location"
default: break
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码可以检索我存储在 Google Firestore 中的坐标:
let locationsRef = db.collection("locatioInfo")
locationsRef.getDocuments { (querySnapshot, err) in
if let err = err {
print("Error receiving Firestore snapshot: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
}
}
}
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
location1 => ["geopoint": <FIRGeoPoint: (50.086421, 14.452333)>]
location2 => ["geopoint": <FIRGeoPoint: (50.086442, 14.452268)>]
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何将获取的数据FIRGeoPoints转换为CLLocationCoordinates2D或简单地转换为:如何使用这些坐标并将它们显示在地图上?
我有一个MKAnnotationView已经设置好的广告,将它用于硬编码坐标,现在我需要显示获取的坐标。希望这足够清楚,提前致谢。
我试图在地图上画一个圆圈,当用户选择选项 1 时,圆圈填充为蓝色,当用户选择选项 2 时,整个地图将填充为蓝色,而圆圈区域为无色。这怎么可能?
`func addRadiusOverlay(forGeotification geotification: Geotification) {
mapView?.addOverlay(MKCircle(center: geotification.coordinate, radius: 300))
}`
`func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKCircle {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.lineWidth = 5.0
circleRenderer.strokeColor = UIColor(red: 0/255, green: 122/255, blue: 255/255, alpha: 1.0)
circleRenderer.fillColor = circleRenderer.strokeColor!.withAlphaComponent(0.1)
return circleRenderer
}
return MKOverlayRenderer(overlay: overlay)
}`
Run Code Online (Sandbox Code Playgroud) mapkit ×10
ios ×8
swift ×5
swift2 ×2
cocoa-touch ×1
compass ×1
firebase ×1
google-maps ×1
mapbox ×1
mkoverlay ×1
objective-c ×1
swift3 ×1
swift4 ×1