tchen-vuelayers
Version:
Web map Vue components with the power of OpenLayers
51 lines (43 loc) • 1.08 kB
JavaScript
/**
* VueLayers
* Web map Vue components with the power of OpenLayers
*
* @package vuelayers
* @author Vladimir Vershinin <ghettovoice@gmail.com>
* @version 0.11.1
* @license MIT
* @copyright (c) 2017-2019, Vladimir Vershinin <ghettovoice@gmail.com>
*/
import Feature from 'ol/Feature';
import uuid from 'uuid/v4';
import Vue from 'vue';
import { isNumber, isPlainObject, isString } from '../util/minilo';
/**
* Basic feature initialization
* @param feature
*/
function initFeature(feature) {
if (feature.getId() == null) {
feature.setId(uuid());
}
return feature;
}
/**
* @param {Object|Vue|Feature|string|number} feature
* @return {string|number}
* @throws {Error}
*/
function getFeatureId(feature) {
var id;
if (isPlainObject(feature) || feature instanceof Vue) {
id = feature.id;
} else if (feature instanceof Feature) {
id = feature.getId();
} else if (isString(feature) || isNumber(feature)) {
id = feature;
} else {
throw new Error('Illegal feature format');
}
return id;
}
export { initFeature, getFeatureId };