axios
.post(options.url, options.sendata)
.then(procResponce(response))
.catch(procError(error))
.finally(procFinal());
axios
.post(options.url, options.sendata)
.then((response) => {
procResponce(response)
})
.catch((error) => {
procError(error)
})
.finally(() => {
procFinal()
})
},
axios
.post(options.url, options.sendata)
.then(() => {
procResponce()
})
.catch(() => {
procError()
})
.finally(() => {
procFinal()
})
},
this.map.on('draw:created', (e) => {
const layer = e.layer;
// проверяем есть ли какие-то существующие слои
if (this.zonesLayers['_layers'] && Object.keys(this.zonesLayers['_layers']).length) {
// проверяем пересекается ли этот созданный слой со всеми уже существующими слоями
for (const existingZoneLayerKey in this.zonesLayers['_layers']) {
const existingZoneLayer = this.zonesLayers['_layers'][existingZoneLayerKey];
if (this.intersectionPolygonLayersCheck(layer, existingZoneLayer)) {
// пересечение полигонов!
this.showIntersectionErrorWhenZoneCreating = true;
return;
}
}
}
// тут если все ок - сохраняем
});
// при сохранении отредактированного
this.map.on('draw:edited', (e) => {
let haveZonesIntersections = false;
const layers = e.layers;
// начинаем проверку на пересечение полигонов
layers.eachLayer((layer) => {
for (const existingZoneLayerKey in this.zonesLayers['_layers']) {
if (this.zonesLayers['_layers'][existingZoneLayerKey] !== layer) {
const existingZoneLayer = this.zonesLayers['_layers'][existingZoneLayerKey];
if (this.intersectionPolygonLayersCheck(layer, existingZoneLayer)) {
// пересечение полигонов!
haveZonesIntersections = true;
this.showIntersectionErrorWhenZoneCreating = true;
return;
}
}
}
if (!haveZonesIntersections) {
// если нет пересечений сохраняем куда-нибудь
}
});
intersectionPolygonLayersCheck(polygonLayerOne, polygonLayerTwo) {
// приводим полигоны к виду, понятному turf js
const polygonOne = polygonLayerOne.toGeoJSON();
const polygonTwo = polygonLayerTwo.toGeoJSON();
// проверяем пересечение с помощью turf js
const intersectCheckResult = intersect(polygonOne, polygonTwo);
// console.log(intersectCheckResult);
if (intersectCheckResult === null) {
return false;
} else {
// если результат пересенчения - полигон или мультиполигон то считаем что пересекаются
if (intersectCheckResult.geometry && intersectCheckResult.geometry.type === 'Polygon') {
return true;
} else if (intersectCheckResult.geometry && intersectCheckResult.geometry.type === ' MultiPolygon') {
return true;
} else {
// а если результат перессечения другой (документация говорит что может быть
// Point или MultiPoint или LineString или MultiLineString)
// то считаем что нет пересечения
return false;
}
}
},
methods : {
sendCredentials() {
axios.post('http://URL/', {
username: this.username,
password: this.password
})
.then((response) => {
axios.defaults.headers.common.['Authorization'] = response.data.TOKEN;
})
.catch((error) => {
console.log(error);
});
},
}