Marker (legacy)

Lớp Bút dạ

Lớp google.maps.Marker

Lớp này mở rộng MVCObject.

Truy cập bằng cách gọi const {Marker} = await google.maps.importLibrary("marker"). Xem phần Thư viện trong API Maps JavaScript.

Marker
Marker([opts])
Thông số: 
  • optsMarkerOptions optional Đối số không bắt buộc được đặt tên
Tạo một điểm đánh dấu bằng các tuỳ chọn đã chỉ định. Nếu bạn chỉ định một bản đồ, điểm đánh dấu sẽ được thêm vào bản đồ khi tạo. Xin lưu ý rằng bạn phải đặt vị trí để điểm đánh dấu hiển thị.
MAX_ZINDEX Chỉ mục z mặc định tối đa mà API sẽ chỉ định cho một điểm đánh dấu. Bạn có thể đặt chỉ mục z cao hơn để đưa điểm đánh dấu lên phía trước.
getAnimation
getAnimation()
Thông số:  Không có
Giá trị trả về:  Animation|null|undefined
Nhận ảnh động đang chạy.
getClickable
getClickable()
Thông số:  Không có
Giá trị trả về:  boolean Đúng nếu có thể nhấp vào Điểm đánh dấu.
Nhận trạng thái có thể nhấp của Marker.
getCursor
getCursor()
Thông số:  Không có
Giá trị trả về:  string|null|undefined
Lấy loại con trỏ chuột hiển thị khi di chuột.
getDraggable
getDraggable()
Thông số:  Không có
Giá trị trả về:  boolean Đúng nếu có thể kéo Điểm đánh dấu.
Lấy trạng thái có thể kéo của Marker.
getIcon
getIcon()
Thông số:  Không có
Giá trị trả về:  string|Icon|Symbol|null|undefined
Lấy biểu tượng của Marker. Vui lòng xem MarkerOptions.icon.
getLabel
getLabel()
Thông số:  Không có
Giá trị trả về:  MarkerLabel|string|null|undefined
Lấy nhãn của Marker. Vui lòng xem MarkerOptions.label.
getMap
getMap()
Thông số:  Không có
Giá trị trả về:  Map|StreetViewPanorama
Lấy bản đồ hoặc ảnh toàn cảnh mà Marker hiển thị.
getOpacity
getOpacity()
Thông số:  Không có
Giá trị trả về:  number|null|undefined Một số từ 0 đến 1.
Lấy độ mờ của Marker.
getPosition
getPosition()
Thông số:  Không có
Giá trị trả về:  LatLng|null|undefined
Lấy vị trí của Marker.
getShape
getShape()
Thông số:  Không có
Giá trị trả về:  MarkerShape|null|undefined
Lấy hình dạng của Marker dùng để tương tác. Hãy xem MarkerOptions.shapeMarkerShape.
getTitle
getTitle()
Thông số:  Không có
Giá trị trả về:  string|null|undefined
Lấy tiêu đề của chú giải công cụ Marker. Vui lòng xem MarkerOptions.title.
getVisible
getVisible()
Thông số:  Không có
Giá trị trả về:  boolean Đúng nếu Điểm đánh dấu hiển thị.
Xem chế độ hiển thị của Marker.
getZIndex
getZIndex()
Thông số:  Không có
Giá trị trả về:  number|null|undefined zIndex của Điểm đánh dấu.
Lấy zIndex của Marker. Vui lòng xem MarkerOptions.zIndex.
setAnimation
setAnimation([animation])
Thông số: 
  • animationAnimation optional Ảnh động cần phát.
Giá trị trả về:  Không có
Bắt đầu ảnh động. Mọi ảnh động đang diễn ra sẽ bị huỷ. Các ảnh động hiện được hỗ trợ là: Animation.BOUNCE, Animation.DROP. Việc truyền vào null sẽ khiến mọi ảnh động dừng lại.
setClickable
setClickable(flag)
Thông số: 
  • flagboolean Nếu true, bạn có thể nhấp vào Điểm đánh dấu.
Giá trị trả về:  Không có
Đặt xem Marker có thể nhấp được hay không.
setCursor
setCursor([cursor])
Thông số: 
  • cursorstring optional Loại con trỏ chuột.
Giá trị trả về:  Không có
Đặt loại con trỏ chuột hiển thị khi di chuột.
setDraggable
setDraggable(flag)
Thông số: 
  • flagboolean optional Nếu true, bạn có thể kéo Điểm đánh dấu.
Giá trị trả về:  Không có
Thiết lập xem Marker có thể kéo được hay không.
setIcon
setIcon([icon])
Thông số: 
Giá trị trả về:  Không có
Đặt biểu tượng cho Marker. Vui lòng xem MarkerOptions.icon.
setLabel
setLabel([label])
Thông số: 
  • labelstring|MarkerLabel optional Nhãn có thể là một chuỗi ký tự hoặc một đối tượng MarkerLabel.
Giá trị trả về:  Không có
Đặt nhãn cho Marker. Vui lòng xem MarkerOptions.label.
setMap
setMap(map)
Thông số: 
Giá trị trả về:  Không có
Kết xuất Marker trên bản đồ hoặc ảnh toàn cảnh đã chỉ định. Nếu bạn đặt map thành null, điểm đánh dấu sẽ bị xoá.
setOpacity
setOpacity([opacity])
Thông số: 
  • opacitynumber optional Một số từ 0.0 (trong suốt) đến 1.0 (mờ).
Giá trị trả về:  Không có
Đặt độ mờ của Marker.
setOptions
setOptions(options)
Thông số: 
Giá trị trả về:  Không có
Đặt các tuỳ chọn cho Marker.
setPosition
setPosition([latlng])
Thông số: 
Giá trị trả về:  Không có
Đặt vị trí cho Marker.
setShape
setShape([shape])
Thông số: 
Giá trị trả về:  Không có
Đặt hình dạng của Marker dùng để tương tác. Hãy xem MarkerOptions.shapeMarkerShape.
setTitle
setTitle([title])
Thông số: 
  • titlestring optional
Giá trị trả về:  Không có
Đặt tiêu đề của chú giải công cụ Marker. Vui lòng xem MarkerOptions.title.
setVisible
setVisible(visible)
Thông số: 
  • visibleboolean Nếu true, Điểm đánh dấu sẽ hiển thị
Giá trị trả về:  Không có
Đặt nếu Marker hiển thị.
setZIndex
setZIndex([zIndex])
Thông số: 
  • zIndexnumber optional
Giá trị trả về:  Không có
Đặt zIndex của Marker. Vui lòng xem MarkerOptions.zIndex.
Kế thừa: addListener, bindTo, get, notify, set, setValues, unbind, unbindAll
animation_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính ảnh động Marker thay đổi.
click
function(event)
Đối số: 
Sự kiện này được kích hoạt khi người dùng nhấp vào biểu tượng Marker.
clickable_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính có thể nhấp Marker thay đổi.
contextmenu
function(event)
Đối số: 
Sự kiện này được kích hoạt khi sự kiện trình đơn theo bối cảnh DOM được kích hoạt trên Marker
cursor_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính con trỏ Marker thay đổi.
dblclick
function(event)
Đối số: 
Sự kiện này được kích hoạt khi người dùng nhấp đúp vào biểu tượng Marker.
drag
function(event)
Đối số: 
Sự kiện này được kích hoạt liên tục trong khi người dùng kéo Marker.
dragend
function(event)
Đối số: 
Sự kiện này được kích hoạt khi người dùng ngừng kéo Marker.
draggable_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính có thể kéo Marker thay đổi.
dragstart
function(event)
Đối số: 
Sự kiện này được kích hoạt khi người dùng bắt đầu kéo Marker.
flat_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính phẳng Marker thay đổi.
icon_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính biểu tượng Marker thay đổi.
mousedown
function(event)
Đối số: 
Sự kiện này được kích hoạt cho một mousedown trên Marker.
mouseout
function(event)
Đối số: 
Sự kiện này được kích hoạt khi chuột rời khỏi khu vực của biểu tượng Marker.
mouseover
function(event)
Đối số: 
Sự kiện này được kích hoạt khi chuột di vào khu vực của biểu tượng Marker.
mouseup
function(event)
Đối số: 
Sự kiện này được kích hoạt cho một sự kiện nhấp chuột lên trên Marker.
position_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính vị trí Marker thay đổi.
shape_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính hình dạng Marker thay đổi.
title_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính tiêu đề Marker thay đổi.
visible_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính hiển thị Marker thay đổi.
zindex_changed
function()
Đối số:  Không có
Sự kiện này được kích hoạt khi thuộc tính zIndex của Marker thay đổi.
rightclick
function(event)
Đối số: 
Sự kiện này được kích hoạt khi nhấp chuột phải vào Marker.

Giao diện MarkerOptions

Giao diện google.maps.MarkerOptions

Đối tượng MarkerOptions dùng để xác định các thuộc tính có thể được đặt trên một Điểm đánh dấu.

anchorPoint optional
Loại:  Point optional
Độ lệch từ vị trí của điểm đánh dấu đến đầu của InfoWindow đã được mở bằng điểm đánh dấu làm neo.
animation optional
Loại:  Animation optional
Mặc định: null
Ảnh động sẽ phát khi thêm điểm đánh dấu vào bản đồ.
clickable optional
Loại:  boolean optional
Mặc định: true
Nếu là true, điểm đánh dấu sẽ nhận được các sự kiện chuột và chạm.
BetacollisionBehavior optional
Loại:  string|CollisionBehavior optional
Mặc định: null
Thiết lập hành vi va chạm cho các điểm đánh dấu trên bản đồ vectơ.
crossOnDrag optional
Loại:  boolean optional
Mặc định: true
Nếu false, hãy tắt dấu thập xuất hiện bên dưới điểm đánh dấu khi kéo.
cursor optional
Loại:  string optional
Mặc định: pointer
Loại con trỏ chuột sẽ hiển thị khi di chuột.
draggable optional
Loại:  boolean optional
Mặc định: false
Nếu là true, bạn có thể kéo điểm đánh dấu.
icon optional
Loại:  string|Icon|Symbol optional
Biểu tượng cho nền trước. Nếu bạn cung cấp một chuỗi, chuỗi đó sẽ được coi là Icon với chuỗi là url.
label optional
Loại:  string|MarkerLabel optional
Mặc định: null
Thêm nhãn vào điểm đánh dấu. Nhãn điểm đánh dấu là một chữ cái hoặc số xuất hiện bên trong điểm đánh dấu. Nhãn có thể là một chuỗi hoặc một đối tượng MarkerLabel. Nếu bạn cung cấp nhãn và không cung cấp MarkerOptions.title, thì văn bản hỗ trợ tiếp cận (ví dụ: để sử dụng với trình đọc màn hình) sẽ được thêm vào điểm đánh dấu bằng văn bản của nhãn đã cung cấp. Xin lưu ý rằng label hiện chỉ được dùng cho văn bản hỗ trợ tiếp cận cho các điểm đánh dấu không được tối ưu hoá.
map optional
Loại:  Map|StreetViewPanorama optional
Bản đồ để hiển thị Điểm đánh dấu. Bản đồ là bắt buộc để hiển thị điểm đánh dấu và có thể được cung cấp bằng Marker.setMap nếu không được cung cấp khi tạo điểm đánh dấu.
opacity optional
Loại:  number optional
Mặc định: 1.0
Một số từ 0.0 (trong suốt) đến 1.0 (mờ).
optimized optional
Loại:  boolean optional
Tính năng tối ưu hoá giúp nâng cao hiệu suất bằng cách kết xuất nhiều điểm đánh dấu dưới dạng một phần tử tĩnh. Điều này hữu ích trong trường hợp cần có một số lượng lớn điểm đánh dấu. Đọc thêm về tính năng tối ưu hoá điểm đánh dấu.
position optional
Loại:  LatLng|LatLngLiteral optional
Đặt vị trí điểm đánh dấu. Một điểm đánh dấu có thể được tạo nhưng không hiển thị cho đến khi vị trí của điểm đánh dấu được cung cấp – ví dụ: theo hành động hoặc lựa chọn của người dùng. Bạn có thể cung cấp vị trí điểm đánh dấu bằng Marker.setPosition nếu không cung cấp tại thời điểm tạo điểm đánh dấu.
shape optional
Loại:  MarkerShape optional
Định nghĩa vùng bản đồ hình ảnh dùng để kéo/nhấp.
title optional
Loại:  string optional
Mặc định: undefined
Văn bản khi di chuột qua. Nếu được cung cấp, văn bản hỗ trợ tiếp cận (ví dụ: để sử dụng với trình đọc màn hình) sẽ được thêm vào điểm đánh dấu bằng giá trị đã cung cấp. Xin lưu ý rằng title hiện chỉ được dùng cho văn bản hỗ trợ tiếp cận cho các điểm đánh dấu không được tối ưu hoá.
visible optional
Loại:  boolean optional
Mặc định: true
Nếu là true, điểm đánh dấu sẽ hiển thị.
zIndex optional
Loại:  number optional
Tất cả điểm đánh dấu sẽ hiển thị trên bản đồ theo thứ tự zIndex, với các giá trị cao hơn hiển thị trước các điểm đánh dấu có giá trị thấp hơn. Theo mặc định, các điểm đánh dấu sẽ hiển thị theo vị trí dọc trên màn hình, trong đó các điểm đánh dấu thấp hơn sẽ xuất hiện trước các điểm đánh dấu ở phía trên màn hình.

Hằng số CollisionBehavior

Hằng số google.maps.CollisionBehavior

Truy cập bằng cách gọi const {CollisionBehavior} = await google.maps.importLibrary("marker"). Xem phần Thư viện trong API Maps JavaScript.

OPTIONAL_AND_HIDES_LOWER_PRIORITY Chỉ hiển thị điểm đánh dấu nếu điểm đánh dấu đó không chồng lên các điểm đánh dấu khác. Nếu hai điểm đánh dấu thuộc loại này trùng lặp, thì điểm đánh dấu có zIndex cao hơn sẽ xuất hiện. Nếu các thành phần này có cùng zIndex, thì thành phần có vị trí màn hình dọc thấp hơn sẽ xuất hiện.
REQUIRED Luôn hiển thị điểm đánh dấu bất kể có va chạm hay không. Đây là hành vi mặc định.
REQUIRED_AND_HIDES_OPTIONAL Luôn hiển thị điểm đánh dấu bất kể có xung đột hay không và ẩn mọi điểm đánh dấu hoặc nhãn OPTIONAL_AND_HIDES_LOWER_PRIORITY trùng lặp với điểm đánh dấu.

Giao diện Biểu tượng

Giao diện google.maps.Icon

Cấu trúc đại diện cho hình ảnh biểu tượng Điểm đánh dấu.

url
Loại:  string
URL của hình ảnh hoặc trang sprite.
anchor optional
Loại:  Point optional
Vị trí neo một hình ảnh tương ứng với vị trí của điểm đánh dấu trên bản đồ. Theo mặc định, neo nằm dọc theo điểm chính giữa của phần dưới cùng của hình ảnh.
labelOrigin optional
Loại:  Point optional
Gốc của nhãn so với góc trên cùng bên trái của hình ảnh biểu tượng, nếu nhãn do điểm đánh dấu cung cấp. Theo mặc định, điểm gốc nằm ở điểm giữa của hình ảnh.
origin optional
Loại:  Point optional
Vị trí của hình ảnh trong một sprite (nếu có). Theo mặc định, gốc tọa độ nằm ở góc trên cùng bên trái của hình ảnh (0, 0).
scaledSize optional
Loại:  Size optional
Kích thước của toàn bộ hình ảnh sau khi điều chỉnh theo tỷ lệ, nếu có. Sử dụng thuộc tính này để kéo giãn/rút gọn hình ảnh hoặc sprite.
size optional
Loại:  Size optional
Kích thước hiển thị của ảnh động hoặc hình ảnh. Khi sử dụng sprite, bạn phải chỉ định kích thước sprite. Nếu bạn không cung cấp kích thước, kích thước sẽ được đặt khi hình ảnh tải.

Giao diện MarkerLabel

Giao diện google.maps.MarkerLabel

Các tuỳ chọn này chỉ định giao diện của nhãn điểm đánh dấu. Nhãn điểm đánh dấu là một chuỗi (thường là một ký tự) sẽ xuất hiện bên trong điểm đánh dấu. Nếu đang sử dụng thuộc tính này với một điểm đánh dấu tuỳ chỉnh, bạn có thể đặt lại vị trí của thuộc tính đó bằng thuộc tính labelOrigin trong lớp Icon.

text
Loại:  string
Văn bản sẽ hiển thị trong nhãn.
className optional
Loại:  string optional
Mặc định: '' (chuỗi trống)
Thuộc tính className của phần tử nhãn (tương đương với thuộc tính lớp của phần tử). Bạn có thể thêm nhiều lớp CSS được phân tách bằng dấu cách. Bạn chỉ có thể đặt màu, kích thước, độ đậm và bộ phông chữ thông qua các thuộc tính khác của MarkerLabel. Bạn không nên sử dụng các lớp CSS để thay đổi vị trí cũng như hướng của nhãn (ví dụ: sử dụng các phép dịch và xoay) nếu cũng sử dụng tính năng quản lý xung đột điểm đánh dấu.
color optional
Loại:  string optional
Mặc định: 'black'
Màu của văn bản nhãn.
fontFamily optional
Loại:  string optional
Bộ phông chữ của văn bản nhãn (tương đương với thuộc tính font-family của CSS).
fontSize optional
Loại:  string optional
Mặc định: '14px'
Kích thước phông chữ của văn bản nhãn (tương đương với thuộc tính font-size của CSS).
fontWeight optional
Loại:  string optional
Độ đậm của phông chữ cho văn bản nhãn (tương đương với thuộc tính font-weight của CSS).

Giao diện MarkerShape

Giao diện google.maps.MarkerShape

Đối tượng này xác định vùng có thể nhấp của hình ảnh điểm đánh dấu. Hình dạng này bao gồm hai thuộc tính — typecoord — xác định vùng không trong suốt của hình ảnh.

coords
Loại:  Array<number>
Định dạng của thuộc tính này phụ thuộc vào giá trị của type và tuân theo quy cách w3 AREA coords có tại http://www.w3.org/TR/REC-html40/struct/objects.html#adef-coords.
Thuộc tính coords là một mảng số nguyên chỉ định vị trí pixel của hình dạng so với góc trên cùng bên trái của hình ảnh đích. Toạ độ phụ thuộc vào giá trị của type như sau:
  – circle: toạ độ là [x1,y1,r],trong đó x1, y2 là toạ độ của tâm đường tròn và r là bán kính của đường tròn.
  – poly: toạ độ là [x1,y1,x2,y2...xn,yn], trong đó mỗi cặp x,y chứa toạ độ của một đỉnh của đa giác.
  – rect: toạ độ là [x1,y1,x2,y2], trong đó x1,y1 là toạ độ của góc trên bên trái của hình chữ nhật và x2,y2 là toạ độ của góc dưới bên phải của hình chữ nhật.
type
Loại:  string
Mô tả loại hình dạng và có thể là circle, poly hoặc rect.

Giao diện Biểu tượng

Giao diện google.maps.Symbol

Mô tả một biểu tượng, bao gồm một đường dẫn vectơ có kiểu. Bạn có thể dùng một ký hiệu làm biểu tượng của điểm đánh dấu hoặc đặt trên một đa tuyến.

path
Loại:  SymbolPath|string
Đường dẫn của biểu tượng, là đường dẫn biểu tượng tích hợp sẵn hoặc đường dẫn tuỳ chỉnh được biểu thị bằng ký hiệu đường dẫn SVG. Bắt buộc.
anchor optional
Loại:  Point optional
Mặc định: google.maps.Point(0,0)
Vị trí của biểu tượng so với điểm đánh dấu hoặc đa tuyến. Toạ độ của đường dẫn biểu tượng được dịch sang trái và lên trên theo toạ độ x và y của neo tương ứng. Vị trí được biểu thị trong cùng một hệ toạ độ với đường dẫn của biểu tượng.
fillColor optional
Loại:  string optional
Màu nền của biểu tượng. Tất cả màu CSS3 đều được hỗ trợ ngoại trừ màu được đặt tên mở rộng. Đối với điểm đánh dấu biểu tượng, giá trị này mặc định là "đen". Đối với các biểu tượng trên đường đa tuyến, giá trị này mặc định là màu nét của đường đa tuyến tương ứng.
fillOpacity optional
Loại:  number optional
Mặc định: 0
Độ mờ của màu tô của biểu tượng.
labelOrigin optional
Loại:  Point optional
Mặc định: google.maps.Point(0,0)
Nguồn gốc của nhãn so với nguồn gốc của đường dẫn, nếu nhãn do điểm đánh dấu cung cấp. Điểm gốc được biểu thị trong cùng một hệ toạ độ với đường dẫn của ký hiệu. Thuộc tính này không được sử dụng cho các ký hiệu trên đa tuyến.
rotation optional
Loại:  number optional
Mặc định: 0
Góc xoay biểu tượng, được biểu thị theo chiều kim đồng hồ bằng độ. Một biểu tượng trong IconSequence, trong đó fixedRotationfalse, được xoay tương ứng với góc của cạnh mà biểu tượng đó nằm trên đó.
scale optional
Loại:  number optional
Mức độ điều chỉnh kích thước của biểu tượng. Đối với điểm đánh dấu biểu tượng, giá trị này mặc định là 1; sau khi điều chỉnh theo tỷ lệ, biểu tượng có thể có kích thước bất kỳ. Đối với các ký hiệu trên một đa tuyến, giá trị này mặc định là độ đậm nét của đa tuyến; sau khi điều chỉnh theo tỷ lệ, ký hiệu phải nằm bên trong một hình vuông có kích thước 22 pixel, được căn giữa tại neo của ký hiệu.
strokeColor optional
Loại:  string optional
Màu nét vẽ của biểu tượng. Tất cả màu CSS3 đều được hỗ trợ ngoại trừ màu được đặt tên mở rộng. Đối với điểm đánh dấu biểu tượng, giá trị này mặc định là "đen". Đối với các biểu tượng trên một đa tuyến, giá trị này mặc định là màu nét của đa tuyến.
strokeOpacity optional
Loại:  number optional
Độ mờ của nét vẽ của biểu tượng. Đối với điểm đánh dấu biểu tượng, giá trị này mặc định là 1. Đối với các biểu tượng trên một đa tuyến, giá trị này mặc định là độ mờ nét của đa tuyến.
strokeWeight optional
Loại:  number optional
Mặc định: Symbol.scale của biểu tượng.
Độ đậm của nét chữ của biểu tượng.

Hằng số SymbolPath

Hằng số google.maps.SymbolPath

Đường dẫn biểu tượng tích hợp.

Truy cập bằng cách gọi const {SymbolPath} = await google.maps.importLibrary("core"). Xem phần Thư viện trong API Maps JavaScript.

BACKWARD_CLOSED_ARROW Mũi tên đóng chỉ về phía sau.
BACKWARD_OPEN_ARROW Một mũi tên mở chỉ về phía sau.
CIRCLE Một vòng tròn.
FORWARD_CLOSED_ARROW Một mũi tên đóng chỉ về phía trước.
FORWARD_OPEN_ARROW Mũi tên mở chỉ về phía trước.

Hằng số Ảnh động

Hằng số google.maps.Animation

Ảnh động có thể phát trên điểm đánh dấu. Sử dụng phương thức Marker.setAnimation trên Marker (Điểm đánh dấu) hoặc tuỳ chọn MarkerOptions.animation để phát ảnh động.

Truy cập bằng cách gọi const {Animation} = await google.maps.importLibrary("marker"). Xem phần Thư viện trong API Maps JavaScript.

BOUNCE Dấu đánh dấu sẽ bật lên cho đến khi ảnh động dừng bằng cách gọi Marker.setAnimation với null.
DROP Điểm đánh dấu rơi từ đầu bản đồ xuống vị trí cuối cùng. Ảnh động sẽ ngừng khi điểm đánh dấu dừng lại và Marker.getAnimation sẽ trả về null. Loại ảnh động này thường được chỉ định trong quá trình tạo điểm đánh dấu.