无缝集成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:
GoogleMaps.Directions)GoogleMaps.DistanceMatrix)GoogleMaps.Elevation)GoogleMaps.Geocode.PlaceGeocode)GoogleMaps.Geocode.AddressGeocode)GoogleMaps.Geocode.LocationGeocode)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)GooglePlaces.Search.FindSearch)GooglePlaces.Search.NearBySearch)GooglePlaces.Search.TextSearch)GooglePlaces.Details)GooglePlaces.Photos)GooglePlaces.AutoComplete)GooglePlaces.QueryAutoComplete)GoogleSearch.WebSearch)GoogleSearch.ImageSearch)GoogleSearch.VideoSearch.Channels)GoogleSearch.VideoSearch.Playlists)GoogleSearch.VideoSearch.Vidoes)GoogleTranslate.Detect)GoogleTranslate.Languages)GoogleTranslate.Translate)运行测试套件很简单。
测试项目在application.default.json中存储与您的Google订阅(免费或付费)相关的设置。
最重要的是ApiKey,用于识别Google订阅。
{ "ApiKey": "", "SearchEngineId": "", }
有关生成密钥的更多信息,请参见:https://console.developers.google.com/