// ############## Locator #########################
view.on("click", function (evt) {
const params = {
location: evt.mapPoint
};
locator.locationToAddress(serviceUrl, params).then(
function (response) {
const res = response;
console.log(res);
const house_number = response.attributes.AddNum;
const street = response.attributes.Address;
const city = response.attributes.City;
const district = response.attributes.District;
const postal_code = response.attributes.Postal;
const lat = response.location.latitude;
const long = response.location.longitude;
showAddress(house_number, street, city, district, postal_code, lat, long);
}
);
});
function showAddress(house_number: string, street: string, city: string, district: string, postal_code: string, lat: number, long: number) {
console.log(house_number);
console.log(street);
console.log(city);
console.log(district);
console.log(postal_code);
console.log (lat);
console.log(long);
}
// ExpressionInfos for the Form Template
const houseNumberExpression = new ExpressionInfo({
expression: "",
name: "house_number",
title: "house_number",
returnType: "string"
});
const streetExpression = new ExpressionInfo({
expression: "",
name: "street",
title: "street",
returnType: "string"
});
const cityExpression = new ExpressionInfo({
expression: "",
name: "city",
title: "city",
returnType: "string"
});
const districtExpression = new ExpressionInfo({
expression: "",
name: "district",
title: "district",
returnType: "string"
});
const postalCodeExpression = new ExpressionInfo({
expression: "",
name: "postal_code",
title: "postal_code",
returnType: "string"
});
const latExpression = new ExpressionInfo({
expression: "",
name: "latitude",
title: "latitude",
returnType: "number"
});
const longExpression = new ExpressionInfo({
expression: "",
name: "longitude",
title: "longitude",
returnType: "number"
});
// Field Elements for the Feature Form
const fieldElement1 = new FieldElement({
fieldName: "houseNR",
label: "House Number",
valueExpression: ''
});
const fieldElement2 = new FieldElement({
fieldName: "street",
label: "Street",
valueExpression: ''
});
const fieldElement3 = new FieldElement({
fieldName: "city",
label: "City",
valueExpression: ''
});
const fieldElement4 = new FieldElement({
fieldName: "district",
label: "District"
});
const fieldElement5 = new FieldElement({
fieldName: "postalCode",
label: "Postal Code"
});
const fieldElement6 = new FieldElement({
fieldName: "lat",
label: "X"
});
const fieldElement7 = new FieldElement({
fieldName: "long",
label: "Y"
});
const addressformTemplate = new FormTemplate({
title: "Data editing",
description: "Please enter all relevant information in the fields provided below",
elements: [fieldElement1, fieldElement2, fieldElement3, fieldElement4, fieldElement5, fieldElement6, fieldElement7],
expressionInfos: [houseNumberExpression, streetExpression, cityExpression, districtExpression, postalCodeExpression, latExpression, longExpression ]
});
viewMap.when(() => {
viewMap.map.editableLayers.forEach((layer) => {
if (layer.type === "feature" && layer.title === "Car accidents") {
layer.formTemplate = addressformTemplate;
}
});
const editor = new Editor({
view: viewMap,
container: document.getElementById("editor")
});
viewMap.ui.add("panelContent", "manual")