GitHub地址:github.com/fluttify-pr…html
dependencies:
flutter:
sdk: flutter
amap_search_fluttify: ^x.x.x
复制代码
android {
signingConfigs {
release {
keyAlias 'amap_map_test'
keyPassword 'amap_map_test'
storeFile file('../amap_map_test.jks')
storePassword 'amap_map_test'
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
profile {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
}
}
}
复制代码
import 'package:amap_search_fluttify/amap_search_fluttify.dart';
复制代码
高德提供了千万级别的 POI(Point of Interest,兴趣点)。在地图表达中,一个 POI 可表明一栋大厦、一家商铺、一处景点等等。经过POI搜索,完成找餐馆、找景点、找厕所等等的功能。地图 SDK 的搜索功能提供多种获取 POI 数据的接口,下文将逐一介绍。android
根据关键字检索适用于在某个城市搜索某个名称相关的POI,例如:查找北京市的“肯德基”。ios
注意:
一、关键字未设置城市信息(默认为全国搜索)时,若是涉及多个城市数据返回,仅会返回建议城市,请根据APP需求,选取城市进行搜索。
二、不设置POI的类别,默认返回“餐饮服务”、“商务住宅”、“生活服务”这三种类别的POI,下方提供了POI分类码表,请按照列表内容设置但愿检索的POI类型。(建议使用POI类型的代码进行检索)
实现关键字检索的步骤以下:git
final poiList = await AmapSearch.instance.searchKeyword(
'关键字',
city: '城市',
);
复制代码
此方法会返回一个Poi列表,Poi
中包含了全部信息。github
适用于搜索某个位置附近的POI,可设置POI的类别,具体查询所在位置的餐饮类、住宅类POI,例如:查找天安门附近的厕所等等场景。
与关键字检索的惟一区别须要经过 radius
参数设置圆形查询范围。
redis
final poiList = await AmapSearch.instance.searchAround(
LatLng(29.08, 119.65),
keyword: '关键字',
type: '类型',
city: '城市',
radius: 1000, // 搜索半径
);
复制代码
输入提示是指根据用户输入的关键词,给出相应的提示信息,将最有可能的搜索词呈现给用户,以减小用户输入信息,提高用户体验。如:输入“方恒”,提示“方恒国际中心A座”,“方恒购物中心”等。
例如用户输入“高德”,输入框下方的列表会显示包含关键字字段的输入提示信息。显示效果如图所示:
markdown
实现输入提示的步骤以下:app
final inputTipList = await AmapSearch.instance.fetchInputTips(
'关键字',
city: '城市',
);
复制代码
返回类型为InputTip列表。ide
注意:
a 、因为提示中会出现相同的关键字,可是这些关键字所在区域不一样,使用时能够经过district
字段得到区域,也能够在提示时在关键字后加上区域。
b、当 Tip 的 getPoiID() 返回空,而且 getPoint() 也返回空时,表示该提示词不是一个真实存在的 POI,这时区域、经纬度参数都是空的,此时可根据该提示词进行POI关键词搜索
c、当 Tip 的 getPoiID() 返回不为空,但 getPoint() 返回空时,表示该提示词是一个公交线路名称,此时用这个id进行公交线路查询。
d、当 Tip 的 getPoiID() 返回不为空,且 getPoint() 也不为空时,表示该提示词一个真实存在的POI,可直接显示在地图上。
oop
地理编码基本介绍
地理编码,又称为地址匹配,是从已知的结构化地址描述到对应的经纬度坐标的转换过程。该功能适用于根据用户输入的地址确认用户具体位置的场景,经常使用于配送人员根据用户输入的具体地址找地点。
结构化地址的定义: 首先,地址确定是一串字符,内含国家、省份、城市、城镇、乡村、街道、门牌号码、屋邨、大厦等建筑物名称。按照由大区域名称到小区域名称组合在一块儿的字符。一个有效的地址应该是独一无二的。注意:针对大陆、港、澳地区的地理编码转换时能够将国家信息选择性的忽略,但省、市、城镇等级别的地址构成是不能忽略的。
注意:该功能能够返回一部分POI数据内容,但核心能力是完成结构化地址到经纬度的转换。
根据给定的地理名称和查询城市,返回地理编码的结果列表。显示效果如图:
实现步骤以下:
final geocodeList = await AmapSearch.instance.searchGeocode(
'关键字',
city: '城市',
);
复制代码
逆地理编码,又称地址解析服务,是指从已知的经纬度坐标到对应的地址描述(如行政区划、街区、楼层、房间等)的转换。经常使用于根据定位的坐标来获取该地点的位置详细信息,与定位功能是黄金搭档。
示例代码以下:
final reGeocodeList = await AmapSearch.instance.searchReGeocode(
LatLng(29, 119),
radius: 200.0,
);
复制代码
公交出行路线规划 指定起点[from]和终点[to]进行计算, 还能够指定计算路径的模式[mode], 默认为最快捷. [city]指定所在城市,[nightflag]是否计算夜班车,默认为不计算,0:不计算,1:计算
final routeResult = await AmapSearch.instance.searchBusRoute(
from: LatLng(
double.parse(_fromLatController.text),
double.parse(_fromLngController.text),
),
to: LatLng(
double.parse(_toLatController.text),
double.parse(_toLngController.text),
),
city: '杭州',
);
复制代码
根据县(区)级行政区划名称查询其下级区划的详细信息,如:中心点坐标、编码等等。
目前能查询到街道级别的信息,例如:中国>山东省>济南市>历下区>舜华路街道(国>省>市>区>街道)。
示例代码以下:
final district = await AmapSearch.instance.searchDistrict(
_keywordController.text,
showBoundary: true,
);
复制代码
步行路径规划能够根据起终点和步行路线的数据,使用 addPolyline
画出步行路线图层,包括起终点和转弯点。另外也能够自定义起终点和步行转弯点的图标。
final routeResult = await AmapSearch.instance.searchWalkRoute(
from: LatLng(
double.parse(_fromLatController.text),
double.parse(_fromLngController.text),
),
to: LatLng(
double.parse(_toLatController.text),
double.parse(_toLngController.text),
),
);
复制代码
返回routeResult
后,可使用其字段拿到关心的数据。
驾车路径规划能够根据起终点和驾车路线的数据,使用 addPolyline
画出驾车路线图层,包括起终点和转弯点。另外也能够自定义起终点和驾车转弯点的图标。
final routeResult = await AmapSearch.instance.searchDriveRoute(
from: LatLng(
double.parse(_fromLatController.text),
double.parse(_fromLngController.text),
),
to: LatLng(
double.parse(_toLatController.text),
double.parse(_toLngController.text),
),
passedByPoints: [], // 途径点
avoidRoad: '避开道路',
);
复制代码
返回routeResult
后,可使用其字段拿到关心的数据。
公交路径规划能够根据起终点和公交换乘的数据,使用 BusRouteOverlay 画出公交路线图层,包括起终点和换乘点。另外也能够自定义起终点和换乘点的图标。
目前支持跨城公交路线规划,提供不一样城市之间的火车换成方案。
指定起点[from]和终点[to]进行计算, 还能够指定计算路径的模式[mode], 默认为最快捷. [city]指定所在城市,[nightflag]是否计算夜班车,默认为不计算,0:不计算,1:计算
final routeResult = await AmapSearch.instance.searchBusRoute(
from: LatLng(
double.parse(_fromLatController.text),
double.parse(_fromLngController.text),
),
to: LatLng(
double.parse(_toLatController.text),
double.parse(_toLngController.text),
),
city: '城市',
mode: 0,
nightflag: 0,
);
复制代码
返回routeResult
后,可使用其字段拿到关心的数据。
骑行路径规划能够根据起终点和骑行路线的数据,使用 addPolyline
画出骑行路线图层,包括起终点和转弯点。另外也能够自定义起终点和骑行转弯点的图标。
final routeResult = await AmapSearch.instance.searchRideRoute(
from: LatLng(
double.parse(_fromLatController.text),
double.parse(_fromLngController.text),
),
to: LatLng(
double.parse(_toLatController.text),
double.parse(_toLngController.text),
),
);
复制代码
返回routeResult
后,可使用其字段拿到关心的数据。
Copyright (C) 2020 yohom
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.