<\/P>
Então, eu tenho falado muito sobre a ArcGIS API for JavaScript 4.0beta1<\/A> recentemente. Eu declarei meu amor por Accessors<\/A>, e eu acho que Promises<\/A> são legais. Há um conceito totalmente novo de separar o mapa e a view<\/A>. Está cheio de coisas boas. No entanto, é beta<\/EM>. Então nem tudo está 100% e algumas coisas ainda não estão prontas.<\/P><\/P>Mas você é impaciente. Você gosta de viver no limite. Você bebe vinho direto da garrafa<\/EM>. Você quer que algumas coisas funcionem agora! Uma das coisas que não está na API 4.0beta1 é edição. Se você olhar a documentação para um FeatureLayer<\/A>, ele não tem capacidades de edição no momento. Ele terá, só não ainda.<\/EM> Mas tudo bem. Você é um desenvolvedor... você consegue isso<\/EM><\/STRONG>.<\/P><\/P>O que é edição afinal? Edição nada mais é do que uma capacidade de um feature service na ArcGIS REST API<\/A>. Eu já te disse antes, aprenda a falar rest <\/A>e tudo o mais simplesmente se encaixa<\/EM>. Para este caso, vamos supor que você só quer adicionar features ao serviço. Existe uma capacidade especificamente para isso<\/A>. Ela até tem um exemplo de como será a requisição e a resposta. Não pode ser mais simples do que isso.<\/P><\/P>Então este editor de exemplo é tão simples quanto você pode ter para adicionar features a um Feature Service.<\/P>var Editor = declare(null, { constructor: function (params) { this.map = params.map; this.layer = params.layer; }, add: function (graphic) { var data = graphic.toJSON(); var map = this.map; var layer = this.layer; \/\/<\/SPAN>http:\/\/resources.arcgis.com/en/help/arcgis-rest-api/index.html#/_Add_Features_\/_02r30000010m000000\/_<\/A> var url = this.layer.url + "\/_addFeatures"; map.remove(layer); esriRequest({ url: url, content: { features: JSON.stringify([data]), } }, { usePost: true }).then(function (response) { map.add(layer); }).otherwise(function () { map.add(layer); }); }});<\/PRE><\/P>É isso.<\/EM> Forneça um Map e FeatureLayer e você está pronto.<\/P><\/P>Note que até agora, você precisa remover a camada do mapa e depois adicioná-la novamente para que as edições apareçam. Beta!<\/EM><\/STRONG><\/P><\/P>Eu estou apenas usando isso em um serviço compartilhado, mas esri/request<\/EM> deve ser capaz de lidar com autenticação para você se precisar. Não me cobre isso agora, eu ainda não testei.<\/EM><\/P><\/P>Precisa suportar exclusões e atualizações?<\/STRONG> Veja os endpoints de delete<\/A> features e update<\/A>. Ou apenas use applyEdits<\/A> e gerencie como quiser. Lembre-se... Tudo é apenas REST, cara!<\/EM><\/STRONG>
Então este editor de exemplo é tão simples quanto você pode ter para adicionar features a um Feature Service.<\/P>
var Editor = declare(null, { constructor: function (params) { this.map = params.map; this.layer = params.layer; }, add: function (graphic) { var data = graphic.toJSON(); var map = this.map; var layer = this.layer; \/\/<\/SPAN>
É isso.<\/EM> Forneça um Map e FeatureLayer e você está pronto.<\/P><\/P>Note que até agora, você precisa remover a camada do mapa e depois adicioná-la novamente para que as edições apareçam. Beta!<\/EM><\/STRONG><\/P><\/P>Eu estou apenas usando isso em um serviço compartilhado, mas esri/request<\/EM> deve ser capaz de lidar com autenticação para você se precisar. Não me cobre isso agora, eu ainda não testei.<\/EM><\/P><\/P>Precisa suportar exclusões e atualizações?<\/STRONG> Veja os endpoints de
Aqui está uma demonstração deste módulo em ação<\/A>.
Então vá em frente, experimente. Beta é beta, mas às vezes você só tem que fazer o que tem que fazer.
Então vá em frente e hackeie meus amigos!
Para mais dicas e truques geodev, confira meu blog<\/A>.
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.