gpt4 book ai didi

ios - CL位置,地理编码器和区域搜索

转载 作者:行者123 更新时间:2023-12-01 18:56:13 25 4
gpt4 key购买 nike

我在缩小Geocoder结果时遇到问题。这是我的代码:

CLLocationCoordinate2D centerLocation = CLLocationCoordinate2DMake(53, 10);
CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter: centerLocation radius:100 identifier:@"de"];
[self.geocoder geocodeAddressString:[NSString stringWithFormat:@"%@%@",textField.text,string] inRegion:region
completionHandler:^(NSArray* placemarks, NSError* error){
//filling the tableView code
}];

apple docs:

“指定区域可让您确定返回结果的优先级
靠近某些特定地理区域的位置”

但是,如果我开始点击最近的街道名称,我会得到来自世界各地的结果,但不是我想要的街道。我需要在字段中输入整个街道名称,以获取 placemarks数组。如何从地址解析器中获取最近的优先结果?

编辑:

我不知道地址是街道,邮政编码,城市名称还是地名。行为类似于“ map ”应用程序,在该应用程序中,在所有位置都只能搜索一个文本字段。

最佳答案

“如果我开始点击最近的街道名称”

在我看来,您正在根据用户输入的查询进行搜索。您应该使用Map Kit中的MKLocalSearch对用户可以通过名称,地址或类型描述的位置执行搜索。地理编码用于将 map 坐标转换为结构化地址,反之亦然。

引用文档:

尽管本地搜索和地理编码相似,但它们支持
不同的用例。当您想在之间进行转换时使用地理编码
map 坐标和结构化地址,例如地址簿
地址。当您要查找一组位置时,请使用本地搜索
符合用户输入的内容。

例如:

MKLocalSearchRequest *request = [MKLocalSearchRequest new];
request.naturalLanguageQuery = @"saint";
request.region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(48.850354, 2.337341), 500, 500);

MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request];

[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
for (MKMapItem *item in response.mapItems) {
NSLog(@"item.placemark.name = %@", item.placemark.name);
}
}];

根据我指定的区域,我将得到以下正确的结果:
item.placemark.name = Eglise Saint Sulpice
item.placemark.name = J'Go Saint Germain
item.placemark.name = Terrazza Saint Germain
item.placemark.name = Hôtel Odéon Saint Germain
item.placemark.name = Le Bon Saint Pourcain
item.placemark.name = Hotel Le Relais Saint Germain
item.placemark.name = Piscine Saint Germain
item.placemark.name = Bistrot de la Grille Saint Germain
item.placemark.name = Esprit Saint Germain
item.placemark.name = Hôtel Relais Saint Sulpice

然后,您可以自由地对获得的结果做任何想要的事情。

关于ios - CL位置,地理编码器和区域搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26719494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com