您的位置:首页 > 其它

iphone开发把地址转换为地图经纬度 已解决不支持中文bug

2012-02-15 14:31 811 查看
NSString *address = @"福建省福州 鼓楼区 温泉支路";
NSString *output = @"csv";
NSString *key = @"你自己的google map key";
NSString *urlStr = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=%@&key=%@", [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], output, key]; //address的编码转换是支持中文的关键,如果不转换则获取的坐标为0,0。

NSURL *url = [NSURL URLWithString:urlStr];

NSString *retstr = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

NSArray *resultArray = [retstr componentsSeparatedByString:@","];

double latitude3 = [[resultArray objectAtIndex:2] doubleValue];
double longitude3 = [[resultArray objectAtIndex:3] doubleValue];
CLLocationCoordinate2D userLocation3;
userLocation3.latitude = latitude3;
userLocation3.longitude = longitude3;
MapAnnotation *anoo3 = [[MapAnnotation alloc] initWitchCoordinate:userLocation3];
anoo3.title = @"福州";
anoo3.subtitle = @"详细";
[myMapView addAnnotation:anoo3];//
[anoo3 release];

NSLog(@"纬度:%lf 经度: %lf", latitude3, longitude3);


记录几点:

1,google map key申请的时候ip地址可以填:http://127.0.0.1。当然你需要一个goole账号。

2,中文NSSring编码要转换一下,我就是栽这里了,网上所有的例子都没有转换,而且用英文去测试,当然不会发现问题,相当坑爹。

3,和这个例子没有关系的,玩地图注解的时候,要注意经纬度随便输入可能是无效的,那样注解不会生效,即使添加进去了也不会成功调用代理函数,更不会显示view。

4,resultArray里面的值和output参数有关,详细的解释http://www.ibm.com/developerworks/cn/web/wa-chinesetrans/index.html这个文章有说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐