here_maps_webservice
here_maps_webservice 提供了 Here Maps Web Services API 包装器,服务于从搜索到地理编码的各种目的。
用法
将 here_maps_webservice 添加到您的 pubspec.yaml 文件作为依赖项
dependencies:
flutter:
sdk: flutter
here_maps_webservice: 1.0.2
在终端中运行 flutter pub get 并导入 import 'package:here_maps_webservice/here_maps.dart'
可用API
生成API KEY
前往 https://developer.here.com/ 并创建一个新账户(如果您还没有)。创建一个新项目并选择 Freemium Plan。
在您项目的 REST 部分,点击“创建 API 密钥”。
示例
附近地点
import 'package:here_maps_webservice/here_maps.dart';
import 'package:location/location.dart' as l;
import 'package:flutter/services.dart';
var currentLocation;
var location = new l.Location();
List<dynamic> _nearbyPlaces=[];
try {
currentLocation = await location.getLocation();
}on PlatformException catch (error) {
if (error.code == 'PERMISSION_DENIED') {
print("Permission Dennied");
}
}
HereMaps(apiKey: "your apiKey")
.exploreNearbyPlaces( lat: currentLocation.latitude, lon: currentLocation.longitude,offset: 10)
.then((response) {
setState(() {
_nearbyPlaces.addAll(response['results']['items']);
});
});
热门地点
import 'package:here_maps_webservice/here_maps.dart';
import 'package:location/location.dart' as l;
import 'package:flutter/services.dart';
var currentLocation;
var location = new l.Location();
List<dynamic> _explorePopularPlace = [];
try {
currentLocation = await location.getLocation();
}on PlatformException catch (error) {
if (error.code == 'PERMISSION_DENIED') {
print("Permission Dennied");
}
}
HereMaps(apiKey: "your apiKey")
.explorePopularPlaces(
lat: currentLocation.latitude,
lon: currentLocation.longitude,
offset: 10)
.then((response) {
setState(() {
_explorePopularPlace.addAll(response['results']['items']);
});
});
地理编码自动完成
import 'package:here_maps_webservice/here_maps.dart';
List<dynamic> _suggestion = [];
HereMaps(apiKey: "your apiKey")
.geoCodingAutoComplete(query: "YourQuery")
.then((response) {
setState(() {
_suggestion.addAll(response['suggestions']);
});
});
Geocoding
import 'package:here_maps_webservice/here_maps.dart';
Map<String, dynamic> latLon = Map();
HereMaps(apiKey: "your apiKey")
.geoCode(searchText: _searchController.text)
.then((response) {
setState(() {
latLon = response['Response']['View'][0]['Result'][0]['Location']
['DisplayPosition'];
});
});
反向地理编码
import 'package:here_maps_webservice/here_maps.dart';
import 'package:location/location.dart' as l;
import 'package:flutter/services.dart';
var currentLocation;
var location = new l.Location();
try {
currentLocation = await location.getLocation();
}on PlatformException catch (error) {
if (error.code == 'PERMISSION_DENIED') {
print("Permission Dennied");
}
}
Map<String,dynamic> response = HereMaps(apiKey: "your apiKey")
.reverseGeoCode(lat: currentLocation.latitude, lon: currentLocation.longitude)
待办事项
- 将所有参数添加到现有API中
- 添加测试
- 为现有API创建模型类
- 添加路由API
功能请求和问题
请在 问题跟踪器 提交功能请求和 Bug