ESRI JavaScript API v3.8 を使用しています。(私は 3.11 が出ていることを知っています - まだアップグレードできません。)
私がやろうとしているのは、ユーザーが選択した任意の線 (または点) から、ユーザーが指定したサイズの幾何学的バッファーを作成することです。関連するコードの一部を以下に示します。
var params = new esri.tasks.BufferParameters();
params.distances = [values.distance]; //the input distance
params.geometries = [gr.geometry]; //the input geometry
params.unit = esri.tasks.GeometryService.UNIT_FOOT;
params.outSpatialReference = mapView.map.spatialReference; //always 3857
params.bufferSpatialReference = gr.geometry.spatialReference; //always 3857
esri.config.defaults.io.corsEnabledServers.push('mydomain.com');
esri.config.defaults.io.proxyUrl = 'https://serverdomain.com/proxy';
var gsvc = new esri.tasks.GeometryService('https://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer');
gsvc.simplify(params.geometries, function(geometries){
params.geometries = geometries;
gsvc.buffer(params, function(geometries){
//add output geometry to the map and perform spatial query with it
}, function(err){
//handle error
});
}, function(err){
//handle error
});
問題は、500 (フィート) の入力距離を使用し、self._queryGeometry
ESRI の測定ツールを使用して で入力ジオメトリの中心線からの距離を測定すると、作成されたポリゴンの実際の幅は、いずれかで 370 フィートのようなものになることです。センターライン側。
私のテスト オブジェクトはイリノイ州にあるため、Illinois State Plane 空間参照を使用してこれをより正確に機能させることができましたが、ロジックはどこでも機能する必要があります。
測地線バッファーを実行するさまざまな具体化を試みると、入力距離単位が無視されるように見え、500 の入力距離値を使用すると、世界全体にまたがるバッファーが得られます! セットアップ方法に応じて、それまたは結果はまったく同じです。
測地線バッファを実行する必要があると思いますが、送信しているユニットにジオメトリ サービスが実際に注意を払うようにする方法がまったくわかりません。
どんなアイデアでも大歓迎です。やり残したことがある場合はお知らせください。