import request from '@/utils/request'
|
|
// 地图地址搜索API
|
export function searchAddress(keyword, region) {
|
// 参数验证
|
if (!keyword) {
|
return Promise.reject(new Error('参数不完整,缺少关键词'))
|
}
|
|
return request({
|
url: '/system/gps/address/search',
|
method: 'get',
|
params: {
|
keyword: keyword,
|
region: region || '广州'
|
}
|
})
|
}
|
|
// 地图逆地址解析API
|
export function reverseGeocoder(lat, lng) {
|
// 参数验证
|
if (lat === undefined || lat === null || lng === undefined || lng === null) {
|
return Promise.reject(new Error('参数不完整,缺少经纬度坐标'))
|
}
|
|
// 检查参数有效性
|
if (isNaN(lat) || isNaN(lng)) {
|
return Promise.reject(new Error('参数无效,经纬度坐标格式错误'))
|
}
|
|
return request({
|
url: '/system/gps/address/geocoder',
|
method: 'get',
|
params: {
|
lat: lat,
|
lng: lng
|
}
|
})
|
}
|
|
// 地图路线规划API(计算两点间距离)
|
export function calculateDistance(fromLat, fromLng, toLat, toLng) {
|
// 参数验证
|
if (fromLat === undefined || fromLat === null ||
|
fromLng === undefined || fromLng === null ||
|
toLat === undefined || toLat === null ||
|
toLng === undefined || toLng === null) {
|
return Promise.reject(new Error('参数不完整,缺少起点或终点坐标'))
|
}
|
|
// 检查参数有效性
|
if (isNaN(fromLat) || isNaN(fromLng) || isNaN(toLat) || isNaN(toLng)) {
|
return Promise.reject(new Error('参数无效,坐标格式错误'))
|
}
|
|
return request({
|
url: '/system/gps/route/distance',
|
method: 'get',
|
params: {
|
fromLat: fromLat,
|
fromLng: fromLng,
|
toLat: toLat,
|
toLng: toLng
|
}
|
})
|
}
|
|
// ==================== 百度地图接口 ====================
|
|
// 百度地图地理编码API(地址转坐标)
|
export function baiduGeocoding(address, city) {
|
// 参数验证
|
if (!address) {
|
return Promise.reject(new Error('参数不完整,缺少地址信息'))
|
}
|
|
return request({
|
url: '/system/gps/baidu/geocoding',
|
method: 'get',
|
params: {
|
address: address,
|
city: city
|
}
|
})
|
}
|
|
// 百度地图路线规划API(计算两个坐标之间的驾车距离)
|
export function baiduRouteDriving(origin, destination) {
|
// 参数验证
|
if (!origin || !destination) {
|
return Promise.reject(new Error('参数不完整,缺少起点或终点坐标'))
|
}
|
|
// 验证坐标格式(纬度,经度)
|
const originParts = origin.split(',')
|
const destParts = destination.split(',')
|
if (originParts.length !== 2 || destParts.length !== 2) {
|
return Promise.reject(new Error('坐标格式错误,应为:纬度,经度'))
|
}
|
|
return request({
|
url: '/system/gps/baidu/route/driving',
|
method: 'get',
|
params: {
|
origin: origin,
|
destination: destination
|
}
|
})
|
}
|
|
// 百度地图计算两个地址之间的距离(组合接口:地址转坐标 + 路线规划)
|
export function baiduDistanceByAddress(fromAddress, fromCity, toAddress, toCity) {
|
// 参数验证
|
if (!fromAddress || !toAddress) {
|
return Promise.reject(new Error('参数不完整,缺少起点或终点地址'))
|
}
|
|
return request({
|
url: '/system/gps/baidu/distance/byAddress',
|
method: 'get',
|
params: {
|
fromAddress: fromAddress,
|
fromCity: fromCity,
|
toAddress: toAddress,
|
toCity: toCity
|
}
|
})
|
}
|
|
// 百度地图地址搜索提示API(输入联想)
|
export function baiduPlaceSuggestion(query, region) {
|
// 参数验证
|
if (!query) {
|
return Promise.reject(new Error('参数不完整,缺少搜索关键词'))
|
}
|
|
return request({
|
url: '/system/gps/baidu/place/suggestion',
|
method: 'get',
|
params: {
|
query: query,
|
region: region || '广州'
|
}
|
})
|
}
|