Zum Hauptinhalt gehen

VertiGIS Studio Web - Create New Feature tool

Kommentare

8 Kommentare

  • Peter MacKenzie

    yes I agree. I often need to quickly launch editable layers that have a category in the form of a domain / list . The user needs to be able to click the category and then create a feature. ESRI apps has this and it makes a lot of sense for probably 90% of my editing requirements. 

    2
  • Ingmar

    Agree, we are facing the same issue. Following this topic. We also asked our local supplier/support.

    Looks like this is a missing functionality within VertiGIS Studio Web. I expected this to be standard/out-of-thebox functionality. I'm afraid we will have to make another custom workflow (WF5) for this simple task. 

    1
  • Andrew Oldham

    That's too bad but good to know - thanks for sharing Nico Burgerhart!

    I can totally get some of those use cases outlined in the linked comment being a bit much for an out-of-the-box tool (or something like the Web App Builder's Smart Editor that some users got used to). I was just at least hoping for feature parity (or very close to) with the out-of-the-box Create New Feature tool in Essentials as we make our move to VSW.

    Sounds like we will need to turn to another Workflow; just more work.

    Thanks again!

    1
  • Gareth Evans

    Hey Andrew & everyone on this thread

    You're correct in observing that our current OOTB method for feature creation in VSW requires accessing the layer for its "Add Feature" operation, or configuring an "Add Feature" command that uses the edit.create-feature that targets the specific layer first. However, the pattern you've described merits further investigation as we'd of course like to cover as much functionality OOTB as reasonably possible. This sounds like a great general use case that could be addressed as part of the product.

    Let me clarify to ensure I understand your suggestion: You're proposing an out-of-the-box tool within VSW's resources, named "Create New Feature". This tool, when initiated, would compile a list of all feature services available in the current web map, displaying them alongside their respective symbology. Users could then select a specific feature layer, and be shown a creation interface detailing all relevant attributes, possibly including a picker for location. Is that an accurate representation of your idea?

    2
  • Andrew Oldham

    Hi @... thanks for reaching out!

    Yes, that sounds like an accurate representation of the idea.

    This is what the current OOTB Essentials tool does. The user clicks the tool up on the toolbar (1) and the tool opens (2) and the users are presented with editable layers (with symbology) within the tool (3):

    then the users selects one of the layer templates in the tool (4) and they are prompted to create some geometry (5) and they draw the geometry and double click to end (6):

     then they are presented with the attributes (and default values) all controlled from the service template (7):

    and if they scroll down through all the attributes (8) they click save (9) and it commits the edits.
    That should do it!

    Let me know if you have any other questions. Again, thank you for reaching out!

    2
  • Yannick Mijnheer

    Hi all! I'm a collegue of Ingmar, and we created a Workflow that does the trick for us (although an OOTB workflow would still be preferable).

    Here are some tips that we found along the way:

    First step for the user is to pick the layer that they want to edit. We offer a list of editable layers in a display form. The list is created with the following statement, this gets all feature layers where the current user has editing privileges (the $map refers to the output of a Get Map-activity):

    =$map.map.map.layers.items.slice().reverse().filter((layer) => { return layer.type === "feature" && layer.userHasEditingPrivileges})

    After the user has picked an editable layer, we wanted to rely on the OOTB 'add feature'-functionality, using the command 'edit.display-add-feature', so that we don't have to define a template on the fly. The input Command Parameter looks like this (can't get this part in a code block somehow):

    {

         "orientation": "vertical",
          "showTitles": true,
          "formUITarget": {
            "parent": "panel-810b0210",
            "attributes": {
              "slot": "panel"
            }
          },
          "templateUITarget": {
            "parent": "panel-810b0210",
            "attributes": {
              "slot": "panel"
            }
          },
          "layers": "item://layer-extension/" + $chosenLayerRefID.result

    }

    In these arguments there are two parts that should be changed for your application:

    • Both occurances of panel-810b0210 should be replaced with the ID of a panel in your viewer, where you want the edits to take place. In our case, we used the ID of the panel where the Workflow itself runs, so that there's a smooth transition for the user from our workflow to the 'add-feature'-functionality.
    • The $chosenLayerRefID.result is a parameter that is based on the layer picked by the user, in the first display form. This one was very tricky, because it is an ID of a layer-extension. There is no easy way to get this ID based on a layer ID, but I managed to get it working with help of support. You need these two steps:
    1. Run the following Operation: app.create-project
    2. Create a new value based on the output of this operation, with the following code. The layerID.result should reference the layer ID of the layer chosen by the user:
    =$runOperationCreateProject.result.items.find(x => x.$type == "layer-extension" && x.layer.$ref.id == $layerID.result).id

    That's how we got it working for us :) Hope it helps someone.

    Cheers, Yannick

    4
  • Daniel Matsalla

    Would it be possible to get a copy of this workflow?  I've been unsuccessful creating from the listed steps.

    2

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.