标签: mapkit

将uipopovercontroller的箭头放在mapkit上的注释点

我试图让一个popover出现在地图工具包注释点但是在注释视图属性中找不到"rect"来使用调用uipopovercontroller的rect方法.如果在地图套件上给出注释,如何找到合适的"框架"?

为了给保罗提供更多信息,这是我的尝试:我已经使用过:

- (void)mapView:(MKMapView *)mapView2 annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control{
    NSLog(@"annotationView...");
    MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];
    int choice = 0;
    for (NSMutableDictionary *locationDictionary in [myGizmoClass searchResultsForResortLocation]) 
    {
        if([view.annotation.title isEqualToString:[locationDictionary objectForKey:@"name"]])
        {

            DetailViewTableStyleController *controller = [[DetailViewTableStyleController alloc] initWithlocationData:[[myGizmoClass searchResultsForResortLocation] objectAtIndex:choice] nibName:@"DetailViewTableStyle" bundle:[NSBundle mainBundle]];

            controller.categoryCode = [locationDictionary objectForKey:@"category_code"] ;

            //create a popover controller
            popoverControllerDetail = [[UIPopoverController alloc] initWithContentViewController:controller];

            // set contentsize
            [popoverControllerDetail setPopoverContentSize:CGSizeMake(320,480)];

            //present the popover view non-modal

            [popoverControllerDetail presentPopoverFromRect:view.rightCalloutAccessoryView.frame inView:mapView2 permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

            [controller release];
            break;
        }
        choice = choice + 1;
    }
} …
Run Code Online (Sandbox Code Playgroud)

sdk frame mapkit ipad uipopovercontroller

2
推荐指数
1
解决办法
8064
查看次数

升级到Xcode 4.2之后为什么MKAnnotation会显示警告

在Xcode 4.1中没有问题,但升级到Xcode 4.2我得到以下警告:

Property 'title' 'copy' attribute does not match the property inherited from 'MKAnnotation'
Property 'subtitle' 'copy' attribute does not match the property inherited from 'MKAnnotation'
Run Code Online (Sandbox Code Playgroud)

我的代码:

@interface MyAnnotation : NSObject <MKAnnotation> {
    CLLocationCoordinate2D coordinate;
    NSString *subtitle;  
    NSString *title; 
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic, retain) NSString *subtitle;  
@property (nonatomic, retain) NSString *title; 

-(id)initWithCoordinate:(CLLocationCoordinate2D) coordinate;

@end
Run Code Online (Sandbox Code Playgroud)

xcode objective-c mapkit ios

2
推荐指数
1
解决办法
3385
查看次数

倒置MKPolygon(内向外)

我第一次使用MKPolygon和MKPolygonView作为地图叠加层.我可以在一个区域上放置一个形状,填充颜色填充多边形的内部.

我正在寻找一种方法来填充我的地图上的任何地方,除了多边形的内部.有谁知道如何轻松地做到这一点?

mapkit mkmapview ios mkoverlay

2
推荐指数
1
解决办法
1114
查看次数

在Xcode中的两个坐标之间绘制折线

我想在地图上的两个或多个给定坐标之间绘制一条POLY-LINE(折线而不是路线).想象一下,我在地图上有2个掉落的引脚,我需要从第一个掉落的引脚到第二个掉落的引脚画一条直线.

mapkit ios

2
推荐指数
1
解决办法
6898
查看次数

如何更改标记图标?

我想知道是否有办法改变那些用作标记的红色针脚.如果有办法,该怎么做?

objective-c mapkit ios

2
推荐指数
1
解决办法
3342
查看次数

iOS:获取位置之间的距离

如果没有阅读整个问题,请不要标记为重复

有没有办法在iOS中的两点之间获得驱动路线的长度CLLocation,而不显示地图?

不像乌鸦飞!但就像在MK驾驶模式中一样

我不能使用谷歌,因为我必须在谷歌地图上显示结果.

我找到了这段代码,但这仅在显示iOS-Map时有效:

-(void)showMapRouteFromCurrentLocation
{
    CLLocationCoordinate2D currentUserCoordinate = YourCoordinate;
    //currentUserCoordinate.latitude=  +53.509980;
    //currentUserCoordinate.longitude =  -0.133700;

    MKPlacemark *place = [[MKPlacemark alloc]
                          initWithCoordinate:currentUserCoordinate
                          addressDictionary:nil];


    MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];

    NSDictionary *routeOption = [[NSDictionary alloc] initWithObjectsAndKeys:MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsDirectionsModeKey, nil];

    [mapItem openInMapsWithLaunchOptions:routeOption];
}
Run Code Online (Sandbox Code Playgroud)

但这不是我需要的.

geocoding mapkit mkmapview ios

2
推荐指数
1
解决办法
2708
查看次数

将渲染器从Apple MapKit切换到Google Maps SDK

我需要将地图视图从Apple的MapKit(> = iOS6)切换到Google Maps API,然后实时切换。在地图中,有很多注释需要聚类。现在,我正在考虑实现此目的的最佳方法。我认为可以独立进行聚类。主要问题是,如何更改地图本身。

据我了解,Apple Maps和Google Maps SDK是完全不同的系统,必须分别处理。

但是接着有ClassicMaps,这是一个免费项目github,它使得切换地图成为可能。他们怎么做到的?可以吗?

有没有其他方法可以解决此问题?

提前谢谢了

mapkit mkmapview ios gmsmapview

2
推荐指数
1
解决办法
1189
查看次数

MKAnnotation在长按可拖动之前需要单击

我已经阅读了很多关于MKAnnotation你需要setCoordinate在子类中实现的内容,以及draggable=TRUE为了使整个shebang可拖动.

我的情况是,在我的iOS7专用应用程序中,无论我是否实现,我的注释都是可拖动的setCoordinate...但问题是我需要先点击它(弹出标注附件)然后长按它,并且只然后它会悬停在地图上方的空中并可以拖动.这对用户来说很困惑,因为它与标准地图应用程序中的方式不同.请注意,在Google地图应用中,长按一个注释会使其悬停和拖动而不需要先决条件.

我已经尝试过实施setCoordinate,但这没有任何区别.除此之外,我的注释子类只存储纬度和经度,这很好.我只是希望它能够在长时间内直接拖拽.

实现的View Controller的相关代码MKMapViewDelegate.我可以通过在委托方法中放置断点来验证这一点.

- (void)viewDidLoad
{
        [super viewDidLoad];
[mapView setDelegate:self];    
}

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

    MKPinAnnotationView *pinView = nil;
    if(annotation != mapView.userLocation)
    {
        static NSString *defaultPinID = @"pointPin";
        pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinView == nil ) {
            pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
        }
        pinView.pinColor = MKPinAnnotationColorRed;
        if ([annotation isKindOfClass:[SimpleMapAnnotation class]]) {
            SimpleMapAnnotation *simpleMapAnnotation = (SimpleMapAnnotation*)annotation;
            if ([simpleMapAnnotation color]) { …
Run Code Online (Sandbox Code Playgroud)

mapkit mkmapview mkannotation mkannotationview ios

2
推荐指数
1
解决办法
585
查看次数

如何在Swift上正确显示我的位置和地图?

我正在尝试在应用程序Swift中显示我的位置,但这没有显示任何内容,地图全是蓝色..

我的代码是这个形式的互联网教程:

 var latitude:CLLocationDegrees = location.location.coordinate.latitude
    var longitude:CLLocationDegrees = location.location.coordinate.longitude
    var homeLati: CLLocationDegrees = 40.01540192
    var homeLong: CLLocationDegrees = 20.87901079
    var latDelta:CLLocationDegrees = 0.01
    var longDelta:CLLocationDegrees = 0.01
    var span:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, longDelta)

    var myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
    var region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
    self.mapKit.setRegion(region, animated: true)

    self.mapKit.showsUserLocation = true
    ///Red Pin
    var myHomePin = MKPointAnnotation()
    myHomePin.coordinate = myHome
    myHomePin.title = "Home"
    myHomePin.subtitle = "Bogdan's home"
    self.mapKit.addAnnotation(myHomePin)
Run Code Online (Sandbox Code Playgroud)

我在.split中导入了相应的配置..这段代码有什么不好的?

谢谢!

mapkit cllocation swift

2
推荐指数
1
解决办法
1万
查看次数

MKAnnotation tap上的Swift/iOS MapKit功能

我有一张地图,我已经完美地添加了12个注释,我想要的是当有人点击这些注释时,它会在注释的右边有一个信息按钮,当点击时会显示注释的方向.地图应用.我已经编写了使用所需坐标打开地图应用程序的功能我只是不确定如何将信息按钮添加到注释并使其在点击时执行该功能.

编辑:我要求在Swift中完成此操作.

mapkit ios mapkitannotation swift ios8

2
推荐指数
1
解决办法
3310
查看次数