<\/P>
Recentemente, houve uma série de posts no blog sobre o uso do GeometryEngine<\/A> na ArcGIS JS API. Se você ainda não leu, recomendo muito que leia.<\/P><\/P>Mas antes de termos o GeometryEngine, tínhamos que fazer as coisas do jeito antigo<\/EM>, verificando manualmente as geometrias por conta própria.<\/P><\/P>Eu tirei isso de um caso de uso que encontrei em um repositório antigo meu. O caso de uso é que eu tenho um ponto e, antes de poder fazer qualquer coisa com esse ponto, preciso saber se o ponto está contido em alguma outra feição.<\/P><\/P>Por exemplo, eu tenho dados sendo transmitidos em tempo real para meu app, digamos solicitações de serviço, mas só me importo em ver aquelas que estão dentro de algumas áreas de serviço predefinidas.<\/P><\/P>Uma utilidade simples poderia ser algo assim:<\/P><\/P>define([], function () { var geomUtil = {}; geomUtil.graphicsContain = function (graphics, pt) { var len = graphics.length; while (len--) { var graphic = graphics[len]; if (graphic.geometry.contains && graphic.geometry.contains(pt)) { return pt; } } return null; }; return geomUtil;});<\/PRE><\/P>Basicamente, você itera sobre os gráficos e assim que encontrar um gráfico que contenha o ponto, você o retorna. Isso economiza tempo pois não precisa iterar por todos os gráficos para terminar<\/EM>.<\/P><\/P>Você poderia até ajustar isso um pouco encontrando o gráfico no array graphics que contém o ponto<\/EM> e ao invés de retornar o ponto, retornar o gráfico<\/EM>. Para fazer isso corretamente, você precisaria iterar por todos os gráficos, o que dependendo da sua aplicação pode ser custoso.<\/P><\/P>Aqui está um exemplo de como isso pode parecer na prática:<\/P>JS Bin - Depuração Colaborativa em JavaScript<\/A><\/P>Para testar, desenhe alguns retângulos e polígonos no mapa e então tente adicionar pontos. Você só deve conseguir adicionar pontos dentro dos polígonos.<\/P><\/P>Você pode até ficar bem criativo e começar a filtrar geometrias que você pode jogar no GeometryEngine e agora<\/EM><\/STRONG> você tem uma festa!<\/P><\/P>Para mais dicas e truques geodev, confira meu blog!<\/A><\/P><\/BODY><\/HTML>
Mas antes de termos o GeometryEngine, tínhamos que fazer as coisas do jeito antigo<\/EM>, verificando manualmente as geometrias por conta própria.<\/P><\/P>Eu tirei isso de um caso de uso que encontrei em um repositório antigo meu. O caso de uso é que eu tenho um ponto e, antes de poder fazer qualquer coisa com esse ponto, preciso saber se o ponto está contido em alguma outra feição.<\/P><\/P>Por exemplo, eu tenho dados sendo transmitidos em tempo real para meu app, digamos solicitações de serviço, mas só me importo em ver aquelas que estão dentro de algumas áreas de serviço predefinidas.<\/P><\/P>Uma utilidade simples poderia ser algo assim:<\/P><\/P>define([], function () { var geomUtil = {}; geomUtil.graphicsContain = function (graphics, pt) { var len = graphics.length; while (len--) { var graphic = graphics[len]; if (graphic.geometry.contains && graphic.geometry.contains(pt)) { return pt; } } return null; }; return geomUtil;});<\/PRE><\/P>Basicamente, você itera sobre os gráficos e assim que encontrar um gráfico que contenha o ponto, você o retorna. Isso economiza tempo pois não precisa iterar por todos os gráficos para terminar<\/EM>.<\/P><\/P>Você poderia até ajustar isso um pouco encontrando o gráfico no array graphics que contém o ponto<\/EM> e ao invés de retornar o ponto, retornar o gráfico<\/EM>. Para fazer isso corretamente, você precisaria iterar por todos os gráficos, o que dependendo da sua aplicação pode ser custoso.<\/P><\/P>Aqui está um exemplo de como isso pode parecer na prática:<\/P>
Para testar, desenhe alguns retângulos e polígonos no mapa e então tente adicionar pontos. Você só deve conseguir adicionar pontos dentro dos polígonos.<\/P>
Você pode até ficar bem criativo e começar a filtrar geometrias que você pode jogar no GeometryEngine e agora<\/EM><\/STRONG> você tem uma festa!<\/P><\/P>Para mais dicas e truques geodev,
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.