Vì vậy, nền tảng của triển khai phần mở rộng của tôi dường như được xếp thành các sọc dọc. Điều kỳ lạ là nó không phải luôn luôn như thế này, nhưng ngay cả khi tôi stash tất cả các thay đổi của tôi trở lại một điểm mà tôi biết nó đã được làm việc, nó vẫn còn bị hỏng. Nó làm cho tôi tự hỏi nếu có lẽ một cái gì đó đã thay đổi về cách thức các tài sản ngói đang được chuyển giao. Tôi đã thử chuyển đổi giữa việc sử dụng các lớp osm và wms mà không thay đổi, bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.Nền tảng Openlayers/Openstreetmap có sọc dọc và được xếp theo chiều dọc
Đây là mã thích hợp:
initMap: function() {
var view = this;
var map = this.map = new OpenLayers.Map();
map.render(this.$map[0]);
var wmsLayer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'});
var osmLayer = new OpenLayers.Layer.OSM();
this.layers = {
point: new OpenLayers.Layer.Vector("Point Layer"),
line: new OpenLayers.Layer.Vector("Line Layer"),
polygon: new OpenLayers.Layer.Vector("Polygon Layer")
};
this.setValue(this.value);
map.addLayers([this.layers.point, this.layers.line, this.layers.polygon, osmLayer]);
drawControls = {
point: new OpenLayers.Control.DrawFeature(this.layers.point,
OpenLayers.Handler.Point),
line: new OpenLayers.Control.DrawFeature(this.layers.line,
OpenLayers.Handler.Path),
polygon: new OpenLayers.Control.DrawFeature(this.layers.polygon,
OpenLayers.Handler.Polygon)
};
this.layers[this.layerType].events.on({'sketchcomplete': function(feature) {
if (!view.multiple) {
// deactivate polygon layer once a polygon has been added
drawControls[view.layerType].deactivate();
}
}});
for(var key in drawControls) {
map.addControl(drawControls[key]);
}
if (this.layers[this.layerType].features.length) {
var bounds = this.layers[this.layerType].getDataExtent();
var zoom = this.layers[this.layerType].getZoomForExtent(bounds);
var lon = (bounds.top - bounds.bottom)/2;
var lat = (bounds.right - bounds.left)/2;
map.setCenter(new OpenLayers.LonLat(lon,lat), 3);
map.zoomToExtent(bounds);
if (view.multiple) {
drawControls[view.layerType].activate();
}
} else {
map.setCenter(new OpenLayers.LonLat(-11174482.03751,4861394.9982606), 4);
drawControls[view.layerType].activate();
}
this.$('.clear').click(function(e) {
e.preventDefault();
view.layers[view.layerType].destroyFeatures();
drawControls[view.layerType].activate();
});
},
Đây là kết quả:
Nếu bạn không chấp nhận câu trả lời của riêng mình? – Knubo
Cảm ơn bạn rất nhiều! Thực hiện tốt cho việc phát hiện này! – Eamorr
Sau một năm, câu hỏi và câu trả lời này đã giải quyết được vấn đề của tôi! – Daviddd