5 votos

Editar sin hacer clic en un mapa - ESRI JS API

Estoy buscando construir una nueva aplicación que permita al personal editar un servicio/capa. Van a introducir nuevos datos de referencia de la encuesta basados en la latitud y la longitud.

Todas las muestras actuales que he visto en el sitio de ESRI muestran la edición realizada haciendo clic en un punto del mapa y luego rellenando los campos en la ventana emergente.

Mi objetivo sería introducir primero los campos y luego que la aplicación reconozca las x,y y dibuje el nuevo punto.

Esto eliminaría el error de que el punto sobre el que se hace clic no sea realmente las coordenadas correctas.

Además, harán la entrada en la oficina, por lo que habilitar el GPS o similar en la app no será útil.

¿Alguien conoce algún ejemplo o forma de hacerlo?

4voto

Paul Hargreaves Puntos 1022

Básicamente, configure sus propios cuadros de texto, cuadros de selección, etc. Poner un manejador de eventos onclick en el botón de envío (dojo.connect()). Obtén los valores de las cajas de entrada. A continuación, utilice el long/lat y otros atributos que recoja, cree un objeto de geometría y atributos, cree un gráfico a partir de ellos y luego envíelo a su capa de característica editable utilizando editableFeatureLayer.applyEdits

//create a graphic
var pt = new esri.geometry.Point(-118.15, 33.80, new esri.SpatialReference({ wkid: 4326 }));
var attr = {"Xcoord":evt.mapPoint.x,"Ycoord":evt.mapPoint.y,"Plant":"Mesa Mint"};
var addGraphic = new esri.Graphic(pt,null,attr,null);

//you can add more attributes to the graphic
var d = new Date();
addGraphic.attributes.Updated_By = loginName;
addGraphic.attributes.Updated_Date = d.getTime();

//Using your editable feature layer add the graphic
editableFeatureLayer.applyEdits([addGraphic], null, null, function (adds, updates, deletes) {
    var query = new esri.tasks.Query();
    query.objectIds = [adds[0].objectId];
    //highlight on the map after adding if you want
    editableFeatureLayer.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function () {
        pairedAGSDynamicMapServiceLayer.refresh();
    });
    dojo.byId('infoPane').innerHTML = "Added feature successfully<br />OBJECTID: " + adds[0].objectId + "<br />";
}, 
{   // if errors
    pairedAGSDynamicMapServiceLayer.refresh();
    dojo.byId('infoPane').innerHTML = "Error during add operation";
});

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X