我正在使用MapKit.我想知道如何获取当前用户的位置.MapKit在当前用户位置显示蓝点.
我想做这样的事情:用户位置显示在地图上.我有一个按钮,再次点击,获取当前用户位置并在那里显示蓝点.
我是否需要使用locationManager或只是调用mapView.showUserLocation=YES;按钮的点击事件?
有谁知道如何解决这个问题:我自定义MKPolygonView中的图像是颠倒翻转的吗?
这个想法(这已经工作正常)有一个"SnowmapsOverlayView"类,它扩展了"MKPolygonView",它显示了一个图像.此图片在地图上具有默认位置和大小(充当Google Maps Web API中的GroundOverlay).这一切都正常,但图像颠倒显示.我尝试了以下选项,但没有结果:
传递UIImage.CGImage时,CGContextDrawImage将图像上下颠倒
感谢您的任何帮助或建议!
我的代码:
#import <MapKit/MapKit.h>
@interface SnowmapsOverlayView : MKPolygonView
{
}
@end
-----------------
#import "SnowmapsOverlayView.h"
@implementation SnowmapsOverlayView
-(id)initWithPolygon:(MKPolygon *)polygon
{
self = [super initWithPolygon:polygon];
return self;
}
-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context
{
UIImage *image = [UIImage imageNamed:@"snowmap.png"];
//This should do the trick, but is doesn't.. maybe a problem with the "context"?
//CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height);
//CGContextTranslateCTM(context, 0, image.size.height);
//CGContextScaleCTM(context, 1.0, -1.0);
CGRect overallCGRect = [self rectForMapRect:self.overlay.boundingMapRect];
CGContextDrawImage(context, overallCGRect, image.CGImage);
}
-(BOOL)canDrawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale
{ …Run Code Online (Sandbox Code Playgroud) 我想用png制作一个mapkit覆盖,但我没有代码,我找不到它的任何教程.我是一名新手编码器,所以非常感谢大量的帮助!
谢谢
我可以保留calloutAccessoryControlTapped操作的引脚坐标吗?我想将这些坐标保留到下一个视图中.当您点击一个引脚,然后转到下一个视图时,我想再次使用引脚坐标.如何保留该针的坐标?
我正在尝试捕获MapKit引脚选择选择以执行segue到此位置的详细视图,我在注释引脚中有一个属性:
#import <MapKit/MapKit.h>
@interface alrededorLocation : NSObject <MKAnnotation> {
NSString *_name;
NSString *_address;
CLLocationCoordinate2D _coordinate;
NSDictionary *additionalInfo;
}
Run Code Online (Sandbox Code Playgroud)
但是我无法捕获引脚选择以执行segue,我试图控制它 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
但我没有成功获得所选的引脚参考.
非常感谢
我正在开发一个使用MKMapView的应用程序,我需要它在iOS4,iOS5和iOS6中运行.
我的问题是,如果我开发使用新的iOS MapKit功能,使用iOS4的人是否可以看到从sourceAddress到destinationAddress的路由?
由于iOS 6.0使用Apple Map,我想通过使用TileOverlay将Google Map添加为Overlay.Is是否存在App store拒绝该应用程序的可能性?我可以直接将Overlays改编为mapkit,而不会对现有代码进行重大更改吗?如何为叠加地图添加注释?
我的问题MKPointAnnotation在地图上丢失了.我会解释一下.
场景:
从服务器读取JSON - >在地图上删除引脚 - >单击某个引脚时,打开一个带有传递给视图的参数的新视图.该参数必须绑定到引脚.
我的代码到目前为止:
JSON(仅限示例用途)
{"places":[{"lat":"30.03","lng":"40.31","id":"1"}]}
Run Code Online (Sandbox Code Playgroud)
读取JSON并向地图添加点:
NSString *markersJSON=@"http://test.com/json.php";
NSURLRequest *requestUsername = [NSURLRequest requestWithURL:[NSURL URLWithString:markersJSON]];
NSData *response = [NSURLConnection sendSynchronousRequest:requestUsername
returningResponse:nil error:nil];
NSError *jsonParsingError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:response
options:0 error:&jsonParsingError];
markerArray = [json objectForKey:@"places"];
for (NSDictionary *jsonObj in markerArray ){
latJSON=[jsonObj objectForKey:@"lat"];
lngJSON=[jsonObj objectForKey:@"lng"];
alertID=[jsonObj objectForKey:@"id"];
CLLocationCoordinate2D myCoordinate = {[latJSON doubleValue], [lngJSON doubleValue]};
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = myCoordinate;
point.title=[jsonObj objectForKey:@"title"];
point.subtitle=[jsonObj objectForKey:@"description"];
[self.mapView addAnnotation:point];
}
Run Code Online (Sandbox Code Playgroud)
单击注释时,使用与引脚对应的JSON中的变量"id"打开新视图.
- …Run Code Online (Sandbox Code Playgroud) 我开始对MapKit感到非常沮丧.首先,我有
if (manager.authorizationStatus == kCLAuthorizationStatusAuthorizedWhenInUse) {
}
Run Code Online (Sandbox Code Playgroud)
哪个是无法构建的,因为它说"在'CLLocationManager*'类型的对象上找不到"属性'authorizationStatus'.严重吗?因为我不仅确定CLLocationManager应该具有根据Apple文档https://的authorizationStatus属性developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html但它也会在我输入时自动填充属性.我真的不知道现在该做什么.
最重要的是,我有
if (!manager) {
NSLog(@"manager created in viewDidLoad");
manager = [[CLLocationManager alloc]init];
manager.delegate = self;
[manager requestWhenInUseAuthorization];
NSLog(@"manager is supposed to ask for permission");
}
Run Code Online (Sandbox Code Playgroud)
并且两个NSLog语句都被调用,但是没有要求授权,因此我收到错误.是的,我还在我的plist文件中添加了必要的密钥字符串,因为该应用程序正在我的手机上工作,但在其他人的手机上我收到此错误.唯一可能的解释是我在寻求许可之前尝试使用MapKit,但我已经彻底检查了这一点并且没有找到类似的东西.它甚至没有显示要求许可的警告框.
如果有人可以帮助解决这些问题,我们将不胜感激.直到那时我才无所事事,因为我已经尝试了一切.
编辑:我发现了问题.我有两个plist键NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription......只有其中一个略有错误.如果plist条目丢失或拼写不正确并且没有警告您,则Apple API不会进行调用.
难以置信.
我有一个按钮,其中点击我授权我的应用程序启用位置服务.我想从警报中捕获允许按钮事件.当用户按下允许时,我的按钮颜色将变为其他颜色.我无法捕获允许按钮的回调.但是,我可以通过此链接捕获不允许按钮事件
请任何人都可以告诉我如何捕获允许按钮点击并成功我想要我的代码.