2013-02-21 76 views
0

我試圖在Google地圖上緩衝繪製圖形。但似乎無法做到緩衝區。使用ArcGIS服務器緩存Google地圖API中的繪製圖表

我有繪畫的聽衆:

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 is not a function http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.3 Line 34

似乎像arcgis GeometryService無法識別e「事件」圖片。任何想法將不勝感激!

謝謝。

回答

2

我解決了問題。該錯誤是由我如何定義GeometryService引起的。

假設我們有arcgis GeometryService的URL。爲了使用谷歌地圖API 3做緩衝,我們需要定義GeometryServiceas如下:

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