Mais

OpenLayers 2, GeoJSON não consegue fazer as coordenadas funcionarem

OpenLayers 2, GeoJSON não consegue fazer as coordenadas funcionarem


Estou tentando exibir alguns polígonos em um mapa e sou novo no OpenLayers, maps e GeoJSON.

Primeiro o que funciona:

vector1 = new OpenLayers.Layer.Vector ("GeoJSON1", {projeção: "EPSG: 4326", estratégias: [new OpenLayers.Strategy.Fixed ()], protocolo: new OpenLayers.Protocol.HTTP ({url: "teste. php ", formato: novo OpenLayers.Format.GeoJSON ()})});

Esse trecho de código funciona, o GeoJSON do test.php aparece no servidor, na posição onde deveria estar. Mas o GeoJSON que tento alcançar está em outro servidor e lança erros (sei que posso definir cabeçalhos e funcionaria), mas não quero fazer dessa forma.

Isso não funciona:

var geojs_format = new OpenLayers.Format.GeoJSON (); var geojsval = {"type": "Polygon", "coordinates": [[[11.0878902207, 45.1602390564], [14.931640625, 40.9228515625], [0.8251953125, 41.0986328125], [7.63671875, 45.1602390564], [14.931640625, 40.9228515625], [0.8251953125, 41.0986328125], [7.63671875, 48.96484375} ; vector = novo OpenLayers.Layer.Vector ("GeoJSON", {projeção: "EPSG: 4326"}); vector.addFeatures (geojs_format.read (geojsval));

Isso não funciona - exibe o polígono em um lugar diferente, embora a projeção seja especificada da mesma maneira (ou pelo menos para mim ...).


Eu resolvi isso. Ao criar OpenLayers.Format.GeoJSON, você pode especificar projeções como esta…

var geojs_format = new OpenLayers.Format.GeoJSON ({'internalProjection': new OpenLayers.Projection ("EPSG: 900913"), 'externalProjection': novo OpenLayers.Projection ("EPSG: 4326")});

Isso resolveu o problema.


Assista o vídeo: OpenLayers Add Vector Layer to Web Map