是否可以檢查谷歌地圖覆蓋圖的類型。現在如何查看谷歌地圖覆蓋圖類型
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";
}
}
,謝謝,我甚至不知道我可以一個屬性只分配到覆蓋... – Timeless
的instanceof不是API的一部分,但它的Javascript的一部分。它應該工作正常。 – Marcelo
不一定。考慮這個:'function Marker(){return {}}; (新Marker)Marker實例;/* false * /' –