我正在开发一个嵌入了用mkmapkit制作的mapView的iPhone应用程序.我有两个坐标,我正在追踪这两点之间的方向.
一切都很好.我正在使用google maps api:maps.googleapis.com/maps/api/directions来检索xml以及方向的所有步骤.
但有一件事很奇怪:我只是无法理解为什么驾驶方向不准确.在两个步骤之间,它跟踪一条右线并且不沿着道路行走,而行走模式沿着道路追踪非常准确的方向.
驾驶模式: http ://www.michael-blin.fr/misc/aden/google/driving.png
步行模式: http ://www.michael-blin.fr/misc/aden/google/walking.png
我的问题很简单:你有没有使用谷歌地图api,你能理解为什么一个比另一个更准确...
我用a MKUserTrackingBarButtonItem来切换我的MKMapView的usertrackingMode.

谢谢你的帮助.
我正在为拥有多家商店的客户开发iphone应用程序(目标C).我有一个数组中所有商店(20)的坐标(纬度,长度).
目前我正在考虑循环遍历商店的坐标数组,并获取用户当前位置到商店位置的距离,然后将它们添加到数组中并对最低距离进行排序.
这是一种正确的方法还是非常耗费资源?
最近的SOF问题就是这个问题,但它是在python中: 提取最近的商店
提前感谢您的建议.
我正在尝试执行通过MKAnnotation传递自定义属性(placeId)的简单功能.我已经使用名为"MapViewAnnotation"的自定义类设置了所有内容.
当用户激活CalloutAccessoryControlTapped时,我想简单地将一个额外的值从MapViewController传递给DetailViewController.我可以让标题/副标题起作用,但我需要修改我的代码以允许自定义变量.
我已经尝试了一段时间,但无法让它正常工作.任何帮助都会很棒!谢谢!
MapViewAnnotation.h
@interface MapViewAnnotation : NSObject <MKAnnotation> {
NSString *title;
CLLocationCoordinate2D coordinate;
}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *subtitle;
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d;
@end
Run Code Online (Sandbox Code Playgroud)
MapViewAnnotation.m
@implementation MapViewAnnotation
@synthesize title, coordinate, subtitle;
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
title = ttl;
coordinate = c2d;
subtitle = @"Test Subtitle";
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
MapViewController.m中的注释创建 - 在这里你可以看到我正在使用副标题来传递placeId(底线)
location.latitude = [dictionary[@"placeLatitude"] doubleValue];
location.longitude = [dictionary[@"placeLongitude"] doubleValue];
newAnnotation = [[MapViewAnnotation alloc] initWithTitle:dictionary[@"placeName"]
andCoordinate:location];
newAnnotation.subtitle = …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的问题:如何检查地图上是否选择了MKAnnotation?
我看不到选中的(GET)属性.
我希望解决方案不是通过触发选定/取消选择的事件并将其结果存储在属性中并在需要时检查它们.必须有一个更直接的.
非常感谢!
我正在寻找测试MKPolygon是否与MKCircle相交的一些指导.目前我正在使用:
if ([circle intersectsMapRect:[poly boundingMapRect]]) {
//they do intersect
}
Run Code Online (Sandbox Code Playgroud)
我发现这返回不准确的结果只是b/c它在我的圆圈周围绘制一个矩形,从而给我交叉,否则不应该.
搜索主题让我看到了Chad Saxon的多边形 - 多边形交叉项目.如果我能以某种方式将我的MKCircle转换为多边形多边形,这可能是有用的 - 这可能是可能的,但最终我相信这是解决这个问题的圆形方法.
我最终想知道在钻研我自己的自定义几何光线测试算法实现之前是否有一个我忽略的简单解决方案.
我正在MKLocalSearch执行地图搜索。我的问题是响应中MKMapItems的排序。例如,搜索我当前所在的城市将首先返回许多与城市名称有关的业务,而我必须向下滚动一会才能找到实际的城市。我正在使用的region属性MKLocalSearchRequest将搜索集中在附近区域。
我的问题是:
不知道是否相关,但是这里是搜索的代码:
-(void)issueLocalSearchLookup:(NSString *)searchString {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.location.coordinate, 30000, 30000);
self.localSearchRequest = [[MKLocalSearchRequest alloc] init];
self.localSearchRequest.region = region;
self.localSearchRequest.naturalLanguageQuery = searchString;
self.localSearch = [[MKLocalSearch alloc] initWithRequest:self.localSearchRequest];
[self.localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
if(error){
NSLog(@"LocalSearch failed with error: %@", error);
return;
} else {
for(MKMapItem *mapItem in response.mapItems){
[self.data addObject:mapItem];
}
[self.searchDisplayController.searchResultsTableView reloadData];
}
}];
}
Run Code Online (Sandbox Code Playgroud) 我试图让标注工作,但这并没有发生,因为我在准备segue时做错了.我想知道如何能够将pin注释标注到另一个视图?
这是我的代码:
CLLocationCoordinate2D sourceCoords = CLLocationCoordinate2DMake(37.7833, -122.4167);//san fransisco
MKPlacemark *sourcePlacemark = [[MKPlacemark alloc] initWithCoordinate:sourceCoords addressDictionary:nil];
MKMapItem *source = [[MKMapItem alloc] initWithPlacemark:sourcePlacemark];
// Make the destination location
CLLocationCoordinate2D destinationCoords = CLLocationCoordinate2DMake(34.0500, -118.2500);//los angeles
MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:destinationCoords addressDictionary:nil];
MKMapItem *destination = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark];
Run Code Online (Sandbox Code Playgroud)
CLLocationCoordinate2D sourceCoords = CLLocationCoordinate2DMake(13.0441, +80.1831);
MKPlacemark *sourcePlacemark = [[MKPlacemark alloc] initWithCoordinate:sourceCoords addressDictionary:nil];
MKMapItem *source = [[MKMapItem alloc] initWithPlacemark:sourcePlacemark];
Make the destination location CLLocationCoordinate2D destinationCoords = CLLocationCoordinate2DMake(13.0545, +80.2114);
MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:destinationCoords addressDictionary:nil]; …Run Code Online (Sandbox Code Playgroud) 我正在使用mapkit如何在MKAnnotation视图中多行.
每个注释都有标题和副标题.我如何在自动布局的帮助下显示多行的子标题?
我发现它是答案.plz尝试我的答案.我们只需要编写代码
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
}
Run Code Online (Sandbox Code Playgroud)
在这里,我展示了如何使用自动布局与MKAnnotation.
mapkit ×10
ios ×8
objective-c ×5
iphone ×2
mkmapview ×2
swift ×2
autolayout ×1
callouts ×1
directions ×1
icons ×1
ios5 ×1
maps ×1
mkannotation ×1
mkpolygon ×1
mkpolyline ×1