Tenho mapas em mosaico vetorial / topo / imagem para alguns lugares da América do Norte que foram publicados como serviço REST do ArcGIS Server. Esses mapas (A) são baseados na projeção EPSG: 26912. Agora eu quero usá-los como mapa base para meu aplicativo da web OpenLayers; além disso, também quero consumir outras fontes básicas de mapas (B), por exemplo, OpenStreetmap, Google Maps, ESRI, etc. Como a maioria desses mapas está no EPSG: 900913, que é uma projeção esférica de Mercator, se eu apenas os adicionar. base do mapa no componente de mapa OpenLayers, o grupo A e o grupo B não se sobrepõem corretamente, o que significa que são exibidos como mapas separados.
Eu sei que isso é algo relacionado à projeção e pode precisar de algum código com o proj4js; no entanto, como um novato, eu realmente não sei por onde começar.
Basicamente, quero colocar os mapas OSM / Google como o mapa base para o mundo inteiro na camada 1, depois colocar os mapas básicos EPSG: 26912 para alguns lugares da América do Norte na camada 2 e colocar outros WMS ou WFS na camada superior.
preciso transformar o EPSG: 26912 em EPSG: 900913 ou o oposto? Acho que devo usar o EPSG: 900913 como projeção base.
Respostas:
Os OpenLayers podem transformar camadas vetoriais (como o WFS). Se a sua camada vetorial estiver em EPSG: 900913 ou EPSG: 4326 OpenLayers pode lidar com a transformação, caso contrário, ela precisará do Proj4js incluído.
Existem exemplos de como usar o OpenLayers com o Proj4js.
Camadas de varredura não podem ser transformadas por OpenLayers. Se você precisar incluí-los em uma projeção diferente, precisará reprojetá-los por conta própria ou usar um proxy WMS de reprojeção, como o GeoWebCache .
fonte
Qualquer bom WMS deve poder fazer a reprojeção para você. No entanto, não tenho idéia se o ArcGIS Server é um bom WMS. Se não for possível fornecer a camada no 900913, considere usar o GeoServer ou o MapServer como um WMS em cascata para lidar com a reprojeção para você.
fonte
Não sou um guru do OpenLayers, mas você precisa especificar a projeção do objeto do mapa. Eu acho que o padrão é WGS84 .... Eu posso estar errado, posso até ser a fonte da primeira camada adicionada ao mapa.
Enfim, tente algo assim (altere os limites conforme apropriado)
Mas lembre-se de quando você deseja definir o centro do mapa usando um lat, lon, você deve projetar essa coordenada do WGS para o GoogleMercator dessa maneira (usando a variável wgs84 e googleMercator acima).
fonte
A primeira coisa é definir a projeção do mapa e exibir a projeção da seguinte maneira:
Adicionando conversão de coordenadas
Depois de começar a usar projeções diferentes, você deve começar a pensar na possibilidade de converter coordenadas de uma projeção para outra, ao exibir essas coordenadas ou ao ler dados vetoriais em um sistema de coordenadas diferente do mapa. Como afirmado anteriormente, essa lógica de conversão não é fornecida pelo OL, portanto, você deve usar o Proj4js, que precisará incluir em sua página:
após a definição, você pode fazer isso pelo método transform:
fonte