首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openlayers中的投影和OpenLayers.Geometry.Point

openlayers中的投影和OpenLayers.Geometry.Point
EN

Stack Overflow用户
提问于 2012-06-01 06:40:17
回答 2查看 9.5K关注 0票数 2

我正在尝试显示一个有三个图层(google地图图层,wms图层和点图层)的地图,这是我的代码:

代码语言:javascript
复制
     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“层必须在我的地图上面,但我得到了这个(我的wms层在南美洲,我的点也必须在南美洲,但它们靠近非洲):

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

我能做什么?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 15:14:41

你应该转换你的点的坐标:

代码语言:javascript
复制
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)
    )
]);
票数 6
EN

Stack Overflow用户

发布于 2012-06-05 05:08:22

“非洲旁边”=经度0纬度0

当您只需输入经度和纬度时,OL会将其视为WGS84投影(标准)。

但是,由于您使用的是Google layer (CapaGoogle),这是一个墨卡托参考投影,您最终会同时使用两个参考投影(4326 = WGS84和900913 =墨卡托),地图服务器会忽略您的标记的位置,因为它们是“不正确的”。因此,它只是将它们放在(0,0)处。

正如DrNextGIS所说,您必须“转换您的点坐标”,以便地图上的所有内容都使用相同的投影。

如果你使用一个简单的OpenLayer地图(没有谷歌或OSM),你就不会有这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10842243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档