是否可以检查谷歌地图覆盖的类型。
var polygon = new G.Polygon();
var rectangle = new G.Rectangle();
var circle = new G.Circle();
var shape;
现在,我的代码会将这些覆盖动态分配给shape
变量。
但是如何检测或检查名为 的叠加层的类型shape
?我无法使用 Google 找到解决方案。
是否可以检查谷歌地图覆盖的类型。
var polygon = new G.Polygon();
var rectangle = new G.Rectangle();
var circle = new G.Circle();
var shape;
现在,我的代码会将这些覆盖动态分配给shape
变量。
但是如何检测或检查名为 的叠加层的类型shape
?我无法使用 Google 找到解决方案。
您可以使用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);
您可以通过 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");
}
我写了一个函数,它返回给定的形状类型。它支持圆形和多边形,但我相信有人可以弄清楚如何添加矩形。它只是检查每个的独特属性。
function typeOfShape(shape){
if(typeof shape.getPath === "function"){
return "polygon";
}else if(typeof shape.getRadius === "function"){
return "circle";
}else{
return "unknown";
}
}