标签: mapkit

iPhone:谷歌地图方向

我正在开发一个嵌入了用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,你能理解为什么一个比另一个更准确...

iphone maps mapkit directions

4
推荐指数
1
解决办法
3184
查看次数

将MKUserTrackingBarButtonItem添加到UIView

我用a MKUserTrackingBarButtonItem来切换我的MKMapView的usertrackingMode.

  • 是否可以将此按钮移出我的工具栏并将其放在普通的UIView上?
  • 当然,我可以自己实现按钮的行为.您是否有任何资源用于此按钮中使用的图标?

MKUserTrackingBarButtonItem图标

谢谢你的帮助.

icons mapkit mkmapview ios ios5

4
推荐指数
1
解决办法
2955
查看次数

从现有坐标mapkit查找最近的位置

我正在为拥有多家商店的客户开发iphone应用程序(目标C).我有一个数组中所有商店(20)的坐标(纬度,长度).

目前我正在考虑循环遍历商店的坐标数组,并获取用户当前位置到商店位置的距离,然后将它们添加到数组中并对最低距离进行排序.

这是一种正确的方法还是非常耗费资源?

最近的SOF问题就是这个问题,但它是在python中: 提取最近的商店

提前感谢您的建议.

objective-c mapkit ios

4
推荐指数
1
解决办法
5090
查看次数

通过MKAnnotation CalloutAccessoryControlTapped传递自定义属性

我正在尝试执行通过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)

objective-c mapkit mkmapview mkannotation ios

4
推荐指数
1
解决办法
1577
查看次数

检查地图上是否选择了MKAnnotation?

我有一个非常简单的问题:如何检查地图上是否选择了MKAnnotation?

我看不到选中的(GET)属性.

我希望解决方案不是通过触发选定/取消选择的事件并将其结果存储在属性中并在需要时检查它们.必须有一个更直接的.

非常感谢!

mapkit mkannotationview ios

4
推荐指数
2
解决办法
2931
查看次数

测试MKCircle是否与MKPolygon相交

我正在寻找测试MKPolygon是否与MKCircle相交的一些指导.目前我正在使用:

if ([circle intersectsMapRect:[poly boundingMapRect]]) {
                    //they do intersect
   }
Run Code Online (Sandbox Code Playgroud)

我发现这返回不准确的结果只是b/c它在我的圆圈周围绘制一个矩形,从而给我交叉,否则不应该.

搜索主题让我看到了Chad Saxon的多边形 - 多边形交叉项目.如果我能以某种方式将我的MKCircle转换为多边形多边形,这可能是有用的 - 这可能是可能的,但最终我相信这是解决这个问题的圆形方法.

我最终想知道在钻研我自己的自定义几何光线测试算法实现之前是否有一个我忽略的简单解决方案.

objective-c mapkit mkpolygon

4
推荐指数
1
解决办法
1019
查看次数

过滤/排序MKLocalSearch响应

我正在MKLocalSearch执行地图搜索。我的问题是响应中MKMapItems的排序。例如,搜索我当前所在的城市将首先返回许多与城市名称有关的业务,而我必须向下滚动一会才能找到实际的城市。我正在使用的region属性MKLocalSearchRequest将搜索集中在附近区域。

我的问题是:

  1. 您可以影响回复返回给您的顺序吗?例如,只要输入第一个字母,“地图”应用就会在顶部列出我的城市。为什么没有POI:s或企业列在最前面?
  2. 有没有一种方法可以完全从搜索中消除企业,而仅获得响应地址?

不知道是否相关,但是这里是搜索的代码:

-(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)

iphone mapkit ios mklocalsearch

4
推荐指数
1
解决办法
2319
查看次数

Swift,如何制作针注释标注?(请完整的步骤)

我试图让标注工作,但这并没有发生,因为我在准备segue时做错了.我想知道如何能够将pin注释标注到另一个视图?

mapkit callouts ios swift

4
推荐指数
1
解决办法
4479
查看次数

Mapview中两个位置的Mapkit路线无法正常工作于印度的纬度和经度?

这是我的代码:

工作方式:

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)

objective-c mapkit ios mkpolyline

4
推荐指数
1
解决办法
543
查看次数

如何使用autolayout在MKAnnotation中显示多行?

在此输入图像描述

我正在使用mapkit如何在MKAnnotation视图中多行.

每个注释都有标题和副标题.我如何在自动布局的帮助下显示多行的子标题?

我发现它是答案.plz尝试我的答案.我们只需要编写代码

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{   

}
Run Code Online (Sandbox Code Playgroud)

在这里,我展示了如何使用自动布局与MKAnnotation.

objective-c mapkit ios autolayout swift

4
推荐指数
2
解决办法
3697
查看次数