标签: mapkit

iPhone Map Kit集群精确定位

关于iPhone Map Kit集群精确点:

我想要在地图上显示1000个标记但是它太多了,所以我想将它们聚类.

是否有可用的框架或概念证明?这可能还是已经完成了?

iphone google-maps annotations mapkit markerclusterer

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

检查缩放级别是否已更改

我在iPhone上使用MapKit.如何知道用户何时更改缩放级别(放大\地图)?

我试过用mapView:(MKMapView*)mapView regionDidChangeAnimated:(BOOL)动画; 但即使只拖动地图也会调用它.不幸的是,当拖动地图时,mapView.region.span也会发生变化......

救命?

10倍

iphone objective-c mapkit iphone-sdk-3.0 mkmapview

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

为什么self.locationManager stopUpdatingLocation不会停止位置更新

问题:我似乎无法停止Core Location向我的应用/跟踪发送更新.

我在做什么:在我的viewWillAppear调用中self.locationManager,将其传递给一个方法,以显示用户在地图上的位置(实例MKMapView).重写getter以检查服务器的可用性,以查看是否已授权.如果是这样,它allocs/initsstartMonitoringSignificantLocationChangesreturns.

viewDidDisappear,我打电话[self.locationManager stopUpdatingLocation].但我仍然可以在状态栏中看到位置图标.即使我通过双击主页按钮并关闭它来终止应用程序,图标仍然存在...即使在延长的时间(10分钟以上)之后.当我转到设置应用程序时,它告诉我我的应用程序仍在使用位置服务(紫色图标).

问题:我在这里错过了什么?为什么位置更新不会停止?

提前致谢.

core-location mapkit cllocationmanager ios

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

iOS6中的MapView不会在北纬75度以上显示某些缩放级别

此代码设置以指定位置为中心的默认缩放级别viewDidLoad.该代码在以前版本的iOS中运行良好:

CLLocationDistance visibleDistance = 100000; // 100 kilometers
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, visibleDistance, visibleDistance);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
.
.
.
[mapView setRegion:adjustedRegion animated:NO];
Run Code Online (Sandbox Code Playgroud)

但是,在iOS6中,对于纬度高于~75(> 75.1)的位置,应用程序崩溃并显示以下消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'Invalid Region <center:nan, nan span:nan, nan>'
Run Code Online (Sandbox Code Playgroud)

我发现对于给定的缩放级别mapView无法在MKCoordinateRegion内部设置正确.[mapView regionThatFits:region]将所有值返回为nan.如果我region直接使用变量,它只显示默认地图(整个世界).

经过一些测试后,我发现通过调整visibleDistance我可以让代码正常工作.魔法距离似乎略高于20公里(对于一系列纬度和纬度的Delta值,大约在22到23公里之间).这只发生在北纬地区(-80工作正常).

初始定位后,地图可在任何位置工作.看起来Apple改变了可见地图区域的初始化方式.我正在为受影响的区域使用更高的缩放级别作为解决方法.有没有其他方法可以使它正常工作?

mapkit mkmapview ios ios6 ios6-maps

23
推荐指数
2
解决办法
5916
查看次数

从Google地图iOS中删除标记

我正在使用故事板和Google地图构建iOS应用程序.使用iOS6

我的应用程序具有在Facebook应用程序中看到的拆分视图导航

在我的左视图中,我选择列表中的项目,该项目具有纬线/长线,并在我的地图上通过以下方法显示

- (void)viewWillAppear:(BOOL)animated

我想在添加另一个标记之前删除此方法中的所有标记(因此地图上只有一个标记),有没有办法做到这一点?下面是我在mapView中添加标记的代码

提前谢谢 - 乔恩

- (void)loadView
{
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:poi.lat
                                                            longitude:poi.lon
                                                                 zoom:15];
    mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

    mapView.myLocationEnabled = YES;
    self.view = mapView;
    mapView.mapType = kGMSTypeHybrid;

    //Allows you to tap a marker and have camera pan to it
    mapView.delegate = self;
}

-(void)viewWillAppear:(BOOL)animated
{
    GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];
    options.position = CLLocationCoordinate2DMake(poi.lat, poi.lon);
    options.title =  poi.title;
    options.snippet = poi.description;
    options.icon =  [UIImage imageNamed:@"flag-red.png"];
    [mapView addMarkerWithOptions:options];

    [mapView animateToLocation:options.position];
    [mapView animateToBearing:0];
    [mapView animateToViewingAngle:0];
}
Run Code Online (Sandbox Code Playgroud)

mapkit google-maps-markers ios google-maps-sdk-ios

23
推荐指数
4
解决办法
3万
查看次数

iPhone:在MKMapView中检测Tap

如何在实例上检测到单击MKMapView?我是否必须继承MKMapView并重写该touchesEnded方法?

谢谢,

-克里斯

cocoa-touch mapkit mkmapview ios

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

如何使用iphone上的坐标打开Goog​​le地图以获取路线

我正在使用UIMapView在iPhone上显示位置.我想从当前位置到感兴趣的位置做一个方向,我认为不可能使用MapKit(但如果是请通知)所以我将打开Goog​​le Maps应用程序或safari来显示它.

我可以通过指定从(当前位置)到坐标(感兴趣的位置)的坐标来实现这一点,我有这些经度和纬度.或者我必须使用街道地址?

如果我必须使用街道地址,我可以从纬度和经度获得它们.

iphone google-maps coordinates mapkit

22
推荐指数
3
解决办法
5万
查看次数

MKOverlay没有顺利调整大小

我已经将MKCircle作为MKOverlay添加到我的MKMapView中.我还添加了一个UISlider来决定圆的半径.不幸的是,当使用它时,它似乎有点"滞后",不像我想要的那样流畅.

示例:http: //dl.dropbox.com/u/3077127/mkoverlayDelay.mov

这是我的代码:

- (void)addCircle
{
    // draw the radius circle for the marker
    double radius = 2000.0;
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circle setTitle:@"background"];
    [mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circleLine setTitle:@"line"];
    [mapView addOverlay:circleLine];
}

- (void)addCircleWithRadius:(double)radius
{
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circle setTitle:@"background"];
    [mapView addOverlay:circle];

    MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:location radius:radius];
    [circleLine setTitle:@"line"];
    [mapView addOverlay:circleLine];
}

- (void)sliderChanged:(UISlider*)sender
{
    [mapView removeOverlays:[mapView overlays]];

    double radius = (sender.value * 100);

    [self addCircleWithRadius:radius]; …
Run Code Online (Sandbox Code Playgroud)

iphone overlay mapkit ios4 ios

22
推荐指数
1
解决办法
6725
查看次数

Swift - CLGeocoder reverseGeocodeLocation completionHandler闭包

我正在试图做的是传递CLLocation给函数getPlacemarkFromLocation,然后使用传递CLLocation通过reverseGeocodeLocation设置CLPlacemark?将返回.

我在创建completionHandler闭包时遇到问题reverseGeocodeLocation,它会抛出编译器错误/崩溃:


在斯威夫特,CLGeocodeCompletionHandlerCLGeocodeCompletionHandler = (AnyObject[]!, NSError!) -> Void根据文档AnyObject[]!应该包含CLPlacemark的对象,就像Objective-C的版本.

这是我目前的代码:

class func getPlacemarkFromLocation(location:CLLocation)->CLPlacemark?{
    var g = CLGeocoder()
    var p:CLPlacemark?
    g.reverseGeocodeLocation(location, completionHandler: {
        (placemarks, error) in
        let pm = placemarks as? CLPlacemark[]
        if (pm && pm?.count > 0){
            p = placemarks[0] as? CLPlacemark
        }
    })
    return p?
}
Run Code Online (Sandbox Code Playgroud)

编辑:似乎错误placemarks.countplacemarks没有像数组一样对待.它现在编译,但是当我试图进入p内部时,我只得到零completionHandler.我检查了CLLocation被传递的内容并且它们是有效的. …

mapkit mkmapview cllocation ios swift

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

在Swift中动画MapKit注释坐标变化?

在Swift的iOS 8中使用MapKit时,如何设置自定义注释的地图位置变化的动画?我这样说:

UIView.animateWithDuration(0.25) {
    var loc = ann.coordinate
    loc.latitude = loc.latitude + 0.0005
    loc.longitude = loc.longitude + 0.001
    ann.coordinate = loc
}
Run Code Online (Sandbox Code Playgroud)

... ann自定义注释MyAnnotation在哪里.注释是跳跃而不是动画,到新的坐标位置.

令人讨厌的是,如果我在Objective-C中编写MyAnnotation,动画效果很好.但如果我在Swift中编写它,我就不再动画了!

仅供参考,这是我的MyAnnotation的Swift代码:

class MyAnnotation : NSObject, MKAnnotation {
    var coordinate : CLLocationCoordinate2D
    var title: String!
    var subtitle: String!

    init(location coord:CLLocationCoordinate2D) {
        self.coordinate = coord
        super.init()
    }
}
Run Code Online (Sandbox Code Playgroud)

animation mapkit mkannotation ios swift

22
推荐指数
1
解决办法
7099
查看次数