2011-07-14 51 views
0

我正在嘗試創建一個應用程序,該應用程序需要我的iPhone的GPS座標並在地圖上顯示我的當前位置。將GPS座標從我的iPhone傳遞到Web服務並在地圖上顯示GPS座標

我從我的iPhone上使用LocateMe示例代碼得到GPS座標,所以現在對我來說這不是問題。

但我不知道如何將我的GPS座標從我的iPhone發送到Web服務並在地圖上顯示GPS座標。如果你們能夠幫助我解決這個問題,那將是非常好的。

+0

要在哪個Web服務上發送GPS座標? – Deeps

+0

說實話我不知道。我想在地圖上顯示我的GPS座標。所以我應該創建一個自己的Web服務來顯示地圖上的GPS座標,或者已經有一個Web服務可以做到這一點。我有GPS座標,但我完全是下一步做什麼的空白! – indr

回答

0

您可能需要使用NSURLConnection的類,如下所示(你只需要設置在其中的NSURLRequest web服務特定的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]; 

} 
+0

感謝您的即時回覆。正如我之前提到的,我想在地圖上顯示我的GPS座標。要做到這一點,我應該創建一個我自己的Web服務,或者已經有一個Web服務可以把我的GPS座標和顯示在地圖上。我手上有我的GPS座標如果你能給我一些想法以後如何從這裏開始,那真的很有幫助。 – indr

0

你不需要創建Web服務只是爲了在Map上顯示你的當前位置。你只需要實現corelocation和Mapkit框架來實現你的功能。正如你所說,你得到了你的GPS座標,所以你只需要實現mapkit並將你當前的位置設置爲用戶位置。地圖工具包會自動執行,因此您無需爲此做任何事情。只需搜索mapkit示例,即可開始使用。

0

喲需要:

使用NRURLRequest以緯度/經度(例如使用POST方法)傳遞給一個PHP頁面。

爲了創建PHP素文字讀取該參數,然後建立位置是這樣的: 位置=> NAME,LAT =>經緯度LON =>經度 並使用jsonphp方法構建JSON格式。

在iphone中,現在您只需使用NSURLRequest接收此信息並解析json。將解析結果發送給mapkit。