我正在尝试创建一个应用程序,该应用程序采用我的iPhone的GPS坐标并在地图上显示我当前的位置。
我使用LocateMe示例代码从我的iPhone获得GPS坐标,所以现在这对我来说不是问题。
但我不知道如何将我的GPS坐标从我的iPhone发送到网络服务,并在地图上显示GPS坐标。如果你们能帮助我解决这个问题,那就太好了。
答案 0 :(得分:0)
您可能希望如下使用nsurlconnection类(您只需要在NSURLRequest中设置webW服务特定URL的requestWithUrl参数):
-(void)getLocationsFromWebService {
NSLog(@"in getLocationsFromWebService");
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:self.locationsURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:100.0];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
self.requestType = @"GET";
if (theConnection) {
_responseData = [[NSMutableData data] retain ];
} else {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
}
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
NSLog(@"in mapviewcontroller");
NSLog(@"Error connecting - %@",[error localizedDescription]);
[connection release];
[_responseData release];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response;
NSInteger statusCode = [HTTPResponse statusCode];
if (404 == statusCode || 500 == statusCode) {
//[self.controller setTitle:@"Error Getting Parking Spot ....."];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
[connection cancel];
NSLog(@"Server Error - %@", [NSHTTPURLResponse localizedStringForStatusCode:statusCode]);
} else {
if ([self.requestType isEqualToString:@"GET"])
[_responseData setLength:0];
}
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if ([self.requestType isEqualToString:@"GET"])
[_responseData appendData:data];
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection {
if ([self.requestType isEqualToString:@"GET"]) {
[self parseLocations:_responseData];
[_responseData release];
}
[connection release];
}
答案 1 :(得分:0)
您无需为了在地图上显示当前位置而创建Web服务。您只需要实现corelocation和Mapkit框架以实现您的功能。正如您所说,您获得了GPS坐标,因此您只需要实施mapkit并将当前位置设置为用户位置。 Map kit会自动执行,因此您无需为此执行任何操作。只需搜索mapkit示例,您就可以开始了。
答案 2 :(得分:0)
哟需要:
使用NRURLRequest将纬度/经度(例如使用POST方法)传递给PHP页面。
创建PHP scipt以读取该参数,然后构建如下位置: location => NAME,lat => LATITUDE,lon => LONGITUDE 并使用jsonphp方法以json格式构建它。
在iphone中,现在您只需使用NSURLRequest接收此信息并解析json。将解析结果发送到mapkit。