Data

資料類別

class google.maps.Data extends MVCObject
library "maps"

用於顯示地理空間資料的圖層。可顯示點、線串和多邊形。

每個 Map 預設都有 Data 物件,因此大多數情況下不需要建構。例如:

 var myMap = new google.maps.Map(...);
myMap.data.addGeoJson(...);
myMap.data.setStyle(...);
Data 物件是 Features 的集合。

const {Data} = await google.maps.importLibrary("maps");
Data
Data([options])
參數:
使用指定的 DataOptions 建立空白集合。
add
add([feature])
參數:
傳回值: Data.Feature
在集合中新增地圖項目,並傳回新增的地圖項目。

如果地圖項目有 ID,則會取代集合中 ID 相同的任何現有地圖項目。如果未提供地圖項目,系統會建立新的地圖項目,其中不含幾何圖形和屬性。如果提供 FeatureOptions,系統會使用指定屬性建立新特徵。

請注意,1234 和 '1234' 這兩個 ID 相同。新增 ID 為 1234 的功能會取代 ID 為 '1234' 的功能,反之亦然。

addGeoJson
addGeoJson(geoJson[, options])
參數:
傳回值: Array<Data.Feature>
將 GeoJSON 地圖項目新增至集合。請將剖析過的 JSON 傳遞給這個方法。系統會傳回匯入的特徵。如果無法匯入 GeoJSON,則會擲回例外狀況。
contains
contains(feature)
參數:
傳回值: boolean
檢查指定特徵是否在集合中。
forEach
forEach(callback)
參數:
傳回值:無
重複叫用指定函式,每次叫用時將集合中的地圖項目傳遞至函式。特徵疊代順序未定義。
getControlPosition
getControlPosition()
參數:無
傳回值: ControlPosition|null
傳回地圖上繪圖控制項的位置。
getControls
getControls()
參數:無
傳回值: Array<string>|null
傳回使用者可選取的繪圖模式,並依顯示順序排列。這不包括預設新增的 null 繪圖模式。可能的繪圖模式為 "Point"、"LineString" 或 "Polygon"。
getDrawingMode
getDrawingMode()
參數:無
傳回值: string|null
傳回指定資料層目前的繪圖模式。null 繪圖模式表示使用者可以正常與地圖互動,點按不會繪製任何內容。可能的繪圖模式為 null、"Point"、"LineString" 或 "Polygon"。
getFeatureById
getFeatureById(id)
參數:
  • id: number|string
傳回值: Data.Feature|undefined
傳回集合中具有指定 ID 的地圖項目 (如果有的話)。否則傳回 undefined。

請注意,1234 和 '1234' 這兩個 ID 相同。兩者皆可用於查詢相同特徵。

getMap
getMap()
參數:無
傳回值: Map|null
傳回顯示地圖項目的地圖。
getStyle
getStyle()
參數:無
取得集合中所有地圖項目的樣式。
loadGeoJson
loadGeoJson(url[, options, callback])
參數:
傳回值:無
從網址載入 GeoJSON,並將地圖項目新增至集合。

注意:GeoJSON 是使用 XHR 擷取,可能無法跨網域運作。如果發生問題,建議您使用自選的 AJAX 程式庫擷取 GeoJSON,然後呼叫 addGeoJson()。

overrideStyle
overrideStyle(feature, style)
參數:
傳回值:無
變更地圖項目的樣式。這些變更會套用至 setStyle() 指定的樣式。設為 null 的樣式屬性會還原為透過 setStyle() 指定的值。
remove
remove(feature)
參數:
傳回值:無
從集合中移除特徵。
revertStyle
revertStyle([feature])
參數:
傳回值:無
移除先前 overrideStyle() 呼叫的效果。指定地圖項目的樣式會還原為 setStyle() 指定的樣式。

如未指定地圖項目,則所有地圖項目的樣式都會還原。

setControlPosition
setControlPosition(controlPosition)
參數:
傳回值:無
設定地圖上繪圖控制項的位置。
setControls
setControls(controls)
參數:
  • controls: Array<string> optional
傳回值:無
設定使用者可選取的繪圖模式,並依顯示順序排列。這不應包含預設新增的 null 繪圖模式。如果設為 null,系統會停用且不顯示繪圖控制項。可能的繪圖模式為 "Point"、"LineString" 或 "Polygon"。
setDrawingMode
setDrawingMode(drawingMode)
參數:
  • drawingMode: string optional
傳回值:無
設定指定資料層目前的繪圖模式。null 繪圖模式表示使用者可以正常與地圖互動,點按不會繪製任何內容。可能的繪圖模式為 null、"Point"、"LineString" 或 "Polygon"。
setMap
setMap(map)
參數:
  • map: Map optional
傳回值:無
在指定地圖上算繪地圖項目。如果將地圖設為 null,系統會從地圖中移除地圖項目。
setStyle
setStyle(style)
參數:
傳回值:無
設定集合中所有地圖項目的樣式。透過 overrideStyle() 為個別地圖項目指定的樣式仍會套用。

傳遞具有所需樣式選項的物件,或計算每個地圖項目樣式的函式。每當地圖項目的屬性更新時,系統就會呼叫這個函式。

toGeoJson
toGeoJson(callback)
參數:
  • callback: function(Object): void
傳回值:無
將集合中的地圖項目匯出至 GeoJSON 物件。
繼承: addListener、bindTo、get、notify、set、setValues、unbind、unbindAll
addfeature
function(event)
引數:
將地圖項目新增至集合時,系統會觸發這個事件。
click
function(event)
引數:
點選幾何圖形時,系統會觸發這個事件。
contextmenu
function(event)
引數:
在幾何圖形上觸發 DOM contextmenu 事件時,就會觸發這個事件。
dblclick
function(event)
引數:
在幾何圖形上按兩下時,就會觸發這個事件。
mousedown
function(event)
引數:
在幾何圖形上按下按鈕時,就會觸發這個事件。
mouseout
function(event)
引數:
滑鼠離開幾何圖形區域時,就會觸發這個事件。
mouseover
function(event)
引數:
滑鼠進入幾何圖形區域時,就會觸發這個事件。
mouseup
function(event)
引數:
在幾何圖形上放開滑鼠按鈕時,就會觸發這個事件。
removefeature
function(event)
引數:
從集合中移除地圖項目時,系統會觸發這個事件。
removeproperty
function(event)
引數:
移除地圖項目的屬性時,就會觸發這個事件。
setgeometry
function(event)
引數:
設定地圖項目的幾何圖形時,就會觸發這個事件。
setproperty
function(event)
引數:
設定地圖項目的屬性時,系統會觸發這個事件。
rightclick
function(event)
引數:
在幾何圖形上按一下滑鼠右鍵時,會觸發這個事件。

Data.DataOptions 介面

介面 google.maps.Data.DataOptions

DataOptions 物件,用於定義開發人員可在 Data 物件上設定的屬性。

map
類型: Map
要顯示集合中地圖項目的地圖。
controlPosition
選填
類型: ControlPosition optional
地圖上繪圖控制項的位置。
controls
選填
類型: Array<string> optional
預設值: null
說明使用者可選取的繪圖模式,並依顯示順序排列。這不應包含預設新增的 null 繪圖模式。如果設為 null,系統會停用且不顯示繪圖控制項。可能的繪圖模式為 "Point"、"LineString" 或 "Polygon"。
drawingMode
選填
類型: string optional
預設值: null
指定資料層目前的繪圖模式。null 繪圖模式表示使用者可以正常與地圖互動,點按不會繪製任何內容。可能的繪圖模式為 null、"Point"、"LineString" 或 "Polygon"。
featureFactory
選填
類型: function(Data.Geometry): Data.Feature optional
啟用繪圖功能後,如果使用者繪製幾何圖形 (點、線串或多邊形),系統就會使用該幾何圖形呼叫這個函式,並傳回要新增至資料層的地圖項目。如果未提供 featureFactory,系統會改為從該幾何圖形建立沒有 ID 和屬性的地圖項目。預設值為 null。
style
選填
集合中所有地圖項目的樣式。詳情請參閱上方的 setStyle() 方法。

Data.GeoJsonOptions 介面

介面 google.maps.Data.GeoJsonOptions

匯入 GeoJSON 的選用參數。

idPropertyName
選填
類型: string optional
要用做特徵 ID 的特徵屬性名稱。如未指定,系統會使用 GeoJSON 地圖項目 ID。

Data.StyleOptions 介面

介面 google.maps.Data.StyleOptions

這些選項會指定地圖項目在地圖上的顯示方式。

animation
選填
類型: Animation optional
標記新增至地圖時要播放的動畫。僅適用於點幾何圖形。
clickable
選填
類型: boolean optional
預設值: true
如果為 true,標記就會接收滑鼠和觸控事件。
cursor
選填
類型: string optional
懸停時要顯示的滑鼠游標。僅適用於點幾何圖形。
draggable
選填
類型: boolean optional
預設值: false
如果為 true,則可在地圖上拖曳物件,且基礎地圖項目的幾何圖形會更新。
editable
選填
類型: boolean optional
預設值: false
如果為 true,則可拖曳控制點來編輯物件,且基礎地圖項目的幾何圖形會更新。僅適用於 LineString 和 Polygon 幾何圖形。
fillColor
選填
類型: string optional
填色。系統支援所有 CSS3 色彩 (延伸的具名色彩除外)。僅適用於多邊形幾何圖形。
fillOpacity
選填
類型: number optional
填滿不透明度,範圍介於 0.0 和 1.0 之間。僅適用於多邊形幾何圖形。
icon
選填
類型: string|Icon|Symbol optional
前景圖示。如果提供字串,系統會將其視為 Icon,並將字串視為 url。僅適用於點幾何圖形。
icons
選填
類型: Array<IconSequence> optional
沿著折線顯示的圖示。僅適用於線條幾何圖形。
label
選填
類型: string|MarkerLabel optional
為標記新增標籤。標籤可以是字串或 MarkerLabel 物件。僅適用於點幾何圖形。
opacity
選填
類型: number optional
標記的不透明度,介於 0.0 至 1.0 之間。僅適用於點幾何圖形。
shape
選填
類型: MarkerShape optional
定義用於偵測命中的圖片點擊區。僅適用於點幾何圖形。
strokeColor
選填
類型: string optional
筆觸色彩。系統支援所有 CSS3 色彩 (延伸的具名色彩除外)。僅適用於線和多邊形幾何圖形。
strokeOpacity
選填
類型: number optional
筆劃不透明度,範圍介於 0.0 和 1.0 之間。僅適用於線和多邊形幾何圖形。
strokeWeight
選填
類型: number optional
筆劃寬度 (以像素為單位)。僅適用於線和多邊形幾何圖形。
title
選填
類型: string optional
滑鼠游標懸停效果文字。僅適用於點幾何圖形。
visible
選填
類型: boolean optional
預設值: true
是否顯示地圖項目。
zIndex
選填
類型: number optional
所有地圖項目皆按照 zIndex 順序顯示在地圖上,值較高的地圖項目會比值較低的地圖項目優先顯示。標記一律會顯示在線串和多邊形的前方。

Data.StylingFunction typedef

typedef google.maps.Data.StylingFunction

用於計算地圖項目外觀的函式。

Data.setStyle() 方法可接受樣式函式。如果地圖項目應根據屬性顯示不同外觀,請使用這項功能。如要進一步瞭解樣式設定功能,請參閱開發人員指南。

function(Data.Feature): Data.StyleOptions

Data.Feature 類別

class google.maps.Data.Feature
library "maps"

地圖項目包含幾何圖形、ID 和一組屬性。

const {Data} = await google.maps.importLibrary("maps");
Data.Feature
Data.Feature([options])
參數:
使用指定選項建構特徵。
forEachProperty
forEachProperty(callback)
參數:
  • callback: function(*, string): void
傳回值:無
重複叫用指定函式,每次叫用時傳遞屬性值和名稱。屬性的疊代順序未定義。
getGeometry
getGeometry()
參數:無
傳回值: Data.Geometry|null
傳回地圖項目的幾何圖形。
getId
getId()
參數:無
傳回值: number|string|undefined
傳回特徵 ID。
getProperty
getProperty(name)
參數:
  • name: string
傳回值: *
傳回所要求屬性的值,如果屬性不存在,則傳回 undefined。
removeProperty
removeProperty(name)
參數:
  • name: string
傳回值:無
移除指定名稱的屬性。
setGeometry
setGeometry(newGeometry)
參數:
傳回值:無
設定地圖項目的幾何圖形。
setProperty
setProperty(name, newValue)
參數:
  • name: string
  • newValue: *
傳回值:無
設定指定屬性的值。如果 newValue 為 undefined,這相當於呼叫 removeProperty。
toGeoJson
toGeoJson(callback)
參數:
  • callback: function(Object): void
傳回值:無
將地圖項目匯出至 GeoJSON 物件。
removeproperty
function(event)
引數:
移除地圖項目屬性時,系統會觸發這個事件。
setgeometry
function(event)
引數:
設定地圖項目的幾何圖形時,就會觸發這個事件。
setproperty
function(event)
引數:
設定地圖項目的屬性時,系統會觸發這個事件。

Data.FeatureOptions 介面

介面 google.maps.Data.FeatureOptions

建立 Data.Feature 物件的選用參數。

geometry
選填
地圖項目幾何圖形。如果在建構地圖項目時未指定,地圖項目的幾何圖形會是 null。如果提供 LatLng 物件或 LatLngLiteral,系統會將其轉換為 Data.Point 幾何圖形。
id
選填
類型: number|string optional
特徵 ID 為選填項目。如果提供,則可使用 getFeatureById() 方法在 Data 物件中查詢特徵。請注意,功能 ID 設定後即無法變更。
properties
選填
類型: Object optional
地圖項目屬性。這是屬性名稱與值的任意對應。

Data.Geometry 介面

介面 google.maps.Data.Geometry
由 Data.GeometryCollection, Data.LinearRing, Data.LineString, Data.MultiLineString, Data.MultiPoint, Data.MultiPolygon, Data.Point, Data.Polygon 實作

各種幾何圖形物件的父類別。

forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值: void
重複叫用指定函式,每次叫用時將幾何圖形中的點傳遞至函式。
getType
getType()
參數:無
傳回值: string
傳回幾何圖形物件的類型。可能的值為 "Point"、"MultiPoint"、"LineString"、"MultiLineString"、"LinearRing"、"Polygon"、"MultiPolygon" 或 "GeometryCollection"。

Data.Point 類別

類別 google.maps.Data.Point 實作 Data.Geometry
程式庫 "maps"

Point 幾何圖形包含單一 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.Point
Data.Point(latLng)
參數:
根據指定的 LatLng 或 LatLngLiteral 建構 Data.Point。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
get
get()
參數:無
傳回值: LatLng
傳回內含的 LatLng。
getType
getType()
參數:無
傳回值: string
傳回字串 "Point"。

Data.MultiPoint 類別

類別 google.maps.Data.MultiPoint 實作 Data.Geometry
程式庫 "maps"

MultiPoint 幾何圖形包含多個 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiPoint
Data.MultiPoint(elements)
參數:
根據指定的 LatLng 或 LatLngLiteral 建構 Data.MultiPoint。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<LatLng>
傳回所含 LatLng 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: LatLng
傳回第 n 個包含的 LatLng。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 LatLng 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "MultiPoint"。

Data.LineString 類別

類別 google.maps.Data.LineString 實作 Data.Geometry
程式庫 "maps"

LineString 幾何圖形包含多個 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.LineString
Data.LineString(elements)
參數:
根據指定的 LatLng 或 LatLngLiteral 建構 Data.LineString。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<LatLng>
傳回所含 LatLngs 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: LatLng
傳回第 n 個包含的 LatLng。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 LatLng 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "LineString"。

Data.MultiLineString 類別

類別 google.maps.Data.MultiLineString 實作 Data.Geometry
程式庫 "maps"

MultiLineString 幾何圖形包含多個 LineString。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiLineString
Data.MultiLineString(elements)
根據指定的 Data.LineString 或位置陣列建構 Data.MultiLineString。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<Data.LineString>
傳回所含 Data.LineString 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: Data.LineString
傳回第 n 個包含的 Data.LineString。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 Data.LineString 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "MultiLineString"。

Data.LinearRing 類別

類別 google.maps.Data.LinearRing 實作 Data.Geometry
程式庫 "maps"

LinearRing 幾何圖形包含多個 LatLng,代表封閉的 LineString。第一個 LatLng 不必等於最後一個 LatLng。LinearRing 會隱含封閉。

const {Data} = await google.maps.importLibrary("maps");
Data.LinearRing
Data.LinearRing(elements)
參數:
根據指定的 LatLng 或 LatLngLiteral 建構 Data.LinearRing。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<LatLng>
傳回所含 LatLng 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: LatLng
傳回第 n 個包含的 LatLng。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 LatLng 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "LinearRing"。

Data.Polygon 類別

類別 google.maps.Data.Polygon 實作 Data.Geometry
程式庫 "maps"

多邊形幾何圖形包含多個 Data.LinearRing。第一個線性環必須是多邊形外部邊界,後續線性環則必須是內部邊界 (也稱為孔洞)。請參閱有孔的多邊形範例。

const {Data} = await google.maps.importLibrary("maps");
Data.Polygon
Data.Polygon(elements)
根據指定的 Data.LinearRing 或位置陣列建構 Data.Polygon。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<Data.LinearRing>
傳回所含 Data.LinearRing 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: Data.LinearRing
傳回第 n 個包含的 Data.LinearRing。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 Data.LinearRing 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "Polygon"。

Data.MultiPolygon 類別

類別 google.maps.Data.MultiPolygon 實作 Data.Geometry
程式庫 "maps"

MultiPolygon 幾何圖形包含多個 Data.Polygon。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiPolygon
Data.MultiPolygon(elements)
根據指定的 Data.Polygon 或位置陣列建構 Data.MultiPolygon。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<Data.Polygon>
傳回所含 Data.Polygon 的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: Data.Polygon
傳回第 n 個包含的 Data.Polygon。
getLength
getLength()
參數:無
傳回值: number
傳回包含的 Data.Polygon 數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "MultiPolygon"。

Data.GeometryCollection 類別

類別 google.maps.Data.GeometryCollection 實作 Data.Geometry
程式庫 "maps"

GeometryCollection 包含多個幾何圖形物件。任何 LatLng 或 LatLngLiteral 物件都會自動轉換為 Data.Point 幾何圖形物件。

const {Data} = await google.maps.importLibrary("maps");
Data.GeometryCollection
Data.GeometryCollection(elements)
參數:
根據指定的幾何圖形物件或 LatLng 建構 Data.GeometryCollection。
forEachLatLng
forEachLatLng(callback)
參數:
  • callback: function(LatLng): void
傳回值:無
getArray
getArray()
參數:無
傳回值: Array<Data.Geometry>
傳回所含幾何圖形物件的陣列。每次呼叫 getArray() 時,系統都會傳回新的陣列。
getAt
getAt(n)
參數:
  • n: number
傳回值: Data.Geometry
傳回第 n 個包含的幾何圖形物件。
getLength
getLength()
參數:無
傳回值: number
傳回包含的幾何圖形物件數量。
getType
getType()
參數:無
傳回值: string
傳回字串 "GeometryCollection"。

Data.MouseEvent 介面

interface google.maps.Data.MouseEvent extends MapMouseEvent

這個物件會傳遞至 Data 物件上的滑鼠事件處理常式。

feature
類型: Data.Feature
產生滑鼠事件的地圖項目。
繼承: domEvent、latLng
沿用: stop

Data.AddFeatureEvent 介面

介面 google.maps.Data.AddFeatureEvent

addfeature 事件的屬性。

feature
類型: Data.Feature
新增至 FeatureCollection 的地圖項目。

Data.RemoveFeatureEvent 介面

介面 google.maps.Data.RemoveFeatureEvent

removefeature 事件的屬性。

feature
類型: Data.Feature
從 FeatureCollection 移除的功能。

Data.SetGeometryEvent 介面

介面 google.maps.Data.SetGeometryEvent

setgeometry 事件的屬性。

feature
類型: Data.Feature
已設定幾何圖形的地圖項目。
newGeometry
選填
類型: Data.Geometry optional
新的地圖項目幾何圖形。
oldGeometry
選填
類型: Data.Geometry optional
先前的地圖項目幾何圖形。

Data.SetPropertyEvent 介面

介面 google.maps.Data.SetPropertyEvent

setproperty 事件的屬性。

feature
類型: Data.Feature
已設定屬性的地圖項目。
name
類型: string
屬性名稱。
newValue
類型: *
新值。
oldValue
類型: *
先前的值。如果已新增屬性,則為 undefined。

Data.RemovePropertyEvent 介面

介面 google.maps.Data.RemovePropertyEvent

removeproperty 事件的屬性。

feature
類型: Data.Feature
已移除屬性的地圖項目。
name
類型: string
屬性名稱。
oldValue
類型: *
先前的值。