logo

Thông báo

Icon
Error

Chia sẻ
Tùy chọn
Xem
Xem bài viết cuối
Offline admin  
#1 Đã gửi : 17/03/2015 lúc 09:41:15(UTC)
admin

Danh hiệu: Administration

Chức danh:

Nhóm: Administrators
Gia nhập: 23-07-2013(UTC)
Bài viết: 6,113
Man
Viet Nam
Đến từ: Vietnam

Cảm ơn: 10 lần
Được cảm ơn: 2 lần trong 2 bài viết

TÌM HIỂU VỀ GOOGLE MAP API

I. Giới thiệu qua về Google Map API

1. Google Map API là gì?

- Google Map là một dịch vụ ứng dụng và 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 nổi bật là dẫn đường. Nó cho phép thấy bản đồ đường sá, đường đi cho xe đạp, cho người đi bộ và xe hơi, và những địa điểm kinh doanh 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 site 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 web site cá nhân hoặc tổ chức muốn sử dụng dịch vụ của google, có thể rê 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 thứ 3. Phiên bản này hỗ trợ không chỉ cho các máy để bàn truyền thống mà cho cả các thiết bị di động. Nhanh hơn và nhiều hơn các ứng dụng.

+ Điều quan trọng là 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.

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

- Đánh dấu các địa điểm trên bản đồ cùng các thông tin cho địa điểm: các khu vui chơi giải trí, nhà hàng khách sạn, các quán ăn ngon, các shop quần áo, nữ trang…

- Chỉ dẫn đường đến các địa điểm cần tìm,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…Đưa ra các giải pháp có thể…

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

a. Tạo 1 API Key

- Truy cập vào https://code.google.com/apis/console và đăng nhập bằng tài khoản gmail của mình.

- Click vào Services link bên trái menu.

- Kéo xuống dưới tìm Google Maps API v3 service và kích hoạt dịch vụ.

- Click API Access, một API key sẽ hiện lên và bạn sẽ coppy lại để sử dụng.

g_key

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

Truy cập vào http://www.latlong.net/ và nhập địa điểm cần tìm.

c. Các loại bản đồ:

- ROADMAP (normal, default 2D map)

- SATELLITE (photographic map)

- HYBRID (photographic map + roads and city names)

- TERRAIN (map with mountains, rivers, etc.)

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

16

4. Lớp phủ (Overlays) của Google Map API

- Định nghĩa: Lớp phủ(overlays) là các đối tượng trên bản đồ, được gắn với vĩ độ, kinh độ.

- Các loại lớp phủ

+ Marker

+ Polyline

+ Polygon

+ Circle and Rectangle

+ Info Windows

+ Custom overlays

- Ở đây, ta đi sâu vào tìm hiểu về Marker, các Overlays còn lại, mọi người có thể xem thêm tại:http://www.w3schools.com/googleAPI/google_maps_overlays.asp.

Marker: dùng để 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ác trường được xây dựng trong new google.maps.Marker:

- Position(bắt buộc): quy định là tọa độ LatLng của điểm được đánh dấu.

- 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 Markers.setMap(map).

- Icon(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 marker.setIcon(link đến hình ảnh trong thư mục).

- Title(tùy chọn): tiêu đề của địa điểm.

- Draggable(tùy chọn): thuộc tính động của điểm đánh dấu, thể hiện sự chuyển động của điểm được đánh dấu. Nếu TRUE tính động được khởi động.

- Animation: cách thức chuyển động của điểm đánh dấu. CÓ 2 cách thức DRAG, Bounce.

* Khai báo: new google.maps.Marker({… });

* Để đánh dấu 1 marker:

var marker=new google.maps.Marker({

position:myCenter,

});

marker.setMap(map);

* Code show bản đồ với tâm và điểm đánh dấu đều là Hà Nội:

1

* Kết quả hiện thị trên trang web như sau:

2

II. 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 addListener(). 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.

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 chuột hoặc bàn phím . Một đối tượng google.maps.Marker có thể lắng nghe người sử dụng các sự kiện sau đây , ví dụ :’click’, ‘dblclick’, ‘mouseup’, ‘mousedown’, ‘mouseover’, ‘mouseout’.

* Ví dụ:

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

3

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

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

4

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

2. MVC State Change

a. Gồm các sự kiện:

- zoom_changed: sự kiện sẽ thực thi khi ta zoom size trên map

- center_changed: sự kiện sẽ thực thi khi thuộc tính center của map thay đổi

- title_changed: sự kiện sẽ thực thi khi thuộc tính title của map thay đổi

- heading_changed: sự kiện sẽ thực thi khi thuộc tính heading của map thay đổi

- dragstart: sự kiện sẽ thực thi khi người dùng bắt đầu drag bản đồ

- drag: sự kiện sẽ thực thi khi người dùng drag bản đồ

- dragend: sự kiện sẽ thực thi khi người dùng kết thúc drag bản đồ

- maptypeid_changed: 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ụ: Quay lại điểm đánh dấu

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 đồ:

5

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ụ: Đoạn code này sẽ tạo ra 1 marker khi người dùng click chuột vào map:

6

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

* 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.

7

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 event Handlers

Trong các sự kiện MVC State change bạn 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 getProperties(), setProperties() 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ảng đồ bằng cách đưa ra một cửa sổ thông tin hiển thị mức độ đó.

8

* Listening to DOM Events(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 addDomListener(instance:Object, eventName:string, handler:Function)

+ instance 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”).

+ evenName là tên sự kiện ở đây ta dùng sự kiện load.

+ Handler: là một phương thức khởi tạo map.

9

b. Sử dụng sự kiện onload() của tài liệu HTML trong thẻ

10

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

III. Control (Điều khiển)

1. Control mặc đinh

Control mặc định được thiết lập cho Google Map gồm các thông số như sau:

- Zoom – hiển thị 1 thanh trượt hoặc button “+/-” để điều khiển mức zoom của Map

- Pan – công cụ để dịch chuyển map sang trái, phải, trên, dưới.

- MapType – cho phép người dùng chuyển đổi giữa 2 Map Types (roadmap và satellite)

- Street View – hiển thị 1 icon Pegman (hình người) mà có thể kéo bản đồ để enable Street View (xem chi tiết về Street).

2. Một số control khác

- Scale – hiển thị 1 đối tượng chia tỷ lệ bản đồ

- Rotate – hiển thị một biểu tượng nhỏ hình tròn cho phép bạn xoay bản đồ

- Overview Map – hiển thị một thumbnail overview map cho phép xem bản đồ hiện tại trong một khu vực rộng hơn.

Ta có thể chỉ định control nào được hiển thị khi tạo bản đồ (bên trong MapOptions) hoặc gọi bởi setOptions() để thay đổi map options.

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

Nếu muốn tắt các control mặc định thì thiết lập thuộc tính disableDefaultUI (trong Map options object) thành true:

11

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 Map options object.

- Thiết lập control thành true để làm nó visible. Thiết lập control thành false để hide nó.

Sau đây là ví dụ, bật tất cả các control:

12

5. Sửa đổi 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 control options.

- Ví dụ, options để thay đổi một zoom control được quy định bởi trường zoomControlOptions. Trường zoomControlOptions có thể chứa:

+ google.maps.ZoomControlStyle.SMALL – hiển thị 1 mini-zoom control (chỉ có 2 button + và -)

+ google.maps.ZoomControlStyle.LARGE – hiển thị zoom control trượt tiêu chuẩn

+ google.maps.ZoomControlStyle.DEFAULT – chọn zoom control tốt nhất dựa trên kích thước device và map

13

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

+ google.maps.MapTypeControlStyle.HORIZONTAL_BAR – hiển thị 1 button cho mỗi map type

+ google.maps.MapTypeControlStyle.DROPDOWN_MENU – chọn map type thông qua 1 dropdown menu

+ google.maps.MapTypeControlStyle.DEFAULT – hiển thị hành vi mặc định (phụ thuộc screen size)

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

14

6. Control tùy chỉnh

Tạo một control tùy chỉnh mà luôn luôn đưa bạn trở lại London, khi nhấp vào (nếu bản đồ được kéo):

15

Ai đang xem chủ đề này?
OceanSpiders 2.0
Chủ đề tương tự
Tìm hiểu về núi Phú Sĩ (Du lịch nước ngoài)
Bởi Ellry Hôm qua vào lúc 11:03:04 CH(UTC)
Tìm hiểu về đo huyết áp tại nhà (Sức khỏe, y tế và đời sống)
Bởi Ellry 13-06-2020 lúc 10:01:09(UTC)
Tìm hiểu về thước lỗ ban (Phong thủy)
Bởi Ellry 02-06-2020 lúc 09:40:47(UTC)
Tìm hiểu về chanh caviar (Thực phẩm)
Bởi Ellry 01-06-2020 lúc 09:11:13(UTC)
Tìm hiểu smartphone Samsung Galaxy M21 (Thế giới số)
Bởi Ellry 08-05-2020 lúc 10:53:39(UTC)
Tìm hiểu khu vực Sahara (Thế giới đó đây)
Bởi Ellry 07-05-2020 lúc 11:13:02(UTC)
Tìm hiểu top 10 trang web hỗ trợ ứng viên tạo CV tiện lợi (Cẩm nang cho người xin việc)
Bởi doaibiet 13-04-2020 lúc 03:30:23(UTC)
Để trẻ tìm hiểu thế giới (Giáo dục trẻ nhỏ)
Bởi Ellry 11-02-2020 lúc 09:48:05(UTC)
Tìm hiểu về kính áp tròng (Thời trang tổng hợp)
Bởi Ellry 22-12-2019 lúc 10:02:09(UTC)
Tìm hiểu về dinh dưỡng của bí ngô (Thực phẩm)
Bởi Ellry 01-11-2019 lúc 10:45:57(UTC)
Tìm hiểu về cây mạch môn (Các vị thuốc quý)
Bởi Ellry 28-10-2019 lúc 09:55:18(UTC)
Tìm hiểu về cá tứ vân (Cá cảnh)
Bởi Ellry 03-10-2019 lúc 08:36:09(UTC)
Tìm hiểu về thuế xuất cảnh ở Malaysia (Du lịch nước ngoài)
Bởi Ellry 30-08-2019 lúc 10:54:31(UTC)
Tìm hiểu về chó phốc sóc (Thú nuôi cảnh)
Bởi Ellry 11-07-2019 lúc 09:59:50(UTC)
Tìm hiểu những căn bệnh phổ biến di truyền từ bố mẹ sang con (Nuôi con)
Bởi Ellry 25-06-2019 lúc 10:59:22(UTC)
Di chuyển  
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

| Cung cấp bởi YAF.NET 2.2.4.14 | YAF.NET © 2003-2020, Yet Another Forum.NET
Thời gian xử lý trang này hết 1.421 giây.