IOS 地图相关知识点

来源:互联网 发布:知乎 紫微斗数网站 编辑:程序博客网 时间:2024/06/02 07:29

天渊不微博

iOS 6.1正式版可能在下周发布

据idownloadblog网站报道,可靠消息人士称iOS 6.1的第五个测试版,也就是GM版将很快发布。消息称目前iOS 6.1 GM正在内部测试之中,如果没有大问题,开发者将很快能下载。消息人士称iOS 6.1 GM版最早今天,最晚下周一就会开放下载。



苹果在11月初向开发者发布了iOS 6.1第一个测试版,目前苹果一共发布了4个测试版,最新的测试版在12月中旬发布。iOS 6.1的新功能不多,包括可以通过Siri使用Fandango服务购买电影票,首次为设备设定iCloud时用户需要输入安全问题。对于开发者来 说,iOS 6.1加入了功能更强的MapKit框架,任何第三方应用都可以嵌入苹果全新的地图服务。

iOS 6.1支持的设备包括iPhone 5、iPhone 4S和iPhone 3GS;第四代、第三代和第二代iPad;iPad mini和第四、第五代iPod touch。

#苹果#iphone#ios 6.1#地图服务#mapkit
喜欢
这个就写技术博吧
这个就写技术博吧

[转]MapKit[3]

iOS地图位置开发

iPhone SDK提供了三个类来管理位置信息:CLLocation CLLocationManager 和 CLLHeading(不常用)。除了使用GPS来获取当前的位置信息外,iPhone也可以基于WiFi基站和无线发射塔来获得位置信息。GPS的精度最高,可以精确到米级别,但是也最耗电。


------------CLLocation
CLLocation类代表一个位置信息,其中还包括了方向和速度。比如我在长安街188号以5公里/小时的速度往西走。CLLocation具有下面的属性和方法:
@property  CLLocationCoordinate2D coordinate; //以经度和纬度表示的位置信息
@property CLLocationDistance altitude;  //海拔
@property CLLocationAccuracy horizontalAccuracy; //水平精度(如:精确到米)
@property CLLocationAccuracy verticalAccuracy; //垂直精度
@property CLLocationDire...

未完,继续阅读→
#ios#开发#mapkit
喜欢
这个就写技术博吧

[转]MapKit[2]

转自: http://www.wangenlei.com/1543.html

首先我们需要一个视图去呈现地图,苹果自带一个关于地图视图的类,名字叫MKMapView,可以在MapKit这个框架找到,所以用到地图需要在头文件中#import <MapKit/MapKit.h>,这样大家已经可以看到一个地图了,可以拖拽以及缩放。

下面是重点介绍如何去操作地图。

在这里我想介绍关于地图几个重要的属性和方法。

第一个属性:@property (nonatomic) MKMapType mapType;

这是一个结构体,有三个属性,决定地图的呈现风格。(在全房应用中没有用到,但我还是在这里提及一下)下面是关于这三个属性的介绍:

standard:标注地图,显示街道和街道名

Satellite:卫星图片区

Hybrid:卫星图,同时在相应区域有标注了街道和街道名

第二个属性:@property (nonatomic) MKCoordinateRegion region;

同样这也是一个结构体,看到名字应该想到这是一个标注视图上显示的地图区域。基本上一个区域是由中心点,和经度、纬度的跨越度决定的,这个跨越度也就是视图上...

未完,继续阅读→
#ios#开发#mapkit
喜欢
这个就写技术博吧

[转]MapKit[1]

1.MKMapView的显示   

   (1)创建MKMapView   

CGRect rect = CGRectMake(0, 20, 320, 460);MKMapView *mapView = [[MKMapView alloc] initWithFrame:rect];

   (2)设定经纬度   

CLLocationCoordinate2D theCoordinate;theCoordinate.latitude=24.148926;theCoordinate.longitude=120.715542;

   (3)设定显示范围   

MKCoordinateSpan theSpan;theSpan.latitudeDelta=0.1;theSpan.longitudeDelta=0.1;

   (4)设置地图显示的中心及范围   

MKCoordinateRegion theRegion;theRegion.center=theCoordinate;theRegion.span=theSpan;

   (5)设置地图显示的类型及根据范围进行显示   

[mapVi...
未完,继续阅读→
#mapkit#ios#开发
喜欢
这个就写技术博吧

iOS开发之在地图上绘制出你运行的轨迹

  iOS中的MapKit集成了google地图api的很多功能加上iOS的定位的功能,我们就可以实现将你运行的轨迹绘制到地图上面。这个功能非常有用,比如汽车的gprs追踪、人员追踪、快递追踪等等。这篇文章我们将使用Map Kit和iOS的定位功能,将你的运行轨迹绘制在地图上面。

实现

  在之前的一篇文章:iOS开发之在google地图上显示自己的位置中描述了如何在地图上显示自己的位置,如果我们将这些位置先保存起来,然后串联起来绘制到地图上面,那就是我们的运行轨迹了。

   首先我们看下如何在地图上绘制曲线。在Map Kit中提供了一个叫MKPolyline的类,我们可以利用它来绘制曲线,先看个简单的例子。

   使用下面代码从一个文件中读取出经纬度,然后创建一个路径:MKPolyline实例。

-(void) loadRoute { NSString* filePath = [[NSBundle mainBundle] pathForResource:@”route” ofType:@”csv”]; NSString*fileContents = [NSString stringW...
未完,继续阅读→
#ios#mapkit#开发#Object—C
喜欢
iliunian
iliunian 来自博客搬家

MapKit基本知识

User Location:

MapViews 用Core Location 来保存用户的路径并在地图上用一个蓝色的点表示出来。 你可以打开:mapView.showUserLocation = YES;

如果地图跟踪的是用户的未知,你可以通过只读的属性userLcoationVisible 来检测用户当前的位置是不是可见的。如果是YES,就是可见的。

你可以首先设定 showsUserLocation 为 YES来得到用户当前指定的坐标。然后访问userLocation 属性。这个属性返回一个MKUserLocation的实例变量。 MKUserLocation 是一个对象,有一个属性叫做location(CLLocation 类型)。 一个CLLocation 包含一个coordinate属性指向一个坐标的集合,所有的这些意味着你可以得到实际的坐标从MKUserLocation对象里:下属那个:

CLLocationCoordinae2D coords = mapView.userLocation.location.coordinate;

Coordinate Regions

如果你不告诉要显...
未完,继续阅读→
#API应用#MapKit
喜欢
iliunian 来自博客搬家

MKMapView使用的一些技巧

MKMapView使用的一些技巧 - bl1988530的专栏 - 博客频道 - CSDN.NET.
#API应用#CoreLocation#MapKit#MKMapView
喜欢
iliunian 来自博客搬家

Mapkit 集群功能

在做mapkit的应用时候,有时候会在上面放置很多annotation,这样在地图缩放的时候有时候会出现annotation重合的情况,效果不是太好,如果能把重合的annotation做一个集群计数标识出来,这样会清晰一点,用户也可以根据这个标识知道当我放大这一块区域时下面的annotation数目。

网上搜了下,在github上找一到一个api,可以实现这样的功能,下面是这个api使用的例子,需要的可以下载研究下。

Api:Source Code

通过Mapkit 集群功能 - bl1988530的专栏 - 博客频道 - CSDN.NET.
#CoreLocation#API应用#MapKit
喜欢
iliunian 来自博客搬家

地图mkmapview根据地名查询经纬度

mapkit 中有一个MKReverseGeocoder的类,你如果你知道某地的经纬度,你可以通过这个来获得地点的更多信息

,如:国家、城市和街道名等。这个类使用的是google map的服务。

有reverseGeocoding,google同时也提供了google geocoing api的服务,如果我们想通过地名查询来获取这个地方的

更多信息,可以使用这个api。

它可以返回很多种格式的信息,如:json,xml,kml,csv等。方便用户根据需要来使用。

使用格式如下:

http://maps.google.com/maps/api/geocode/json?address=taiguo&sensor=true
返回的json:
{
"results" : [
{
"address_components" : [
{
"long_name" : "泰国",
"short_name" : "TH",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "泰国",
"geometry" : {
"bounds" : {
"...
未完,继续阅读→
#API应用#MapKit#MKMapView#CLLocationManager
喜欢
iliunian 来自博客搬家

iOS地图的注释(Annotation)

1. 添加到map view的子视图不会随地图的移动而移动,map view会固定其子视图的位置。如果要添加随着地图移动的子视图,可以使用annotations和overlays。annotation用来显示由一个经纬度定义的位置,而overlay则是由多个点所定义或者包含了许多连续的图形。

2.在地图上显示annotation,需要提供两个对象
annotation object)
annotation view.)
注释对象通常是一些小的数据对象,保存了地图的坐标和一些相关信息。
Map Kit提供了一些标准的注释视图,你也可以使用自定义的注释视图。但是不能将注释视图直接添加到map view,而是使用map view的代理对象来提供。

3.添加注释的具体步骤
定义一个注释对象annotation object :
使用MKPointAnnotation类来实现一个简单的注释,这类注释可以显示标题和副标题。
自定义一个遵守MKAnnotation协议的对象,这类注释可以存储任何类型数据
定义一个注释视图annotation view来显示数据:
如果注释可以由一张静态图片表示,则创建一个MKAnnota...
未完,继续阅读→
#API应用#CoreLocation#MapKit#Annotation
喜欢
iliunian 来自博客搬家

MapKit学习笔记

1、概述

插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴趣位置点),annotation是可选的,选中的annotation会显示callout,用来显示信息。

2、设置地图显示类型:

mapView.mapType = MKMapTypeStandard;

mapView.mapType = MKMapTypeSatellite;

mapView.mapType = MKMapTypeHybrid;

3、显示用户位置

设置为可以显示用户位置:

mapView.showsUserLocation = YES;

判断用户当前位置是否可见(只读属性):

userLocationVisible

得到用户位置坐标:当userLocationVisible为YES时

CLLocationCoordinate2D coords = mapView.userLocation.location.coordinate;

4、坐标范围

MKCoordinateRegion用来设置坐标显示范围。

包括两部分:Center(CLLocat...
未完,继续阅读→
#CoreLocation#MapKit#IOS Develop
喜欢
iliunian 来自博客搬家

mkmapview 开发

CLLocationManager


CLLocationManager使用步骤


1.创建一个CLLocationManager实例


CLLocationManager*locationManager = [[CLLocationManager alloc] init];


2.设置CLLocationManager实例委托和精度


locationManager.delegate =self;


locationManager.desiredAccuracy = kCLLocationAccuracyBest;


3.设置距离筛选器distanceFilter,下面表示设备至少移动1000米,才通知delegate


locationManager.distanceFilter = 1000.0f;


或者没有筛选器的默认设置:


locationManager.distanceFilter = kCLDistanceFilterNone;


4.启动请求


[locationManager startUpdatingLocation];


5.停止请求


[locationManager stopUpdatingLocation];...

未完,继续阅读→
#CoreLocation#MapKit#IOS Develop
喜欢
iliunian 来自博客搬家

Core Location 简述

Core Location可以利用三种技术来实现:GPS、蜂窝基站三角网定位(cell tower triangulation)和Wi-Fi定位服务(WPS),其中GPS是最精确的。

我们只用告诉Core Location我们想要的精度级别,它将从它可用的技术中决定哪种可以更好地满足你的需求。

为了与Core Location打交道,需要创建一个位置管理器实例,如下所示:


CLLocationManager *locationManager = [[CLLocationManageralloc]init];

这将创建一个实例,但它并没有马上开始工作。

设置委托和请求指定精度级别:


locationManager.desiredAccuracy =kCLLocationAccuracyBest;


这将指定最高精度级别,其他值还有:kCLLocationAccuracyNearestTenMeters、kCLLocationAccuracyHundredMeters、kCLLocationAccuracyKilometer和kCLLocationAccuracyThreeKilometers。

设置距离筛...

未完,继续阅读→
#CoreLocation#MapKit#IOS Develop
喜欢
iliunian 来自博客搬家

使用CLLocationManager对象来测量位置




















#import <UIKit/UIKit.h>

#import <CoreLocation/CoreLocation.h>    //这里要添加框架



@interface coreLocationViewController : UIViewController <CLLocationManagerDelegate>{

CLLocationManager *man;

}

@property(nonatomic, retain) CLLocationManager *man;



@end











#import "coreLocationViewController.h"

#import <CoreLocation/CoreLocation.h>



@implementation coreLocationViewController

@synthesize man;





- (void)viewDidLoad {

[super viewDidLoad];

man = [[CLLocationManager alloc] init];

// 如果可以利用本地服务时

if([man locationServicesEnabled]){

/...
未完,继续阅读→
#CoreLocation#MapKit#IOS Develop
喜欢
iliunian 来自博客搬家

怎么调用系统的google地图定位到特定经纬度的地方

怎么调用系统的google地图定位到特定经纬度的地方?

[[UIApplication sharedapplication] openurl:????]

如果是maps://maps.google.com 好像是打开google地图啊 特定的经纬度在哪里体现啊?

答案1:

似乎是maps://maps.google.com/maps?lat=XXXXX&lon=XXXXXX,有点不记得了

答案2:

别人的代码:

NSString *mapUrl = [NSString stringWithFormat: @"http://maps.google.com/maps?q=%f,%f", loc.latitude, loc.longitude];

NSURL *url = [NSURL URLWithString:mapUrl];

[[UIApplication sharedApplication] openURL:url];

类似

http://maps.google.com/maps?q=37.0,-122.0

来自:http://www.cocoachina.com/bbs/read.php?tid=1125...
未完,继续阅读→
#API应用#MapKit
喜欢
iosxcode4帕洛克
iosxcode4 来自博客搬家

根据经纬度得到城市地区名

1.添加Mapkit.framework

2.#import <MapKit/MKReverseGeocoder.h>
#import <MapKit/MKPlacemark.h>

3.添加委托MKReverseGeocoderDelegate

4.-(void) startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
coordinate2D.latitude = latitude;
MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate2D];
geoCoder.delegate = self;
[geoCoder start];
}

-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder did...
未完,继续阅读→
#CLLocationCoordinate2D#MapKit#MKReverseGeocoder#iphone开发#MKReverseGeocoderDelegate
喜欢