Modificando os pontos de início / fim de um LineString e mantendo a conectividade no OpenLayers

8

Estou desenvolvendo um aplicativo em que o usuário pode visualizar e editar uma grade de ruas de uma cidade. As ruas são apresentadas como recursos em uma camada vetorial, e o usuário precisa modificar os elementos (os atributos e a geometria - que é LineString - do recurso). A edição de uma geometria é limitada a arrastar os pontos finais do LineString, pelo menos por enquanto.

O truque é que os novos pontos finais devem se cruzar com a geometria atual do recurso, para que o usuário não possa arrastar uma estrada para começar fora da grade da rua. Além disso, a modificação da geometria deve afetar as geometrias vizinhas, se houver. Ou seja, se outra estrada começar onde a pessoa termina, ambas devem ter seu ponto de partida / chegada alterado.

Não acho que o OpenLayers suporte isso imediatamente, como devo começar a implementar isso?

mrLite
fonte
você tentou usar o snap com openlayers?
Aragon #
Eu acredito que só se pode ajustar a outros elementos, não a "si mesmo". No entanto, suponho que seria possível clonar temporariamente o recurso para outra camada vetorial, use o recurso de snap para encaixar o clone no seu recurso original e, em seguida, clonar novamente o recurso modificado na camada original. Isso não resolveria o problema de modificar a geometria vizinha.
precisa saber é
É uma boa pergunta. Voto a favor.
Magno C
Eu costumava usar um editor proprietário codificado personalizado que poderia fazer isso e ele usava bibliotecas de código aberto, quais eu desconheço, infelizmente. Foi muito útil, porém, usado por uma empresa chamada GDT
lewis

Respostas: