Alternando camadas base conforme o usuário amplia o mapa no OpenLayers?

13

Eu tenho um mapa que sobrepõe dados do Open Street Map em imagens para a Pensilvânia. Como camada de base para as estradas (e eventualmente outras camadas), tenho duas camadas de base - Blue Marble NG e USGS EROS 1ft. Eu gostaria de poder combinar essas duas camadas em um único objeto de mapa base que muda automaticamente à medida que o usuário aproxima o zoom, pois não faz sentido exibir as imagens de 1 pé para todo o estado ou as imagens de mármore azul quando você estiver com o zoom.

Idealmente, eu gostaria de fazer isso no lado do cliente, pois estou obtendo as imagens de dois sites diferentes.

Ian Turton
fonte
Há um link quebrado nesta pergunta que foi apontado em gis.stackexchange.com/questions/173775/… É uma pena que um comentário não tenha sido feito aqui para alertá-lo anteriormente.
PolyGeo

Respostas:

17
  1. Adicione 2 camadas base ao mapa
  2. Inscrever-se no evento zoomend do mapa
  3. Verifique o nível de zoom e apenas mude o mapa base para seu usuário

Aqui está uma página de exemplo com um manipulador de eventos para zoomend - http://www.openlayers.org/dev/examples/events.html .

Vadim
fonte
1
Isso funciona muito bem - < ian01.geog.psu.edu/geoserver/www/pa/pa2.html >
Ian Turton
@iant, Alguma chance de você conseguir colar um trecho do seu código? Estou tentando fazer isso acontecer, e é apenas um buggy. Obrigado!
Há um link quebrado nesta resposta que foi apontado em gis.stackexchange.com/questions/173775/… É uma pena que um comentário não tenha sido feito aqui para alertá-lo anteriormente.
PolyGeo
-1 para um único link quebrado em uma resposta de 5 anos? Seriamente? Realmente não me importo com os pontos, mas não posso imaginar que os administradores agora estejam pedindo a todos que mantenham links para referências externas. Observe que a resposta nos marcadores 1,2,3 está completa e os links da API ainda funcionam. Se o leitor precisar encontrar uma amostra, confio em que pode encontrá-la por conta própria. O OL mudou e mudou muito nos últimos 5 anos.
Vadim
0

Outra maneira ... usando o controle de opacidade

Experimente este exemplo https://github.com/openlayers/ol2/blob/master/examples/layer-opacity.html

uma combinação dos mapas USGS_EDC_Elev_NED_3 (Shaded Relief) e Topo com controle de opacidade

Funciona muito bem.

Mapperz
fonte
Não calou o efeito que eu estava tentando, mas um bom exemplo.
Ian Turton
Há um link quebrado nesta resposta que foi apontado em gis.stackexchange.com/questions/173775/… É uma pena que um comentário não tenha sido feito aqui para alertá-lo anteriormente.
PolyGeo
atualize o link para a fonte do github
Mapperz