Google API
无缝集成Google API。 包括Google地图、地点、道路、搜索和翻译。
欢迎贡献、提问和报告问题。我通常会快速回复(24-48小时内)。 如果你需要支持其他.Net框架,请告诉我。
新版本:5.0.0版本新增路线API(方向和矩阵)、航拍视图API和地址验证API。
使用库
可以通过使用单独的外观实现或通过依赖注入各个API来使用该库。 每个API实现都包含一个请求和一个响应。请求具有反映支持参数的属性,响应表示返回的JSON的对象模型。
其他一些值得注意的成员:
var uri = request.GetUri(); // 获取完整的请求URI,包括查询参数。
var params = request.GetQUeryStringParameters(); // 获取所有添加的参数列表。
response.RawJson // Google返回的原始JSON。
response.RawQueryString // 调用请求时发送给Google的查询字符串。
外观
每个API都有一个通用的外观操作来执行请求并返回响应。 下面的示例简单地填充请求,调用外观操作,并接收返回的响应。
TRequest request = new TRequest();
TResponse response = await {Api}.[{SubGroup}].{Action}.QueryAsync<TRequest, TResponse>(request);
有关支持的API和操作的完整列表,请参见下文。
依赖注入
如果首选将API注入为依赖项,请在启动时注册服务,如下所示:
services
.AddGoogleApiClients();
然后,根据需要在构造函数中注入各个API
public class MyClass
{
private Api api;
public MyClass(Api api)
{
this.api = api
}
}
有关支持的API和操作的完整列表,请参见下文。
代理
如果需要WebProxy
,请在注册GoogleApi依赖项或使用外观之前设置静态属性HttpClientFactory.Proxy
。
支持的API
支持以下API:
Google地图
- 路线(
GoogleMaps.Directions
) - 距离矩阵(
GoogleMaps.DistanceMatrix
) - 海拔(
GoogleMaps.Elevation
) - 地理编码
- 地点(
GoogleMaps.Geocode.PlaceGeocode
) - 地址(
GoogleMaps.Geocode.AddressGeocode
) - 位置(反向)(
GoogleMaps.Geocode.LocationGeocode
) - Plus代码(
GoogleMaps.Geocode.PlusCodeGeocode
)
- 地点(
- 地理定位(
GoogleMaps.Geolocation
) - 道路
- 最近道路(
GoogleMaps.Roads.NearestRoads
) - 贴合道路(
GoogleMaps.Roads.SnapToRoad
) - 限速(
GoogleMaps.Roads.SpeedLimits
)
- 最近道路(
- 时区
- 街景
- 静态地图
- 路线
- 路线方向(
GoogleMaps.Routes.Directions
) - 路线矩阵(
GoogleMaps.Routes.Matrix
)
- 路线方向(
- 地址验证(
GoogleMaps.AddressValidation
) - 航拍视图(测试版)
- 获取视频(
GoogleMaps.AerialView.GetVideo
) - 渲染视频(
GoogleMaps.AerialView.RenderVideo
)
- 获取视频(
Google地点
- 地点搜索
- 查找(
GooglePlaces.Search.FindSearch
) - 附近(
GooglePlaces.Search.NearBySearch
) - 文本(
GooglePlaces.Search.TextSearch
)
- 查找(
- 地点详情(
GooglePlaces.Details
) - 地点照片(
GooglePlaces.Photos
) - 地点自动完成(
GooglePlaces.AutoComplete
) - 查询自动完成(
GooglePlaces.QueryAutoComplete
)
Google搜索
- 网页(
GoogleSearch.WebSearch
) - 图片(
GoogleSearch.ImageSearch
) - 视频
- 频道(
GoogleSearch.VideoSearch.Channels
) - 播放列表(
GoogleSearch.VideoSearch.Playlists
) - 视频(
GoogleSearch.VideoSearch.Vidoes
)
- 频道(
Google翻译
- 检测(
GoogleTranslate.Detect
) - 语言(
GoogleTranslate.Languages
) - 翻译(
GoogleTranslate.Translate
)
Google函数
- 合并折线
- 编码折线
- 解码折线
运行测试套件
运行测试套件很简单。
测试项目在application.default.json
中存储与您的Google订阅(免费或付费)相关的设置。
最重要的是ApiKey
,用于识别Google订阅。
{
"ApiKey": "",
"SearchEngineId": "",
}
有关生成密钥的更多信息,请参见:https://console.developers.google.com/