首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenLayers LonLat变换

OpenLayers LonLat变换
EN

Stack Overflow用户
提问于 2016-02-29 10:51:31
回答 2查看 1.1K关注 0票数 0

我正在尝试将OSM OpenLayers示例与我从query.wikidata.org获得的结果结合起来,但我似乎做错了转换。长和拉的正确转变是什么?

代码语言:javascript
复制
<html><body>
  <div id="mapdiv"></div>
  <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
  <script>
    map = new OpenLayers.Map("mapdiv");
    map.addLayer(new OpenLayers.Layer.OSM());

    var lonLat = new OpenLayers.LonLat( 40.228055555556, 27.242222222222 )
          .transform(
            new OpenLayers.Projection("EPSG:900913"), // transform from WGS 1984
            map.getProjectionObject() // to Spherical Mercator Projection
          );

    var zoom=16;

    var markers = new OpenLayers.Layer.Markers( "Markers" );
    map.addLayer(markers);

    markers.addMarker(new OpenLayers.Marker(lonLat));

    map.setCenter (lonLat, zoom);
  </script>
</body></html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-29 12:29:26

转换是错误的:您的lonLat变量在EPSG:4326中,因此您应该从EPSG:4326转换为EPSG:900913。

代码语言:javascript
复制
var lonLat = new OpenLayers.LonLat( 27.242222222222, 40.228055555556 )
      .transform(
        new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
        map.getProjectionObject() // to Spherical Mercator Projection
      );
票数 2
EN

Stack Overflow用户

发布于 2016-03-07 14:51:20

在使用宣传单时,不需要进行任何转换。

代码语言:javascript
复制
var map = L.map('map').setView(40.228055555556, 27.242222222222],
  13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

L.marker([40.228055555556, 27.242222222222]).addTo(map)
  .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
  .openPopup();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35697686

复制
相关文章

相似问题

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