简体   繁体   English

OpenLayers矢量要素/不可见的图层(不渲染)

[英]OpenLayers Vector Features/Layer invisible (do not render)

I cant understand why styled vector layer is invisible? 我不明白为什么样式矢量层不可见? It seems like it has no features, but why? 似乎没有功能,但是为什么呢? There is mistake in this code? 这段代码有错误吗? OSM, Google Layers is visible and I can swith them in LayerSwitcher (and Overlay "Vectorlayer" also present there). OSM,Google图层是可见的,我可以在LayerSwitcher中处理它们(并且那里也存在Overlay“ Vectorlayer”)。 URL to icon is correct. 图标的网址正确。

<html>
    <head>
        <meta charset="utf-8" />
        <title>Index</title>
        <link href="/Content/jquery-ui.css" rel="stylesheet" type="text/css" />
        <script src="/Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
        <script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>
        <script src="/Scripts/OpenLayers.js" type="text/javascript"></script>


    <script type="text/javascript">
function Startit() {
    var dislon = 30.4958316666667;
    var dislat = 59.9168383333333;
    var lonlat = new OpenLayers.LonLat(dislon, dislat);
    var map = new OpenLayers.Map({div: "mapcontent",projection: new OpenLayers.Projection("EPSG:900913")});
    var maposm = new OpenLayers.Layer.OSM("OSM");
    var gmap = new OpenLayers.Layer.Google("Google", { numZoomLevels: 20 });
    var ghyb = new OpenLayers.Layer.Google("Google Earth", { type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20 });
    map.addLayers([maposm, gmap, ghyb]);
    lonlat.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
    map.setCenter(lonlat, 11);
    var lSwitch = new OpenLayers.Control.LayerSwitcher();
    map.addControl(lSwitch);
    var sdLayer = new OpenLayers.Layer.Vector("VectorLayer");
    var cStyle = { externalGraphic: "/images/icons/blue.png", graphicWidth: 35, graphicHeight: 35 };
    var currPoint = OpenLayers.Geometry.Point(dislon,dislat);
    var ft = new OpenLayers.Feature.Vector(currPoint, null, cStyle);
    map.addLayer(sdLayer);
    sdLayer.addFeatures([ft]);
}
    </script>

    </head>
    <body onload="Startit();">
        <div id="mapcontent" style="width:500px;height:400px;"></div>
</body>
</html>

=) Omg! =)天哪! It was just stupid mistake >>> var currPoint = new OpenLayers.Geometry.Point(dislon,dislat); 这只是愚蠢的错误>>> var currPoint = new OpenLayers.Geometry.Point(dislon,dislat);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM