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?


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:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.