client-search
Version:
客户端搜索
96 lines • 3.64 kB
JavaScript
import { isArray, isEmpty, isNumber, isString } from 'lodash';
export function adapterTips(response) {
return response.map(adapterTip);
}
export function adapterTip(response) {
if (!response)
return [];
if (!response.body)
return [];
if (!Array.isArray(response.body.tips))
return [];
return response.body.tips
.map(function (tip) {
var adapterValue = {
adcode: isString(tip.adcode) ? tip.adcode : '',
address: isString(tip.address) ? tip.address : '',
city: isString(tip.city) ? tip.city : '',
district: isString(tip.district) ? tip.district : '',
id: isString(tip.id) ? tip.id : '',
location: isString(tip.location) ? tip.location : '',
name: isString(tip.name) ? tip.name : '',
typecode: isString(tip.typecode) ? tip.typecode : '',
};
if (!adapterValue.location) {
return null;
}
return adapterValue;
})
.filter(function (v) { return !!v; });
}
export function adapterAddressComponent(response) {
if (!response)
return null;
var addressComponent = null;
if (response.regeocode) {
addressComponent = regeo();
}
if (response.geocodes) {
addressComponent = reo();
}
function regeo() {
if (!response.regeocode)
return null;
if (isString(response.regeocode.addressComponent))
return null;
if (isArray(response.regeocode.addressComponent))
return null;
if (isNumber(response.regeocode.addressComponent))
return null;
if (isEmpty(response.regeocode.addressComponent))
return null;
return response.regeocode.addressComponent;
}
function reo() {
if (!isArray(response.geocodes))
return null;
if (!response.geocodes.length)
return null;
return response.geocodes[0];
}
if (!addressComponent)
return null;
return {
adcode: isString(addressComponent.adcode) ? addressComponent.adcode : '',
building: isString(addressComponent.building) ? addressComponent.building : '',
businessAreas: addressComponent.businessAreas,
city: isString(addressComponent.city) ? addressComponent.city : '',
citycode: isString(addressComponent.citycode) ? addressComponent.citycode : '',
country: isString(addressComponent.country) ? addressComponent.country : '',
district: isString(addressComponent.district) ? addressComponent.district : '',
neighborhood: isString(addressComponent.neighborhood) ? addressComponent.neighborhood : '',
province: isString(addressComponent.province) ? addressComponent.province : '',
streetNumber: isString(addressComponent.streetNumber) ? addressComponent.streetNumber : '',
towncode: isString(addressComponent.towncode) ? addressComponent.towncode : '',
township: isString(addressComponent.township) ? addressComponent.township : '',
};
}
export function adapterDistrict(response) {
if (!response)
return [];
if (!response.districts || !response.districts.length) {
return [];
}
return response.districts.map(function (district) {
var coordinate = district.center;
if (!isString(coordinate)) {
return null;
}
var _a = coordinate.split(','), longitude = _a[0], latitude = _a[1];
return {
latitude: latitude,
longitude: longitude,
};
});
}
//# sourceMappingURL=adapter.js.map