Pergunta

Eu tenho problema otimizar desenho Google-like mapa. Ele funciona bem para centenas de pontos, mas quando se trata de quantidades maiores, como milhares ele fica confuso e lento. Também não ampliada parece estranho.

Eu gostaria de saber como otimizar o desenho algoritmo para desenhar menos lugares para que ele se parece com unzooming no Google Maps.

No entanto, eu também chamar ligações entre lugares , e eu não posso otimizar isso.

Por favor, qualquer coisa post você pode pensar, eu tenho que terminar isso e enviá-lo amanhã.

Aqui está como ele se parece com:

ampliada em ampliada fora

Foi útil?

Solução

Eu acho que eu seria tentado a não desenhar linhas que são mais curtos do que um limite (e eu digo isso em termos do visor, não termos distância absoluta). Isso significa que quando o mapa for ampliado para fora, você terá menos para desenhar eo mapa vai olhar menos ocupado e quando o mapa for ampliado nas linhas entre esses pontos próximos se tornará visível. Edit: na verdade, pensando nisso um pouco mais, eu acho que eu só iria aplicar esta restrição de comprimento quando há um grande número de linhas na tela - ou fazer o limite de comprimento em função do número de linhas na tela

.

Eu acho que também seria tentado a não desenhar linhas que são de pontos que estão fora da tela (fora da janela) ou, pelo menos, uma maneira muito fora da tela (um limite de distância do centro do visor). Gostaria de sugerir tentar essa mudança primeiro.

Essas mudanças podem parecer como eles vão estar escondendo informações (e eles), mas, tal como está, o mapa é tão ocupado esta informação apresentada está perto de qualquer maneira inútil.

Outras dicas

Eis duas ideias:

  1. Cada objeto que desenhar em um mapa tem um valor extra no banco de dados, "Nível de zoom". Quando aproximo itens extras serão mostrados com base nesse valor.

  2. A segunda maneira para isso é usar o agrupamento. Se os itens começam a sobreposição mostrar um ponto com [10 itens]. mostrar apenas os itens abaixo dele quando nos aproximamos.

Algumas dicas:

  1. região clip, desenhar pontos apenas na região clipe
  2. você pode verificar projecto GIS opensource, ver como eles otimizar o desenho.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top