Scribble Maps Blog
Bản Phát Hành Lớn Nhất Từ Trước Đến Nay Của Chúng Tôi, Di Động và API.
Chúng tôi vô cùng hào hứng (và có một chút nhẹ nhõm) khi cuối cùng đã ra mắt phiên bản mới của Scribble Maps. Có rất nhiều điều để chia sẻ. Chúng tôi đã triển khai một trình chỉnh sửa cơ bản mới cũng như một API đầy đủ.
Chúng tôi muốn làm cho trải nghiệm của phiên bản mới nhất quán đến mức mọi người thậm chí sẽ không nhận ra rằng chúng tôi đã xây dựng lại mọi thứ từ đầu. Những thứ đơn giản như con trỏ tùy chỉnh cũng là một thách thức vì chúng tôi muốn duy trì khả năng tương thích giữa các trình duyệt. Vì vậy, phiên bản mới hoạt động tốt trên cả các trình duyệt cũ như IE7.
Sau khi Google thông báo rằng họ sẽ không còn hỗ trợ phiên bản Flash cho Maps API của họ, chúng tôi đã quyết định một vài điều cốt lõi mà chúng tôi muốn thực hiện vì chúng tôi cần phải xây dựng lại toàn bộ.
Một trong những yêu cầu lớn nhất mà chúng tôi nhận được là khả năng sử dụng Scribble Maps trong môi trường di động và đặc biệt là trên máy tính bảng. Kể từ khi chúng tôi sử dụng javascript, ứng dụng đã có thể chạy trên các thiết bị máy tính bảng.
Tuy nhiên, việc một ứng dụng bản đồ chạy được là một chuyện, còn việc nó có thể sử dụng được hay không lại là chuyện khác. Ví dụ, trong phiên bản máy tính để bàn của Scribble Maps, bạn có các hiệu ứng di chuột (roll over), nhưng máy tính bảng thì không có hiệu ứng này.
Việc vẽ trong Scribble Maps hoạt động giống như canvas, vì vậy bạn có thể chỉ định trước một kiểu dáng (style) và vẽ nhiều đường thẳng cùng áp dụng kiểu dáng đó. Điều này không chỉ áp dụng cho các hình dạng, nó còn áp dụng cho cả những thứ như Điểm đánh dấu (Markers). Vì vậy, bạn hoàn toàn có thể thực hiện những việc như vậy.
Mối quan hệ của người dùng với bản đồ được xác định thông qua các công cụ, và bằng cách thay đổi các công cụ, bạn sẽ thay đổi cách người dùng giao tiếp với bản đồ.
Mặt khác, với Scribble Maps, không có hạn chế nào cả. Sau khi bản đồ được lưu, bạn có thể yêu cầu xuất hình ảnh của bản đồ đó bất kể có bao nhiêu dữ liệu trên đó. Ngoài ra, khi bản đồ được lưu, hình ảnh cũ sẽ bị vô hiệu hóa và lần yêu cầu tiếp theo sẽ được kết xuất lại. Điều này cho phép bạn tạo ra các liên kết hình ảnh tự động cập nhật khi bạn thay đổi bản đồ.
Dưới đây là một ví dụ về một hình ảnh như vậy.
Liên kết
Scribble Maps API
Nhóm Scribble Maps API
Từ Flash Sang HTML5/Javascript
Mặc dù nhiều người dùng của chúng tôi có thể không hiểu rõ về sự thay đổi công nghệ này, nhưng những tác động của nó là vô cùng lớn. Việc chuyển đổi từ Flash sang HTML5/Javascript không phải là điều dễ dàng, đặc biệt là vì chúng tôi muốn giữ cho trải nghiệm tương đồng nhất có thể với những gì đã làm nên sự phổ biến của Scribble Maps ban đầu.Chúng tôi muốn làm cho trải nghiệm của phiên bản mới nhất quán đến mức mọi người thậm chí sẽ không nhận ra rằng chúng tôi đã xây dựng lại mọi thứ từ đầu. Những thứ đơn giản như con trỏ tùy chỉnh cũng là một thách thức vì chúng tôi muốn duy trì khả năng tương thích giữa các trình duyệt. Vì vậy, phiên bản mới hoạt động tốt trên cả các trình duyệt cũ như IE7.
Sau khi Google thông báo rằng họ sẽ không còn hỗ trợ phiên bản Flash cho Maps API của họ, chúng tôi đã quyết định một vài điều cốt lõi mà chúng tôi muốn thực hiện vì chúng tôi cần phải xây dựng lại toàn bộ.
- Chúng tôi muốn ứng dụng web hoạt động tốt trên cả môi trường máy tính để bàn và thiết bị di động.
- Chúng tôi muốn xây dựng công cụ kết xuất (rendering engine) của riêng mình để nếu cần, chúng tôi có thể chuyển sang các nhà cung cấp API khác.
- Chúng tôi không muốn vi phạm Điều khoản dịch vụ của bất kỳ nhà cung cấp API bản đồ nào.
- Chúng tôi muốn việc xây dựng lại này lấy API làm trung tâm để các nhà phát triển có thể sử dụng các công cụ tạo bản đồ của chúng tôi trong ứng dụng của họ.
Scribble Maps trên Di Động
Một trong những yêu cầu lớn nhất mà chúng tôi nhận được là khả năng sử dụng Scribble Maps trong môi trường di động và đặc biệt là trên máy tính bảng. Kể từ khi chúng tôi sử dụng javascript, ứng dụng đã có thể chạy trên các thiết bị máy tính bảng.Tuy nhiên, việc một ứng dụng bản đồ chạy được là một chuyện, còn việc nó có thể sử dụng được hay không lại là chuyện khác. Ví dụ, trong phiên bản máy tính để bàn của Scribble Maps, bạn có các hiệu ứng di chuột (roll over), nhưng máy tính bảng thì không có hiệu ứng này.
Điều này dẫn đến việc chúng tôi phải sửa đổi trải nghiệm người dùng dựa trên việc bạn có đang sử dụng thiết bị cảm ứng hay không. Quá trình này diễn ra tự động mà không cần sửa đổi bất kỳ loại mã nào.
Scribble Maps API
Hiện có khoảng nửa tá API bản đồ thực sự phổ biến, vì vậy chúng tôi muốn tập trung cụ thể vào việc chỉnh sửa và tính tương tác, nhường việc trực quan hóa và kết xuất các ô bản đồ (tile rendering) khác cho các API đó. Khi quyết định cách cấu trúc API, chúng tôi nhận thấy một trong những phong cách lập trình Javascript tốt nhất hiện nay là JQuery. Vì vậy, bạn có thể tạo các lớp phủ (overlays) và tính tương tác chỉ trong một dòng mã.
ScribbleMap.draw.line([[lat, lng], [lat2, lng2]], { lineColor: "#0000FF" }).click(function() { alert("I have been clicked") });
Việc vẽ trong Scribble Maps hoạt động giống như canvas, vì vậy bạn có thể chỉ định trước một kiểu dáng (style) và vẽ nhiều đường thẳng cùng áp dụng kiểu dáng đó. Điều này không chỉ áp dụng cho các hình dạng, nó còn áp dụng cho cả những thứ như Điểm đánh dấu (Markers). Vì vậy, bạn hoàn toàn có thể thực hiện những việc như vậy.
Mối quan hệ của người dùng với bản đồ được xác định thông qua các công cụ, và bằng cách thay đổi các công cụ, bạn sẽ thay đổi cách người dùng giao tiếp với bản đồ.
Dynamic Image API
Một trong những mục đích chính mà Scribble Maps được sử dụng là để tạo hình ảnh. Điều này không chỉ đặt ra một vấn đề lớn cho chúng tôi mà còn là một cơ hội mới khi chúng tôi chuyển đổi khỏi flash. Với các API bản đồ khác, có khả năng tạo ra một "hình ảnh tĩnh". Vấn đề với các API hình ảnh tĩnh này là hầu hết chúng đều có những hạn chế về lượng dữ liệu có thể hiển thị trên hình ảnh được kết xuất.Mặt khác, với Scribble Maps, không có hạn chế nào cả. Sau khi bản đồ được lưu, bạn có thể yêu cầu xuất hình ảnh của bản đồ đó bất kể có bao nhiêu dữ liệu trên đó. Ngoài ra, khi bản đồ được lưu, hình ảnh cũ sẽ bị vô hiệu hóa và lần yêu cầu tiếp theo sẽ được kết xuất lại. Điều này cho phép bạn tạo ra các liên kết hình ảnh tự động cập nhật khi bạn thay đổi bản đồ.
Widget Mới
Cũng với phiên bản 2.0, chúng tôi đã giới thiệu một widget có nhiều nút điều khiển giao diện người dùng hơn. Đây là phiên bản đầu tiên của chúng tôi và chúng tôi sẽ cải thiện nó trong vài tuần tới.Liên kết
Scribble Maps API
Nhóm Scribble Maps API