0

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>

tracks.jsonは、tracを含むGeoJSONファイルです。

基本的に今、私はトラックの周りに長方形が欲しいです。tracとrectangleの間のスペースは白で塗りつぶす必要があります。

ご協力ありがとうございました!

4

1 に答える 1

0

実際には、2つの座標オブジェクトでポリゴンを宣言するのと同じくらい簡単でした。1つは長方形用、もう1つはトラック用です。

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));
于 2012-12-05T11:12:51.737 に答える