我正在使用这个(在下面找到)api 来搜索从 google 获取地点建议。只需从 google 控制台创建一个 api 密钥并启用 google places api。我认为它不是免费的,但每天 1000 个电话是免费的。
自动完成 API:-
https://maps.googleapis.com/maps/api/place/autocomplete/json?key=api_key&input=text_to_search
NearBy API:-
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=YOUR_API_KEY
google 的这个自动完成地点 api 将根据您提供给它的文本为您提供建议。
""""""""""""""""""""
为了根据api给定的json显示搜索结果,我在数据到来时使用tableview重新加载表格。
对于搜索,我使用的是文本字段而不是搜索栏。借助文本字段的委托方法,我实现了文本字段中的文本更改并调用 api 以获取结果,因为文本是文本字段中的更新。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *stringWithformat = [textField.text stringByReplacingOccurrencesOfString:@" " withString:@"+"];
[self CallToPlaceAPI:stringWithformat];
return YES;
}
使用文本字段下方的表格显示给定 API 结果的自动完成建议的结果。
我在 ios 应用程序中使用谷歌地图集成。当您在搜索的帮助下找到一个位置时,使用此代码将地图移动到该位置。
技巧:- 在视图中间添加一个静态图钉,在其中添加您的谷歌地图。谷歌地图将移动到通过搜索找到的位置。谷歌地图将自动在地图中间显示搜索位置。所以它将是在您的静态图钉下。使用此谷歌地图代码移动地图。
-(void)moveMapToLatLong
{
cameraPosition = [GMSCameraPosition cameraWithLatitude:latitude longitude:longitude zoom:12];
mapViewmain.camera = cameraPosition;
}
通过这种方式,我运行良好。
谢谢