Eu queria saber se alguém sabia a matemática envolvida, ou recursos para aprender a matemática envolvida, em encontrar a posição ideal, escala e rotação de um rótulo para uma linha ou polígono em um mapa?
O máximo que tenho até agora é encontrar o centróide para um polígono (embora não seja o ideal para polígonos côncavos).
Respostas:
Um trabalho de pesquisa que trata dessa questão difícil: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4015429
fonte
Talvez a documentação da biblioteca de etiquetas PAL seja um bom começo para futuras pesquisas. Eu recomendo especialmente "Do posicionamento da etiqueta do recurso do ponto à identificação do mapa" .
fonte
O centróide nunca é a resposta, mas é um bom palpite inicial. Os algoritmos mais fáceis de implementar que resolvem problemas semelhantes geralmente operam tentando algumas posições pseudo-aleatórias reproduzíveis e pontuando-as de alguma forma, mantendo os melhores pontos. Para uma leitura mais aprofundada, começaria lendo sobre os algoritmos de empacotamento de lixeira e a partir daí.
fonte
Rotular é um esforço desagradável.
Em pequena escala: você tem problemas de sobreposição de etiquetas, portanto, qual deles você remove ou deve ser mostrado.
Em grande escala: se você possui um polígono grande, onde exibe o rótulo. Você o exibe várias vezes.
fonte
Eu vi mapas nos quais eles apenas calculam uma caixa delimitadora para um polígono complexo e colocam o rótulo no centro disso.
Para linhas simples, geralmente é apenas o meio dos dois pontos de extremidade.
Eu acho que depende realmente do que você espera que seus dados sejam e da importância da localização do rótulo.
fonte
Você pode inspecionar o código no GeoTools e no GeoServer se você gosta de java - é um problema em constante evolução, pois as pessoas continuam apresentando novos casos de canto que precisam ser corrigidos.
fonte