道路定位
道路定位
TGOS MAP API(iOS)道路定位功能以服務方式提供。
傳送之參數說明如下:
op:定位服務類別。鍵入rd進行道路定位。
road :行政區及道路名稱,若僅輸入道路名稱,則可能出現不同行政區之相同道路名稱,會有多筆資料產生。
回傳結果說明如下:
point_x:X坐標(TWD97中央經線121) 。
point_y:Y坐標(TWD97中央經線121) 。
point_E:X坐標(WGS84) 。
point_N:Y坐標(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=內湖路一段