地標定位
地標定位
TGOS MAP API(iOS)地標定位功能以服務方式提供。
傳送之參數說明如下:
op:定位服務類別。鍵入poi進行地標定位。
keyword :地標名稱關鍵字。
回傳結果說明如下:
LANDMARKNA:地標名稱。
ADDRESS:地標所在地址
TEL:電話。
COUNTYNAME:地標所在縣市。
TOWNNAME:地標所在鄉鎮市區。
X_97121:X坐標(TWD97中央經線121)。
Y_97121:Y坐標(TWD97中央經線121)。
X_97119:X坐標(TWD97中央經線119)。
Y_97119:Y坐標(TWD97中央經線119)。
E:X坐標(WGS84)。
N:Y坐標(WGS84)。
程式範例如下:
NSString* addresslocator1 = @"http://gis.tgos.tw/addresslocator/locate.aspx?op=poi&format=json&keyword=";
- (IBAction)LandmarkClick:(id)sender {
[self clearMarker];
NSString * seachStr = [addresslocator1 stringByAppendingString:[self.LandmarkET.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:@"Table"];
for (int i = 0 ; i < ResultInfo.count; i++) {
NSMutableDictionary *Info =[ResultInfo objectAtIndex:i];
TGMarkerOptions *opt = [[TGMarkerOptions alloc] init];
//建立TGMarkerOptions
opt.position = CLLocationCoordinate2DMake([[Info objectForKey:@"N"] doubleValue],[[Info objectForKey:@"E"] doubleValue]);
//坐標需用WGS84
opt.title = [Info objectForKey:@"LANDMARKNA"]; //設定標題
opt.snippet = [Info objectForKey:@"ADDRESS"]; //設定內文
opt.draggable = NO; //設定可否拖曳
[MarkerList addObject:[mapView_ addMarkerWithOptions:opt]];
}
[self MoveToBounds];
}
}
服務使用範例如下:
http://gis.tgos.tw/addresslocator/locate.aspx?op=poi&keyword=松山機場