我正在使用OpenLayers在geoDjango中构建一个GIS应用程序,并在投影EPSG:3908中使用PostGIS中的数据。 基础层是OSM。当我添加矢量数据时,我在巴西而不是波斯尼亚附近渲染了它。 我尝试了一切但却无法得到解决方案。
请有人帮忙吗?
var map, osm, google, kml;
function init(){
map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var osm = new OpenLayers.Layer.OSM(
"OSM");
kml = new OpenLayers.Layer.GML("KML", upit,
{format: OpenLayers.Format.KML,
projection: new OpenLayers.Projection("EPSG:3908")});
map.addLayers([osm, kml]);
map.zoomToExtent(
new OpenLayers.Bounds(15.774414, 42.6, 19.662109, 45.2).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913")));
答案 0 :(得分:1)
进行转换时,必须在调用isReady
之前检查transform
参数。这是因为您必须确保加载了投影的定义。
因此,定义转换对象(4326和900913)并检查它们是否准备就绪,然后执行转换。如果它们未准备就绪,请在html文件中明确引用相应的Proj4js定义文件。