繁体   English   中英

OpenLayers:两个GeoJSON层,两个都透明

[英]OpenLayers: two GeoJSON Layers, one transparent on both

我有一个GPX轨迹(起点==终点)转换为GeoJSON。
现在,我想在仅由追踪包围的地图显示的地图上显示此轨道。 其余应为白色。

到目前为止,我有以下内容:

<script type="text/javascript">
  function init() {
    map = new OpenLayers.Map("basicMap");
    var mapnik         = new OpenLayers.Layer.OSM();

    var fromProjection = new OpenLayers.Projection("EPSG:4326");
    var toProjection   = new OpenLayers.Projection("EPSG:900913");
    var position       = new OpenLayers.LonLat(13.41,52.52).transform( fromProjection, toProjection);
    var zoom           = 7; 

    map.addLayer(mapnik);
    map.setCenter(position, zoom );

    geojson_layer = new OpenLayers.Layer.Vector("GeoJSON", {
        strategies: [new OpenLayers.Strategy.Fixed()],
        protocol: new OpenLayers.Protocol.HTTP({
            url: "tracks.json",
            format: new OpenLayers.Format.GeoJSON()
        })
    });

    map.addLayer(geojson_layer);
  }
</script>

track.json是带有trac的GeoJSON文件。

基本上现在我想要在笔迹周围有一个矩形。 笔迹和矩形之间的空间应填充为白色。

谢谢您的帮助!

实际上,这就像声明带有两个坐标对象的多边形一样简单。 一个用于矩形,另一个用于轨道:

var border = { 
"type": "Feature", 
"properties": { }, 
"geometry": { 
    "type": "Polygon", 
    "coordinates": [ 

        [
            [    
                Coordinates of Rectangle
            ]
        ],
        [
            [
                Coordinates of the track
            ]
        ]
    ]
  }
}

我将其包含在我的javascript中:

 <script type="text/javascript" src="border.js"></script>
 .
 .
 var geojson_format  = new OpenLayers.Format.GeoJSON({
            'internalProjection': toProjection,
            'externalProjection': fromProjection
 });

 map.addLayer(vectorLayer);
 vectorLayer.addFeatures(geojson_format.read(border));

暂无
暂无

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

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