Google.maps.event.addlistener marker click function là gì năm 2024

Để sử dụng các dịch vụ của Google bạn cần tạo 1 tài khoản mới(project service) trên https://console.developers.google.com.

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

5 xác thực đối tượng truy cập

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

6 bằng cách sử dụng

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

7 trên danh nghĩa là 1 ứng dụng web thay vì là 1 người dùng. Tức là nó sử dụng chứng chỉ tài khoản dịch vụ của ứng dụng để chứng thực.

Trước khi tạo

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

8 truy cập

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

9, cần phải có 1

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

0 bằng cách sử dụng các tài khoản dịch vụ đã được chứng nhận.

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

8 này là

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

2 với các params như

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

3 và

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

4 đã đăng nhập bằng key.

Các loại tham số cấp đầu tiên là 1

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

5 (chỉ cần 1

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

0 mà không cần

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

7). Param thứ 2 là JWT chứa thông tin xác thực tài khoản trong chuỗi mã hóa được định dạng trước chứa tiêu đề, tập các yêu cầu(

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

  1. và chữ ký. Tiêu đề định nghĩa thuật toán signin được sử dụng trong việc signing JWT,

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

8 chứa địa chỉ email của tài khoản dịch vụ, phạm vi, thời gian hết hạn... Chữ ký là thành phần có chữ ký của tiêu đề và

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

8

Sau khi tạo

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

8 tới máy chủ ủy quyền, chúng ta nhận được một

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

0 kéo dài ít nhất là 1 giờ. Sử dụng

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

0 này, chúng ta có thể truy cập vào

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

4 theo cách sau : sử dụng

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

5, cách thức như hình dưới đây :

Google.maps.event.addlistener marker click function là gì năm 2024

Tiến trình trên yêu cầu ứng dụng phải tạo và ký hiệu mã hóa JWT's, rất dễ để phạm sai lầm nghiêm trọng tác động rất lớn tới sự an toàn của ứng dụng. Thay vào đó tất cả có thể được thực hiện bởi việc sử dụng các thư viện client . Ruby chứa gem

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

6 cho việc lấy `access token, tạo ra các yêu cầu để truy cập vào API và phân tích kết quả.

Dưới đây là đoạn mã để truy cập

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

7 sử dụng

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

8.

# Initialize the client
client = Google::APIClient.new(application_name: 'Service account demo', application_version: '0.0.1')
# load and decrypt private key
key = Google::APIClient::KeyUtils.load_from_pkcs12('path/to/key/file', 'notasecret')
# generate request body for authorization
client.authorization = Signet::OAuth2::Client.new(
                         :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
                         :audience             => 'https://accounts.google.com/o/oauth2/token',
                         :scope                => 'https://www.googleapis.com/auth/calendar',
                         :issuer               => '[email protected]',
                         :signing_key          => key)
# fetch access token
client.authorization.fetch_access_token!
# load API definition
service = client.discovered_api('calendar', 'v3')
# access API by using client
client.execute(...)

Nếu gặp phải lỗi

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

9 trong khi truy cập API thì hãy đảm bảo rằng thời gian hệ thống của bạn trong

var myTrip = [stavanger,amsterdam,london,stavanger];
var flightPath = new google.maps.Polygon({
  path:myTrip,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

0 (sử dụng NTP service) và sử dụng đúng cặp public/private key.

II. Google Map API

1. Tổng quan

1.1. Google Map API là gì?

  • Google Map là một dịch vụ ứng dụng vào công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google đặc biệt là dò đường và chỉ đường; hiển thị bản đồ đường sá, các tuyến đường tối ưu cho từng loại phương tiện, cách bắt xe và chuyển tuyến cho các loại phương tiện công cộng (xe bus, xe khách ...), và những địa điểm (kinh doanh, trường học, bệnh viện, cây ATM...) trong khu vực cũng như khắp nơi trên thế giới.
  • Map API là gì? Là một phương thức cho phép 1 website B sử dụng dịch vụ bản đồ của website A (gọi là Map API) và nhúng vào website của mình (site B). Site A ở đây là google map, site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của google (di chuột, room, đánh dấu trên bản đồ…) Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhân thông qua các thẻ javascripts do vậy việc sử dụng API google rất dễ dàng. Google Map API đã được nâng cấp lên phiên bản v3 không chỉ hỗ trợ cho các máy để bàn truyền thống mà cho cả các thiết bị di động; các ứng dụng nhanh hơn và nhiều hơn . Các dịch vụ hoàn toàn miễn phí với việc xây dựng một ứng dụng nhỏ. Trả phí nếu đó là việc sử dụng cho mục đích kinh doanh, doanh nghiệp.

1.2. Một số ứng dụng của Google Map API

  • Đánh dấu các địa điểm trên bản đồ kèm theo thông tin cho địa điểm đó : khu vui chơi giải trí, nhà hàng khách sạn, cây ATM, bệnh viện, trường học,… bất cứ địa điểm nào bạn muốn
  • Chỉ dẫn đường đến các địa điểm cần tìm(đường tối ưu và nhiều option khác),chỉ dẫn đường giao thông công cộng, có thể là các địa điểm cung cấp như trên. Ở đây sử dụng các service google cung cấp.
  • Khoanh vùng khu vực: các trung tâm kinh tế, khu đô thị, khu ô nhiễm…
  • Tình trạng giao thông các khu vực… từ đó đưa ra các giải pháp…

1.3. Tạo 1 Google Map đơn giản

1.3.1. Tạo 1 API Key

  • Truy cập vào

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    1 và đăng nhập bằng tài khoản gmail của mình.
  • Click the APIs & auth -> APIs.
  • Kéo xuống dưới tìm

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    2 và kích hoạt dịch vụ bằng việc click vào button chuyển trạng thái từ

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    3 sang

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    4.
  • Click

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    5 ->

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    6, một API key sẽ hiện lên và bạn sẽ coppy lại để sử dụng.
    Google.maps.event.addlistener marker click function là gì năm 2024

1.3.2. Lấy kinh độ, vĩ độ để hiển thị bản đồ

Truy cập vào

var myTrip = [stavanger,amsterdam,london,stavanger];
var flightPath = new google.maps.Polygon({
  path:myTrip,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

7 và nhập địa điểm cần tìm.

1.3.3. Hiển thị bản đồ



      
        
        
        
      
      
        
        

2. Google Maps Overlays (Lớp phủ)

  • Lớp phủ(overlays) là các đối tượng trên bản đồ, được xác định bởi tọa độ vĩ độ/ kinh độ.
  • Các loại lớp phủ :

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    8 : xác định một điểm trên bản đồ hoặc đánh dấu địa điểm dựa trên vĩ độ và kinh độ, có thể được hiển thị bằng icon (hình ảnh) tùy chỉnh của người dùng ví dụ như icon dưới đây:

    Google.maps.event.addlistener marker click function là gì năm 2024

    var myTrip = [stavanger,amsterdam,london,stavanger]; var flightPath = new google.maps.Polygon({ path:myTrip, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    9 : chuỗi các đường thẳng trên bản đồ.

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    0 : chuỗi các đường thẳng trên bản đồ và các khối "closed" (tô màu cho 1 khối kín các điểm)

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    1 : đường tròn và hình chữ nhật.

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    2 : hiển thị nội dung trong 1

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    3 ở phía trên của map.

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    4
  • Chi tiết : http://www.w3schools.com/googleAPI/google_maps_overlays.asp

2.1. Add 1 marker

add

var myCity = new google.maps.Circle({
  center:amsterdam,
  radius:40000,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

5 vào map bằng cách sử dụng method

var myCity = new google.maps.Circle({
  center:amsterdam,
  radius:40000,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

6 :

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

  • var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    7 : bắt buộc, quy định tọa độ LatLng của điểm được đánh dấu. (ở đây là tọa độ của biến

    var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    8)

2.2. Hiệu ứng cho Marker

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

  • var myCity = new google.maps.Circle({ center:amsterdam, radius:40000, strokeColor:"

    0000FF",

    strokeOpacity:0.8, strokeWeight:2, fillColor:"

    0000FF",

    fillOpacity:0.4 });

    9: cách thức chuyển động của icon của điểm đánh dấu. CÓ 2 cách : DRAG (đứng yên), Bounce (dao động theo quỹ đạo lên - xuống).

2.3. Icon thay thế cho Marker

var marker=new google.maps.Marker({
  position:myCenter,
  icon:'pinkball.png'
  });
marker.setMap(map);

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    0(tùy chọn): hình ảnh tùy chọn mà bạn muốn hiển thị thay thế hình ảnh mặc định. Dùng tùy chọn này thay thế cho

    var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    1(link đến hình ảnh trong thư mục), ví dụ cho

    var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    2 -> kết quả :
    Google.maps.event.addlistener marker click function là gì năm 2024

2.4. Polyline

Một Polyline là 1 đường được vẽ để nối 1 loạt các tọa độ(các điểm chỉ định trước (ví dụ : lộ trình của 1 chuyến đi, 1 khu vực địa lý... )

Các thuộc tính của 1 Polyline :

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    3 : quy định cụ thể 1 số điểm (kinh độ - vĩ độ) cho dòng
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    4 : màu cho dòng (màu định dạng format: "

    FFFFFF")

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    5 : độ mờ đục của dòng (là giá trị trong khoảng 0.0 và 1.0)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    6 : xác định độ rộng của dòng (tính theo pixel)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    7 : xác định quyền chỉnh sửa của người dùng đối với dòng (true / false)

// định nghĩa 1 trip: stavanger-amsterdam-london
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
  //xác định các điểm cần nối trên bản đồ
  path:myTrip,
  // màu cho dòng : màu xanh lục
  strokeColor:"
# 0000FF",
  // độ đậm : 0.8
  strokeOpacity:0.8,
  // độ rộng line : 2px
  strokeWeight:2
});

-> kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

2.5. Polygon

Polygon tương tự như polyline nhưng có thêm tính năng khoanh vùng (xác định 1 tập hợp các điểm tạo thành 1 khối kín)

Thuộc tính tương tự như polyline nhưng có thêm 2 thuộc tính sau:

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    8 : chỉ định màu của khu vực được xác định (màu định dạng : "

    FFFFFF")

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    9 : độ mờ đục của vùng xác định (giá trị trong khoảng 0.0 -> 1.0)

var myTrip = [stavanger,amsterdam,london,stavanger];
var flightPath = new google.maps.Polygon({
  path:myTrip,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

-> kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

2.5. Circle

Các thuộc tính :

  • 0 : xác định trung tâm của vòng tròn
  • 1 : bán kính của đường tròn (mét)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    4 : màu cho đường viền (định dạng : "

    FFFFFF")

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    5 : độ mờ đục của đường viền (giá trị trong khoảng 0.0 -> 1.0)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    6 : độ rộng của đường viền (px)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    8 : chỉ định màu của khu vựcbên trong đường tròn (màu định dạng : "

    FFFFFF")

  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    9 : độ mờ đục của vùng xác định (giá trị trong khoảng 0.0 -> 1.0)
  • var infowindow = new google.maps.InfoWindow({ // nội dung của InfoWindow content:"Hello World!" }); infowindow.open(map,marker);

    7 : xác định quyền chỉnh sửa của người dùng đối với dòng (true / false)

var myCity = new google.maps.Circle({
  center:amsterdam,
  radius:40000,
  strokeColor:"
# 0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"
# 0000FF",
  fillOpacity:0.4
});

-> kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

2.6. InfoWindow

show 1 InfoWindow là 1 đoạn text cho 1 marker:

var infowindow = new google.maps.InfoWindow({
  // nội dung của InfoWindow
  content:"Hello World!"
  });
infowindow.open(map,marker);

-> kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

2.7. Tổng hợp các nội dung trên

  • Ví dụ về đánh dấu địa điểm cho tòa nhà Landmark72 : Vào trang http://www.latlong.net/ để lấy tọa độ của địa điểm bạn muốn (ví dụ ở đây là

  • để điền vào đoạn code sau :








Link demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_overlays_marker

Trong đó :

  • map(tùy chọn): quy định đối tượng bản đồ được đánh dấu. nếu thuộc tính này được khai báo trong đây nó sẽ thay thế cho

    9.
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    00(tùy chọn): tiêu đề của địa điểm (khi trỏ chuột vào vị trí điểm đó).
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    01(tùy chọn): thể hiện sự chuyển động của điểm được đánh dấu. Nếu set giá trị TRUE thì tính động được khởi động (có thể di chuyển icon đánh dấu điểm hiện tại sang 1 địa điểm khác), hình minh họa :
    Google.maps.event.addlistener marker click function là gì năm 2024

3. Google Map Event

Sự kiện gồm 2 loại:

  • UI Event: Lắng nghe sự kiện từ người dùng.
  • MVC State change: Lắng nghe sự kiện từ sự thay đổi giá trị của các thuộc tính trên Map. Để lắng nghe sự kiện, ta sử dụng phương thức

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    02. Phương thức này nhận vào 1 đối tượng, 1 kiểu sự kiện để lắng nghe và 1 phương thức xử lý khi sự kiện xảy ra.

3.1. UI Event

  • Một số đối tượng trong Maps API được thiết kế để đáp ứng với sự kiện người sử dụng chẳng hạn như các sự kiện từ chuột hoặc bàn phím . Một đối tượng

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    03 có thể lắng nghe người sử dụng các sự kiện sau đây :

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    04,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    05,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    06,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    07,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    08,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    09.

Ví dụ:

  • Click vào 1 marker để zoom bản đồ:



      
        
        
        
      
      
        
        

0

Demo: http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_marker_click

  • Mở 1 InfoWindow khi click vào Marker:



      
        
        
        
      
      
        
        

1

Demo: http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_marker_infowindow

2. MVC State Change

  1. Các sự kiện:
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    10: sự kiện sẽ thực thi khi ta zoom size trên map
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    11: sự kiện sẽ thực thi khi thuộc tính

    0 của map thay đổi
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    13: sự kiện sẽ thực thi khi thuộc tính title của map thay đổi
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    14: sự kiện sẽ thực thi khi thuộc tính heading của map thay đổi
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    15: sự kiện sẽ thực thi khi người dùng bắt đầu drag bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    16: sự kiện sẽ thực thi khi người dùng drag bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    17: sự kiện sẽ thực thi khi người dùng kết thúc drag bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    18: sự kiện sẽ thực thi khi thuộc tính maptypeid của map thay đổi b. Event Listeners (lắng nghe sự kiện)
  • Handling Events

Ví dụ:

  • Pan Back to Marker - Quay lại điểm đánh dấu (quay lại vị trí cũ sau n giây sau khi kéo marker) Khi di chuyển chuột làm thay đổi bản đồ, sự kiện này giúp điểm đánh dấu (marker) luôn hiển thị ở vị trí trung tâm của bản đồ



      
        
        
        
      
      
        
        

2

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_marker_pan

  • Truyền tham số cho UI Events Các sự kiện người dùng trong Google Map API thường được thêm vào một tham số sự kiện và tham số có thể được truy cập bằng sự kiện listener khi sự kiện xảy ra. Ví dụ:
  • Set Markers and Open InfoWindow for Each Marker (tạo marker và infowindow tương ứng khi click vào 1 poin nào đó trong bản đồ)



      
        
        
        
      
      
        
        

3

-> kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_marker_infowindow

  • Sử dụng Closeres trong sự kiện Listerner Các event Listerner thường sử dụng Closures để truy cập đến các biến thường không nằm trong đối tượng của các sự kiện đó. Ví dụ: đoạn code dưới đây dùng Clousures để gán một thông điệp bí mật đến tập các marker, khi click vào mỗi marker sẽ hiện lên một phần của thông điệp ấy :



      
        
        
        
      
      
        
        

4

Demo: https://google-developers.appspot.com/maps/documentation/javascript/examples/event-closure

  • Thiết lập và truy xuất thuộc tính trong

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    19 Trong các sự kiện

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    20 chúng ta có thể truy xuất và thiết lập giá trị trong quá trình sự kiện được kích hoạt bằng các phương thức

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    21,

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    22 trên đối tượng thực thi sự kiện. Ví dụ: ta sẽ thiết lập một xử lý sự kiện để đáp ứng phóng to bản đồ bằng cách đưa ra một cửa sổ thông tin hiển thị mức độ đó.



      
        
        
        
      
      
        
        

5

  • Listening to

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    23 (lắng nghe sự kiện từ DOM) Google Map Api hỗ trợ hai cách lắng nghe sự kiện từ DOM:

** a. Sử dụng phương thức**



      
        
        
        
      
      
        
        

6

Giải thích :



      
        
        
        
      
      
        
        

7

  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    24 : có thể là một DOM element hỗ trợ bởi brownser bao gồm: các thành phần của DOM: window hoặc document.body.myform. tên của element như: document.getElementById(“foo”).
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    25 : tên sự kiện, ở đây là

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    26.
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    27: là một phương thức khởi tạo map.
  1. Sử dụng sự kiện



      
        
        
        
      
      
        
        

28 của tài liệu HTML trong thẻ



      
        
        
        
      
      
        
        

8

4. Map Controls (Điều khiển)

4.1. The Default Controls (Control mặc định)

Control mặc định thiết lập cho Google Map gồm:

  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    29 – hiển thị 1 slider hoặc button “+/-” để điều khiển độ zoom (

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

  • của bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    31 – công cụ để dịch chuyển bản đồ sang trái, phải, trên, dưới.
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    32 – cho phép người dùng chuyển đổi giữa các loại bản đồ (

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    33 và

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    34)
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    35 – hiển thị 1 icon

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    36 (hình người) để có thể kéo bản đồ để enable Street View (xem chi tiết về đường phố).

4.2. Một số control khác

  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    37 – hiển thị 1 thành phần chia tỷ lệ bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    38 – hiển thị một biểu tượng nhỏ hình tròn để xoay bản đồ
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    39 – hiển thị một

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    40 cho phép xem bản đồ hiện tại trong một khu vực rộng hơn.

Bạn có thể chỉ định control nào được hiển thị khi tạo bản đồ (bên trong



      
        
        
        
      
      
        
        

  1. hoặc gọi bởi



      
        
        
        
      
      
        
        

42 để thay đổi các tùy chọn.

4.3. Vô hiệu hóa các control mặc định

Thiết lập thuộc tính



      
        
        
        
      
      
        
        

43 (trong Map options object) thành true:



      
        
        
        
      
      
        
        

9

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_disable

4.4. Bật tất cả các control

  • Một số control xuất hiện trên bản đồ theo mặc định, trong khi những control khác sẽ không xuất hiện trừ khi ta thiết lập chúng.
  • Thêm hoặc xóa các control từ bản đồ được quy định trong

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    44.
  • Thiết lập control thành

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    45 để làm nó hiển thị (

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    46). Thiết lập control thành

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    47 để ẩn nó đi. Ví dụ, bật tất cả các control:

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

0

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_add

Kết quả :

Google.maps.event.addlistener marker click function là gì năm 2024

4.5. Chỉnh sửa controls

  • Một số map control có thể cấu hình được.
  • Các control có thể được sửa đổi bằng cách xác định các trường

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    48.
  • Ví dụ, các tùy chỉnh để thay đổi một

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    49 được quy định bởi trường

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    50. Trường

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    50 có thể chứa:

    var marker=new google.maps.Marker({ position:myCenter, }); marker.setMap(map);

    1

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

2

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_modify1

  • Chú ý : Khi modify 1 control, phải luôn

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    52 control đầu tiên (set là true)
  • Các control có thể cấu hình khác là

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    53
  • Có thể thiết lập type control bởi trường mapTypeControlOptions. Trường mapTypeControlOptions có thể chứa:

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    54 – hiển thị 1 button cho mỗi map type

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    55 – chọn map type thông qua 1 dropdown menu

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    56 – hiển thị hành vi mặc định (phụ thuộc kíchcỡ màn hình - screen size)

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

3

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_modify2

  • Bạn cũng có thể xác định vị trí control, với thuộc tính

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    57:

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

4

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_modify3

4.6. Control tùy chỉnh-Custom Controls

Dưới đây là ví dụ tạo một control tùy chỉnh mà luôn luôn đưa bạn trở lại London, khi click vào bản đồ(nếu bản đồ được kéo):

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

5

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_controls_custom

5. Google Maps Types

5.1. Google Maps - Basic Map Types

  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    58 (bản đồ truyền thống, default 2D map)
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    59 (photographic map)
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    60 (photographic map + tên đường và tên thành phố)
  •     
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    61 (bản đồ với hệ thống sông ngòi, núi....) Kiểu của map được xác định bởi thuộc tính

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    62 :

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

6

Hoặc có thể gọi method



      
        
        
        
      
      
        
        

63 :

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

7

5.2. Google Maps - 45° Perspective View (view phối cảnh 45°)

Bản đồ loại



      
        
        
        
      
      
        
        

59 và



      
        
        
        
      
      
        
        

60 hỗ trợ xem phối cảnh hình ảnh 45° cho 1 số vùng xác định (chỉ các vùng ở zoom level cao)

Nếu zoom vào 1 vùng với view phối cảnh 45°, bản đồ sẽ tự động thay đổi phối cảnh, thêm nữa thêm vào 1 số thứ sau :

  • Một la bàn hình bánh xe cho

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    66, cho phép bạn xoay hình ảnh.
  • 1

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    67 nằm giữa

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    66 và

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    49, cho phép bạn xoay ảnh 90°
  • 1

        
         Add Google API Key >  
          
          
        
        
         Khai bao the div chua Map >  
        

    70 (công tắc bật - tắt) để điều chỉnh chế độ view phối cảnh 45°
  • Ví dụ:

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

8

Kết quả :

var marker=new google.maps.Marker({
  position:myCenter,
  });
marker.setMap(map);

9

Demo : http://www.w3schools.com/googleAPI/tryit.asp?filename=tryhtml_map_types_45

5.3. Google Maps - Disable 45° Perspective View - setTilt(0) (tắt chức năng view phối cảnh 45°)

Tắt chức năng này bằng cách gọi



      
        
        
        
      
      
        
        

71 trong Map object :

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

0

Tip : để enable



      
        
        
        
      
      
        
        

72 ở đằng sau, gọi



      
        
        
        
      
      
        
        

73

6. Google Maps API Reference

6.1. Maps API Map() Constructor

Tạo 1 Google Map :

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

1

6.2. Định nghĩa và sử dụng



      
        
        
        
      
      
        
        

74 tạo 1 bản đồ mới bên trong 1 thành phần HTML xác định (thường là

)

6.3. Cú pháp

var marker=new google.maps.Marker({
  position:myCenter,
  animation:google.maps.Animation.BOUNCE
  });
marker.setMap(map);

2

6.4. Giá trị tham số

Tham số Mô tả HTMLElement Xác định những thành phần HTML trong map MapOptions 1 đối tượng



      
        
        
        
      
      
        
        

41 chứa khởi tạo các biến/option

6.5. Các method của Map()

Phương thức Giá trị trả về Mô tả fitBounds (LatLngBounds) None (không có) Tập hợp các khung nhìn với các giới hạn xác định getBounds() LatLng, LatLng Trả về kinh độ/vĩ độ của phía Tây Nam và phía Đông Bắc của khung nhìn hiện tại getCenter() LatLng Trả về kinh độ/vĩ độ (lat/lng) của trung tâm bản đồ getDiv() Node Trả về 1 đối tượng DOM chứa bản đồ getHeading() number (số) Trả về số nhóm



      
        
        
        
      
      
        
        

76 các hình ảnh trên không (cho loại SATELLITE (vệ tinh) và HYBRID) getMapTypeId() HYBRID ROADMAP SATELLITE TERRAIN Trả về kiểu của map getProjection() Projection Trả về Projection hiện tại getStreetView() StreetViewPanorama Trả về StreetViewPanorama mặc định gắn với map getTilt() number Trả về góc tới cho hình ảnh trên không (tính bằng độ) - dùng cho SATELLITE và HYBRID getZoom() number Trả về zoom level hiện tại của map panBy(xnumber,ynumber) none thay đổi trung tâm của map bằng khoảng cách nhất định (pixel) panTo(LatLng) none thay đổi trung tâm của map bằng LatLng panToBounds(LatLngBounds) none pan bản đồ bằng giá trị tối thiểu cần thiết để chứaLatLngBounds setCenter(LatLng) none setHeading(number) none thiết lập các nhóm



      
        
        
        
      
      
        
        

76 các hình ảnh trên không(đo bằng độ) từ hướng Bắc setMapTypeId(MapTypeId) none thay đổi loại bản đồ setOptions(MapOptions) none setStreetView(StreetViewPanorama) none kết nối



      
        
        
        
      
      
        
        

78 vào bản đồ setTilt(number) none thiết lập góc tới cho hình ảnh trên không (đo bằng độ) - dùng cho SATELLITE và HYBRID setZoom(number) none

6.6.Properties of Map() - Thuộc tính

Thuộc tính Type Mô tả controls Array.> Điều khiển thêm để đính kèm vào bản đồ mapTypes MapTypeRegistry Một số đăng ký của trường MapType bởi chuỗi ID overlayMapTypes MVCArray. Loại bản đồ thêm cho overlay

6.7.Events of Map() - Sự kiện của Map

Event Đối số Mô tả bounds_changed None (không có) Kích hoạt khi giới hạn khung nhìn thay đổi center_changed none Kích hoạt khi thuộc tính trung tâm thay đổi click MouseEvent Kích hoạt khi người dùng click vào bản đồ dblclick MouseEvent Kích hoạt khi người dùng click đúp vào bản đồ drag none Kích hoạt liên tục trong khi người dùng kéo bản đồ dragend none kích hoạt khi người dùng ngừng kéo bản đồ dragstart none kích hoạt khi người dùng bắt đầu kéo bản đồ heading_changed none kích hoạt khi bản đồ thay đổi



      
        
        
        
      
      
        
        

79 idle none kích hoạt sau khi pan hoặc zoom bản đồ maptypeid_changed none kích hoạt khi



      
        
        
        
      
      
        
        

62 thay đổi mousemove MouseEvent kích hoạt khi chuột đi qua vùng bản đồ mouseout MouseEvent kích hoạt khi chuột ra khỏi vùng bản đồ mouseover MouseEvent kích hoạt khi chuột vào vùng bản đồ projection_changed none kích hoạt khi projection thay đổi resize none kích hoạt khi bản đồ (map) thay đổi kích cỡ rightclick MouseEvent kích hoạt khi click chuột phải vào bản đồ tilesloaded none kích hoạt khi tile hoàn thành việc load tilt_changed none kích hoạt khi



      
        
        
        
      
      
        
        

81 thay đổi zoom_changed none kích hoạt khi zoom thay đổi

6.8.Controls

Constructor/Object Mô tả MapTypeControlOptions Tùy chọn cho việc sửa đổi 1 control (vị trí và style) MapTypeControlStyle Xác định loại bản đồ hiển thị (menu Drop-down hay các button) OverviewMapControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

82 PanControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

83 (vị trí) RotateControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

84 (vị trí) ScaleControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

85 (vị trí và style) ScaleControlStyle Xác định loại



      
        
        
        
      
      
        
        

85 để hiển thị StreetViewControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

87 (vị trí) ZoomControlOptions Các tùy chọn cho việc render của



      
        
        
        
      
      
        
        

88 (vị trí và style) ZoomControlStyle Xác định loại



      
        
        
        
      
      
        
        

88 để hiển thị (rộng hay hẹp) ControlPosition Xác định vị trí các control trên map

III. Lời kết

Google API là 1 ứng dụng rất lớn và hay để học tập. Trong đó có Google Map API. Trên đây chỉ là 1 số nghiên cứu cơ bản về Google Map API. Nếu quan tâm bạn có thể tham khảo 1 số trang web sau :

http://blog.joshsoftware.com/2014/09/08/tutorial-using-google-service-accounts-with-rails-application/