如何查看Google地图叠加层类型

时间:2012-09-06 06:55:29

标签: google-maps google-maps-api-3

是否可以检查谷歌地图叠加层的类型。

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

var shape;

现在,我的代码会动态地将这些叠加层分配给shape变量。

但是如何检测或检查名为shape的叠加层的类型?我无法使用Google找到解决方案。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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");
}

答案 2 :(得分:-1)

我编写了一个函数,它返回给定的形状类型。它支持圆和多边形,但我确信有人可以弄清楚如何添加矩形。它只是检查每个属性的唯一属性。

function typeOfShape(shape){
    if(typeof shape.getPath === "function"){
        return "polygon";
    }else if(typeof shape.getRadius === "function"){
        return "circle";
    }else{
        return "unknown";
    }
}