2

グーグルマップオーバーレイの種類を確認することは可能ですか。

var polygon = new G.Polygon();
var rectangle = new G.Rectangle();
var circle = new G.Circle();

var shape;

これで、私のコードはこれらのオーバーレイをshape変数に動的に割り当てます。

しかし、どうすれば名前の付いたオーバーレイのタイプを検出または確認できshapeますか?Googleを使用して解決策を見つけることができません。

4

3 に答える 3

3

使用できますがinstanceof、使用しないことをお勧めします。これはAPIの一部ではなく、将来いつでも破損する可能性があります。

初期化時に属性を割り当てる方がよいでしょう。

var polygon = new G.Polygon();
polygon.type = 'polygon';

var rectangle = new G.Rectangle();
polygon.type = 'rectangle';

var circle = new G.Circle();
polygon.type = 'circle';

console.log(shape.type);
于 2012-09-06T07:20:46.217 に答える
1

Javascriptのinstanceof演算子を使用してクラスを確認できます。

var polygon = new G.Polygon();
var rectangle = new G.Rectangle();
var circle = new G.Circle();

var shape = selectShape(polygon, rectangle, circle); // your dynamic selection funktion
if (shape instanceof G.Polygon) {
    alert("found Polygon");
}
于 2012-09-06T07:18:59.613 に答える
-1

与えられた形のタイプを返す関数を書きました。円と多角形をサポートしていますが、長方形を追加する方法を誰かが理解できると確信しています。それぞれの固有のプロパティをチェックするだけです。

function typeOfShape(shape){
    if(typeof shape.getPath === "function"){
        return "polygon";
    }else if(typeof shape.getRadius === "function"){
        return "circle";
    }else{
        return "unknown";
    }
}
于 2016-07-22T17:19:46.320 に答える