地標定位

地標定位

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

傳送之參數說明如下:

op:定位服務類別。鍵入poi進行地標定位。

keyword :地標名稱關鍵字。

回傳結果說明如下:

LANDMARKNA:地標名稱。

ADDRESS:地標所在地址

TEL:電話。

COUNTYNAME:地標所在縣市。

TOWNNAME:地標所在鄉鎮市區。

X_97121X坐標(TWD97中央經線121)

Y_97121Y坐標(TWD97中央經線121)

X_97119X坐標(TWD97中央經線119)

Y_97119Y坐標(TWD97中央經線119)

EX坐標(WGS84)

NY坐標(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=松山機場

回到上方