3

javasvipt を使用して、ersi マップにマーカーを表示する Web ページを作成しました。

Data: 
MapNorth    MapEast
439624  504743
439622  504736
439722  504775
439738  504739
439715  504774
439734  504739

JavaScript コード:

var points = data.map(function(x){
                    return [x.MapEast, x.MapNorth];
                });

                var myMultiPoint = {"geometry":{"points":points,"spatialReference":27700},"symbol":{"color":[255,255,255,64],
                "size":6,"angle":0,"xoffset":0,"yoffset":0,"type":"esriSMS","style":"esriSMSCircle",
                "outline":{"color":[0,0,0,255],"width":6,"type":"esriSLS","style":"esriSLSSolid"}}};  

                var gra = new esri.Graphic(myMultiPoint);

                myMap.graphics.add(gra);

                var graExtent = esri.graphicsExtent(myMap.graphics.graphics); 
                myMap.setExtent(graExtent); 

上記のコードが行うことは、マップ上にマーカーをプロットし、範囲を拡大することです。私の雇用主が今求めているのは、それらすべての点の中心点を見つけて、その中心に 1 つのマーカーを表示することです。

これはできますか?もしそうなら、あなたはどのように教えてくれますか?

ありがとうポール

4

3 に答える 3

0

ここでやりたいことは、 を作成する代わりに、ポイントの配列から をMultipoint作成することだと思います。Polygonポリゴンを定義したら、次のようなことができます

var myPolygon = new Polygon(points);
var centroid = myPolygon.getCentroid();

これにより、ポリゴンを構成するポイントの重心が得られます。

https://developers.arcgis.com/javascript/jsapi/polygon-amd.html

ただし、これには少なくともバージョン 3.7 の JS API が必要であることに注意してください。

于 2015-06-03T12:47:44.850 に答える
0

.getCentriod() を使用しようとしている人に指摘することの 1 つは、ポリゴンが閉じていることを確認することです。最初のポイントと最後のポイントは同じ場所にある必要があります。そうしないと、正しく機能しません。(私は1年前にこれに遭遇しました。彼らがこれを変更したかどうかはわかりません)

于 2015-10-09T13:33:49.237 に答える