0

グーグルマップで描画グラフィックをバッファリングしようとしています。しかし、それはバッファを行うことができないようです。

私には絵を描くリスナーがいます:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(evt) {
    event = evt;
    ...
  });

次に、バッファ関数はこのグラフィックをバッファリングする必要があります。

function GmapBuffering() {
  gsvc = new esri.tasks.GeometryService(gsvcURL);

  //setup the buffer parameters
  var params = new esri.tasks.BufferParameters();
  params.distances = [dojo.byId("distance").value];
  params.bufferSpatialReference = gmaps.ags.SpatialReference.WEB_MERCATOR;
  params.outSpatialReference = gmaps.ags.SpatialReference.WEB_MERCATOR;
  params.unit = eval("esri.tasks.GeometryService." + dojo.byId("unit").value);
  params.geometries = [event.overlay];

  gsvc.buffer(params, function(results, err) {
    console.log(results);
    if (!err) {
      var g= results.geometries[i][j];
      g.setMap(Gmap);
      buffers.push(g);
    } else {
      alert(err.message + err.details.join(','));
    }
  });
}

これが問題です。次のようなエラーが発生しました。

TypeError:geom.toJsonは関数ではありませんhttp://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.334行目

arcgisGeometryServiceが「イベント」グラフィックを認識できないようです。どんなアイデアでもいただければ幸いです!

ありがとう。

4

1 に答える 1

2

私は問題を解決しました。エラーは、GeometryService の定義方法が原因でした。

arcgis GeometryService の URL があるとします。Google Maps API 3 を使用してバッファリングを行うには、GeometryService を次のように定義する必要があります。

var gsvcURL = "http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer";
var gsvc2 = new gmaps.ags.GeometryService(gsvcURL);

この例は役に立ちます: http://google-maps-utility-library-v3.googlecode.com/svn-history/r168/trunk/arcgislink/examples/buffer.html

于 2013-02-27T14:47:28.227 に答える