在目标C(我没有经验)你可以用纬度和经度初始化一个CLLocation对象,如下所示:
CLLocation *myLocation = [[CLLocation alloc] initWithLatitude:your_latitiude_value longitude:your_longitude_value];
Run Code Online (Sandbox Code Playgroud)
但是我如何在Swift中做到这一点?
我试过这个,
let loc_coords = CLLocationCoordinate2D(latitude: your_latitiude_value, longitude: your_longitude_value)
let loc = CLLocation().coordinate(loc_coords)
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
无法使用类型'(CLLocationCoordiate2D)'的参数列表调用"coordinate"
我需要它作为CLLocation对象,因为我想在locationManager中使用distanceFromLocation方法.
希望你能帮忙,谢谢!
latitude-longitude cllocation cllocationdistance cllocationcoordinate2d swift
我有一个我想要调用的方法但是当我回到地图的中心时,它处于CLLocationCoordinate2D类型.
如何将CLLocationCoordinate2D的结果放入CLLocation?
使用Firebase作为我的后端,我有一系列的经纬度坐标字符串,如何将它们转换为CLLocationCoordinate2D以便我可以使用它们进行注释?以下是每次更新时从Firebase获取信息的代码
var UpdateRef = Firebase(url:"https://ici.firebaseio.com/users")
UpdateRef.observeEventType(.ChildChanged, withBlock: { (snapshot) in
let MomentaryLatitude = snapshot.value["latitude"] as? String
let MomentaryLongitude = snapshot.value["longitude"] as? String
let ID = snapshot.value["ID"] as? String
println("\(MomentaryLatitude)")
var Coordinates = CLLocationCoordinate2D(latitude: MomentaryLatitude as
CLLocationDegrees, longitude: MomentaryLongitude as CLLocationDegrees)
}
Run Code Online (Sandbox Code Playgroud)
最后一行不起作用,我应该使用什么呢?
我想将lat lon转换为CLLocationCoordinate2D
.
self.currentLocation = {.latitude = 0.0, .longitude = 0.0};
Run Code Online (Sandbox Code Playgroud)
这给了我错误"预期的表达".
我究竟做错了什么?
我有一个MKMapView
,有一个UISearchBar
在上面,我希望用户能够键入一个地址,并找到该地址并在其上放置一个图钉.我不知道的是如何将地址字符串转换为经度和纬度,所以我可以创建一个CLLocation
对象.有谁知道我怎么做到这一点?
我正在使用storyboard在视图控制器中创建地图视图.
当我使用以下代码时.
-(void) mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
CLLocationDistance distance = 1000;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate,
distance,
distance);
MKCoordinateRegion adjusted_region = [self.mapView regionThatFits:region];
[self.mapView setRegion:adjusted_region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在美国加利福尼亚州旧金山绘制一个点.该
userLocation
坐标是预定值MapKit.h
框架.现在我创建一个
-(void) mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
CLLocationDistance distance = 1000;
CLLocationCoordinate2D myCoordinate;
myCoordinate.latitude = 13.04016;
myCoordinate.longitude = 80.243044;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(myCoordinate,
distance,
distance);
MKCoordinateRegion adjusted_region = [self.mapView regionThatFits:region];
[self.mapView setRegion:adjusted_region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这里,显示具有中心坐标的区域.但是,在坐标位置没有绘制点.
如何在该坐标位置绘制点或注释?
我需要弄清楚如何设置MKMapSnapshotterOptions来拍摄与地球多边形区域相关的空中/卫星图像的快照.
填写'region','scale','size'和'mapType'属性是微不足道的,因为我有一个MKPolygon可以使用.棘手的部分是设置'相机' - 在我的特定情况下,我使用MKMapSnapshotter独立于MKMapView(实际上,甚至不在主线程上).
但是,我更倾向于定位快照,使其符合基于非零标题的多边形边界 - 也就是说,我正在拍摄的区域具有'开始'和'结束',我想从结果图像的底部到顶部定向.由于多边形基本上永远不会在0度标题上自然定向,因此我需要确定'centerCoordinate','heading'和'altitude'.
由于我有多边形的坐标,我能够相当容易地导出中心坐标和所需的标题 - 多边形的第一个坐标与形状的"开始"和结束(或者我的情况下的其他坐标)相关联到最后'.
确定海拔高度证明更加困难; 我想确保多边形区域最终填满我想要显示的快照图像的宽高比.如何在不依赖MKMapView的'setRegion'选择器的情况下计算与MKMapCamera一起使用的正确高度?
mapkit ios mkmaprect cllocationcoordinate2d mkmapsnapshotter
我有一个纬度/经度位置,我想转换为Swift中的位置名称String.做这个的最好方式是什么?我相信最好使用reverseGeocodeLocation函数,但不完全确定如何使用.这是我到目前为止:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
if (locationFixAchieved == false) {
locationFixAchieved = true
var locationArray = locations as NSArray
var locationObj = locationArray.lastObject as CLLocation
var coord = locationObj.coordinate
var latitude = coord.latitude
var longitude = coord.longitude
getCurrentWeatherData("\(longitude)", latitude: "\(latitude)")
reverseGeocodeLocation(location:coord, completionHandler: { (<#[AnyObject]!#>, <#NSError!#>) -> Void in
<#code#>
})
}
}
func reverseGeocodeLocation(location: CLLocation!, completionHandler: CLGeocodeCompletionHandler!){
}
Run Code Online (Sandbox Code Playgroud) 我在Swift中有以下代码将MKPolyline添加到MapView.XCode没有告诉我有一个问题,据我所知,这应该是有效的.
MapView的插座:
@IBOutlet weak var mapView: MKMapView!
Run Code Online (Sandbox Code Playgroud)
用于保持坐标的变量:
var coordinates: [CLLocationCoordinate2D] = []
Run Code Online (Sandbox Code Playgroud)
从Core Data获取我保存的坐标:
var contextMap = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
var requestMap = NSFetchRequest(entityName: "Locations")
let predMap = NSPredicate(format: "game = %d", passedGameNumber)
requestMap.predicate = predMap
requestMap.sortDescriptors = [NSSortDescriptor(key:"time", ascending: false)]
self.locationsList = contextMap.executeFetchRequest(requestMap, error: nil)! as [Locations]
Run Code Online (Sandbox Code Playgroud)
将Core Data中的坐标添加到我的新数组中:
for index in 1..<self.locationsList.count{
var lat = Double(self.locationsList[index].latitude)
var long = Double(self.locationsList[index].longitude)
var coordinatesToAppend = CLLocationCoordinate2D(latitude: lat, longitude: long)
coordinates.append(coordinatesToAppend)
}
Run Code Online (Sandbox Code Playgroud)
创建折线:
var polyLine = MKPolyline(coordinates: &coordinates, count: coordinates.count) …
Run Code Online (Sandbox Code Playgroud) 我有一个自定义的多边形对象,所以我可以将地图叠加保存到Realm.我能够成功创建这个对象,但是当我想要检索var多边形对象时,它返回nil.当我打印多边形对象时,它会将所有数据打印出来.
这是它打印出来的样本.
CustomPolygon {
name = Polygon1;
id = p1;
polygon = Polygon {
coordinates = RLMArray <0x7f928ef36230> (
[0] Coordinate {
latitude = -36.914167;
longitude = 174.904722;
},
[1] Coordinate {
latitude = -36.9325;
longitude = 174.957222;
}, . . .
);
};
}
Run Code Online (Sandbox Code Playgroud)
我的函数从Realm加载数据
func loadOverlaysFromRealm(){
do {
let realm = try Realm()
let polygons = realm.objects(CustomPolygon)
for p in polygons {
var coordinates = [CLLocationCoordinate2D]()
print(p) // !!!!! prints out what is above
print(p.polygon) // !!!!! Returns …
Run Code Online (Sandbox Code Playgroud) swift ×6
cllocation ×5
mapkit ×4
ios ×3
arrays ×1
clgeocoder ×1
converter ×1
gps ×1
iphone ×1
mkmaprect ×1
mkmapview ×1
mkpolygon ×1
mkpolyline ×1
objective-c ×1
realm ×1
string ×1