为什么我无法向Vector添加功能?此代码无效:
var features = [new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-70.702451, 42.374473), {className: "latarnia"})]
vectors = new OpenLayers.Layer.Vector("warstwa", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
format: new OpenLayers.Format.OSM()
}),
features : features,
projection: new OpenLayers.Projection("EPSG:4326")});
map.addLayers([vectors]);
我的意思是矢量根本没有任何功能。 我试过了
layer.addFeatures([feature]);
但它也失败了。
答案 0 :(得分:1)
似乎你的地图和点的投影是不一样的。 地图喷射是EPSG:4326,但似乎点投影是EPSG:3857。
它可以帮到你
conv_latlon = new OpenLayers.LonLat(-70.702451, 42.374473).transform('EPSG:3857', 'EPSG:4326')//transform point
var features = [new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(conv_latlon.lon, conv_latlon.lat), {className: "latarnia"})]
答案 1 :(得分:0)
由于某些原因,在OpenLayers.Layer.Vector构造函数上初始化“features”属性不起作用。
但你之后应该能够添加它们:
vectors.addFeatures(features);
然后,您可以在浏览器控制台中进行测试:
vectors.features.length; //this should be 1 now
否则代码似乎没问题。 您还应该能够将地图上的要素视为橙色圆圈(默认样式),但前提是该点的坐标位于基础图层范围内。 使用OpenLayers版本2.14进行测试。