标签: mapkit

使用mapkit确定距离

如何使用mapkit确定1000英尺或1/2英里的距离?来自某个引脚的半径或两个引脚之间的距离.

例如,我将地图集中在引脚A上.引脚B,C和D也位于地图上,距离引脚A的距离不同.B和C距离A不到1/2英里,但D距离1英里.我想知道B和C距离A不到1/2英里.我怎么能算出来?

iphone cocoa-touch mapkit

5
推荐指数
2
解决办法
6886
查看次数

MKAnnotationView的子类

我想知道是否有人知道MKAnnotationView类的任何子类.在苹果文档中,他们说一个例子是MKPinAnnotationView,所以我想知道是否有其他预先创建的子类,如用于跟踪设备当前位置的子类.如果有人有关于创建我自己的MKAnnotationView类的子类的提示,那也很棒.

谢谢,bubster

cocoa-touch objective-c mapkit mkannotationview

5
推荐指数
2
解决办法
5455
查看次数

将MapKit贴图的缩放/边界与RouteMe贴图的缩放/边界匹配

编辑:我相信我的问题是这个代码适用于整数缩放级别,但我希望它适用于浮动缩放级别.

我有一个iOS应用程序,用户可以在基于RouteMe的地图和基于MapKit的地图之间切换.

当他们切换源时,我希望能够在一个中显示完全相同的区域.但是,我无法弄清楚如何使它们匹配,因为RouteMe和MapKit使用不同的数据结构来描述地图边界.

这里有一些代码可以让它有点接近,但并不准确.此代码来自:http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/

我不确定这段代码是否应该修复,或者我可能忽略了一个更简单的解决方案.代码从列出的最后一个方法开始执行:

#define MERCATOR_OFFSET 268435456
#define MERCATOR_RADIUS 85445659.44705395

#pragma mark -
#pragma mark Map conversion methods

- (double)longitudeToPixelSpaceX:(double)longitude {
  return round(MERCATOR_OFFSET + MERCATOR_RADIUS * longitude * M_PI / 180.0);
}

- (double)latitudeToPixelSpaceY:(double)latitude {
  return round(MERCATOR_OFFSET - MERCATOR_RADIUS * logf((1 + sinf(latitude * M_PI / 180.0)) / (1 - sinf(latitude * M_PI / 180.0))) / 2.0);
}

- (double)pixelSpaceXToLongitude:(double)pixelX {
  return ((round(pixelX) - MERCATOR_OFFSET) / MERCATOR_RADIUS) * 180.0 / M_PI;
}

- (double)pixelSpaceYToLatitude:(double)pixelY {
  return …
Run Code Online (Sandbox Code Playgroud)

iphone mapkit ipad ios route-me

5
推荐指数
1
解决办法
1724
查看次数

你能在MKMapView中使用iOS 6 3D按钮吗?

我正在开发一个具有映射功能的应用程序,原生iOS 6地图应用程序中的3D内容对我们的CEO非常感兴趣.

我想知道在MKMapView内部是否可以使用该按钮,或者仅在内置地图应用程序中可用?

iphone mapkit ios

5
推荐指数
1
解决办法
1542
查看次数

自定义MKOverlayView /未修改的MKPolygonView在特定缩放级别被剪裁

我有一个问题,当有多个叠加添加到地图时,自定义MKOverlayView和标准MKPolygonView被剪裁在某些缩放级别.

阿尔及利亚在两个双击缩放级别的叠加.

阿尔及利亚在三个双击缩放级别的叠加.注意剪辑.

一些观察:

  • 无论我是否使用自定义MKOverlayView或返回具有相同多边形的MKPolygonView,都会发生这种情况.
  • 如果我只绘制一个叠加层,则不会出现此问题.
  • 所有叠加层都不会出现这种情况 - 只有一些.

就代码而言:这会将叠加层添加到NSMutableArray(borderOverlays),然后在其他位置访问以加载特定国家/地区ID的叠加层.minX/minY/maxX/maxY是纬度/经度值; polygon是从ESRI shapefile构造的路径.

CLLocationCoordinate2D mbrMin = CLLocationCoordinate2DMake(minY, minX);
CLLocationCoordinate2D mbrMax = CLLocationCoordinate2DMake(maxY, maxX);
MKMapPoint minPoint = MKMapPointForCoordinate(mbrMin);
MKMapPoint maxPoint = MKMapPointForCoordinate(mbrMax);
MKMapSize size = MKMapSizeMake(maxPoint.x - minPoint.x, maxPoint.y - minPoint.y);
MKMapRect rect = MKMapRectMake(minPoint.x, minPoint.y, size.width, size.height);

if ( spans180 ) {
    rect = MKMapRectMake(minPoint.x, minPoint.y, MKMapSizeWorld.width * 2, size.height);
}

CustomMKOverlay* overlay = [[CustomMKOverlay alloc] initWithPolygon:polygon withBoundingMapRect:rect];
[borderOverlays addObject:overlay];
Run Code Online (Sandbox Code Playgroud)

叠加层通过以下方式添加到地图中:

[mapView addOverlay:overlay];
Run Code Online (Sandbox Code Playgroud)

viewForOverlay:

- (MKOverlayView *)mapView:(MKMapView*)aMapView viewForOverlay:(id<MKOverlay>)overlay
{
    if ( …
Run Code Online (Sandbox Code Playgroud)

objective-c mapkit ios

5
推荐指数
1
解决办法
729
查看次数

如何获取所有已安装的路由应用程序的列表?

如何以编程方式获取iOS上已安装的"路由应用"列表?

这背后的原因是,iOS提供了大量的导航应用程序,我不想维护手动列表.

Apple提供了一项自iOS 6以来的新功能,可将您的应用注册为路由应用,如此处所述http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/ProvidingDirections/ProvidingDirections.html#// apple_ref/DOC/UID/TP40009497-CH8-SW7

如果您随后在常规地图应用程序中启动路由,则会显示一个能够路由您的应用程序列表,如您在此处所示:

在此输入图像描述

我找不到获取清单的方法.当然,我可以通过使用canOpenURL来查询是否安装了一个特定的应用程序:在UIApplication中,但这将非常繁琐.

我知道这一定是可能的,因为着名的"何去何从?" app提供了这样的功能.

任何提示赞赏!

objective-c mapkit ios ios6 ios6-maps

5
推荐指数
1
解决办法
1770
查看次数

检测一个点是否在iPhone sdk ios 7中的MKCircle内部

我为我添加了一个MKCircle叠加层mapview,我想知道一个点(点击屏幕)是否在圆圈内.这是我的代码:

- (BOOL)pointInsideOverlay:(CLLocationCoordinate2D )tapPoint overlay:(id<MKOverlay>)overlay  {

   BOOL isInside = FALSE;
   MKPolygonView *polygonView = (MKPolygonView *)[self.mapView viewForOverlay:overlay];
   MKMapPoint mapPoint = MKMapPointForCoordinate(tapPoint);
   CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];
   BOOL mapCoordinateIsInPolygon = CGPathContainsPoint(polygonView.path, NULL, polygonViewPoint, NO);

   if (mapCoordinateIsInPolygon) {
       isInside = TRUE;
   }
   return isInside;
}
Run Code Online (Sandbox Code Playgroud)

viewForOverlay,pointForMapPoint&path已弃用.这是问题吗?

谢谢.

iphone geometry mapkit ios

5
推荐指数
1
解决办法
1910
查看次数

Swift中的MKMapRectMake在编译时会导致链接器错误

使用MKMapRectMake创建MKMapRect会导致编译错误,如下所示:

这是我的代码:

    var lat = 37.33072
    var lon = -122.029674
    var loc = CLLocationCoordinate2D(latitude: lat, longitude: lon)
    var point = MKMapPointForCoordinate(loc)

    var flyTo = MKMapRectMake(point.x, point.y, 0, 0);
Run Code Online (Sandbox Code Playgroud)

这是编译器的错误:

Undefined symbols for architecture i386:
  "_MKMapPointMake", referenced from:
      _MKMapRectMake in ViewController.o
  "_MKMapSizeMake", referenced from:
      _MKMapRectMake in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我的解决方法是使用origin和size参数创建MKMapRect.请注意,我已将MKMapKit添加到Build Phases中的链接库中

有没有人遇到同样的问题以及你如何解决这个问题?

mapkit swift xcode6

5
推荐指数
2
解决办法
695
查看次数

MapKit默认缩放

出于某种原因,我的市场不会放大到当地.事实上,无论我改变什么,它都不会改变变焦.我是在代码的错误部分加载它,还是我错过了其他的东西?任何帮助表示赞赏.

我的代码是:

@IBOutlet var here: MKMapView!

var locationManager: CLLocationManager?
var selectedItem: String?
func locationManager
    (manager: CLLocationManager!,didUpdateToLocation newLocation: CLLocation!,
    fromLocation oldLocation: CLLocation!){
        manager.desiredAccuracy = kCLLocationAccuracyBest


        var region = self.here.region as MKCoordinateRegion

        self.here.setRegion(region, animated: true)
        region.span.longitudeDelta = 0.0144927536
        region.span.latitudeDelta = 0.0144927536

}
Run Code Online (Sandbox Code Playgroud)

mapkit swift

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

MKLocalSearch不提供与原生Apple Maps应用中的搜索相同的结果

当我使用相同的字符串在MKLocalSearch和Apple Maps中搜索时,我会得到不同的结果,通常在Apple Maps中我会得到很多不同的位置,但在MKLocalSearch中我只得到一个.

Apple地图:

在此输入图像描述

我的应用程序使用MKLocalSearch:

在此输入图像描述

在这两种情况下,我都在寻找柏林和MKLocalSearchRequest,我设置了柏林地区的.region属性

Apple使用哪些服务进行位置搜索?

maps mapkit ios mklocalsearch mklocalsearchrequest

5
推荐指数
1
解决办法
815
查看次数