道路定位

道路定位

TGOS MAP API(iOS)道路定位功能以服務方式提供。

傳送之參數說明如下:

op:定位服務類別。鍵入rd進行道路定位。

road :行政區及道路名稱,若僅輸入道路名稱,則可能出現不同行政區之相同道路名稱,會有多筆資料產生。

回傳結果說明如下:

point_xX坐標(TWD97中央經線121) 

point_yY坐標(TWD97中央經線121) 

point_EX坐標(WGS84) 

point_NY坐標(WGS84) 

max_x:圖形範圍X最大值(TWD97中央經線121)

max_y:圖形範圍Y最大值(TWD97中央經線121)

max_E:圖形範圍X最大值(WGS84)

max_N:圖形範圍Y最大值(WGS84)

min_x:圖形範圍X最小值(TWD97中央經線121)

min_y:圖形範圍Y最小值(TWD97中央經線121)

min_E:圖形範圍X最小值(WGS84)

min_N:圖形範圍Y最小值(WGS84)

程式範例如下:

NSString* addresslocator3 = @"http://gis.tgos.tw/addresslocator/locate.aspx?op=rd&format=json&road=";

 

- (IBAction)RoadClick:(id)sender {

[self clearMarker];

NSString * seachStr = [addresslocator3 stringByAppendingString:[self.RoadET.text 

//串接服務網址

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSURL * url = [NSURL URLWithString:seachStr];

NSError *error;

NSMutableDictionary *ServiceJson = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:url]

options:NSJSONReadingMutableLeaves

error:&error];

if (error == nil) {

NSMutableArray *ResultInfo= [ServiceJson objectForKey:@"results"];

for (int i = 0 ; i < ResultInfo.count; i++) {

NSMutableDictionary *Info =[ResultInfo objectAtIndex:i];

TGMarkerOptions *opt = [[TGMarkerOptions alloc] init]; 

//建立TGMarkerOptions

opt.position = CLLocationCoordinate2DMake([[Info objectForKey:@"point_N"] doubleValue],[[Info objectForKey:@"point_E"] doubleValue]);  //坐標需用WGS84

opt.title = self.RoadET.text;  //設定標題

opt.draggable = NO;  //設定可否拖曳

[MarkerList addObject:[mapView_ addMarkerWithOptions:opt]];

}

[self MoveToBounds];

}

}

服務使用範例如下:

http://gis.tgos.tw/addresslocator/locate.aspx?op=rd&road=內湖路一段

 

回到上方