gpt4 book ai didi

javascript - openlayers 中的投影和 OpenLayers.Geometry.Point

转载 作者:行者123 更新时间:2023-12-03 09:55:28 24 4
gpt4 key购买 nike

我正在尝试显示具有三层(google maps 层、wms 层和点层)的 map ,这是我的代码:

     var map = new OpenLayers.Map({
div: "map",
maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508.34)
});


var capaGoogle = new OpenLayers.Layer.Google(
"Google Satellite",
{ type: G_SATELLITE_MAP, sphericalMercator: true, transparent: true }
);

var wmsOverlay = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://localhost:1979/geoserver/wms",
{ layers: 'world:PYCIUDADES', transparent: true }, { isBaseLayer: false });


var vectorLayer = new OpenLayers.Layer.Vector("vector");

vectorLayer.addFeatures([
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-57.635021, -25.276987)

),
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-56.759034, -22.71539)
)

]

);

map.addLayers([wmsOverlay, vectorLayer, capaGoogle]);

map.addControl(new OpenLayers.Control.LayerSwitcher());
var center = new OpenLayers.LonLat(-57.58, -25.27).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
)
map.setCenter(center, 6);

“vectorLayer”图层必须在我的 map 上方,但我明白了(我的 wms 图层在南美洲,我的点也必须在南美洲,但它们在非洲附近):

http://i45.tinypic.com/34y40zk.png

我能做什么?

提前致谢

最佳答案

您应该转换点的坐标:

var epsg4326 = new OpenLayers.Projection('EPSG:4326');
var epsg900913 = new OpenLayers.Projection('EPSG:900913');

vectorLayer.addFeatures([
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-57.635021, -25.276987).transform(epsg4326, epsg900913)
),
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-56.759034, -22.71539).transform(epsg4326, epsg900913)
)
]);

关于javascript - openlayers 中的投影和 OpenLayers.Geometry.Point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com