2

openlayer 3 で OL3-Google-Maps を使用して SATELLITE マップにマルチポリゴン シェイプをロードしようとしていますが、うまくいきません。単純なポリゴンを使用すると機能します。ここで何が問題なのか本当にわかりません。

コードを見てください:

var glSat = new olgm.layer.Google({
  mapTypeId: google.maps.MapTypeId.SATELLITE
});

var wkt = 'MULTIPOLYGON(((-74.9929726416642 5.18492112724286,-75.0191266345606 5.1848828549929,-75.0191867110875 5.2253515246231,-75.0183316375994 5.22651138628054,-75.0163671630514 5.23378374934167,-75.0142357420755 5.23793700993367,-75.0100693670497 5.23831391909755,-75.0091148838295 5.24549449588018,-75.0106031060614 5.24549228311571,-75.0106009630105 5.24405463549549,-75.0126461088479 5.24251448511432,-75.0116677711593 5.23964974161631,-75.0157986254176 5.23964357493722,-75.0187890089636 5.23691755404967,-75.0192019473326 5.23572481925641,-75.0192261006484 5.25179140082412,-74.9930693552343 5.25183206753317,-74.9929726416642 5.18492112724286)))';

var format = new ol.format.WKT();

var feature = format.readFeature(wkt, {
  dataProjection: 'EPSG:4326',
  featureProjection: 'EPSG:3857'
});

var vectorPolygons = new ol.layer.Vector({
  source: new ol.source.Vector({
    features: [feature]
  })
});


// Create a regular OL3 map, containing our Google layer
var map = new ol.Map({
  target: 'map',
  // use OL3-Google-Maps recommended default interactions
  interactions: olgm.interaction.defaults(),
  layers: [
    vectorPolygons, glSat
  ],
  view: new ol.View({
    center: ol.proj.fromLonLat([-74.5981636036184, 6.25468647083332]),
    zoom: 7
  })
});

// Activate the library
var olGM = new olgm.OLGoogleMaps({
  map: map
});
olGM.activate();

wkt(下)を変更すると動作します:

var wkt = 'POLYGON((-74.9929726416642 5.18492112724286,-75.0191266345606 5.1848828549929,-75.0191867110875 5.2253515246231,-75.0183316375994 5.22651138628054,-75.0163671630514 5.23378374934167,-75.0142357420755 5.23793700993367,-75.0100693670497 5.23831391909755,-75.0091148838295 5.24549449588018,-75.0106031060614 5.24549228311571,-75.0106009630105 5.24405463549549,-75.0126461088479 5.24251448511432,-75.0116677711593 5.23964974161631,-75.0157986254176 5.23964357493722,-75.0187890089636 5.23691755404967,-75.0192019473326 5.23572481925641,-75.0192261006484 5.25179140082412,-74.9930693552343 5.25183206753317,-74.9929726416642 5.18492112724286))';            

さらに、olgm MAP をアクティブにしないと、マルチポリゴンが描画されます。

4

2 に答える 2

0

OL3-Google-Maps は現在、マルチジオメトリをサポートしていません。ol3 から Google Maps JS API へのジオメトリの変換を処理する ol3gm 内のコードを参照してください: https://github.com/mapgears/ol3-google-maps/blob/v0.11.2/src/gm/gm.js# L29~L52

これは、ol3gm の現在の制限のリストに追加する必要があります: https://github.com/mapgears/ol3-google-maps/blob/master/LIMITATIONS.md

これを文書化するために、ol3gm GitHub プロジェクトで問題を作成することをお勧めします: https://github.com/mapgears/ol3-google-maps/issues/new

于 2016-10-25T15:48:02.570 に答える