Bản đồ nhân dân android. Yandex.Maps mới, mà mọi người hiện có thể tự sửa

Yandex.Maps - bản đồ miễn phí từ một công ty nổi tiếng của Nga. Ưu điểm chính của ứng dụng so với các đối tác của nó là khả năng xem bản đồ ngoại tuyến. Để làm được điều này, bản đồ thành phố bạn cần trước tiên phải được tải vào bộ nhớ của thiết bị. Điều này được thực hiện từ giao diện chương trình và không yêu cầu bất kỳ kỹ năng đặc biệt nào từ người dùng. Điều thú vị là trước khi tải xuống, chương trình sẽ cung cấp cho bạn lựa chọn thẻ nào phù hợp với bạn nhất - chính thức hoặc "quốc gia". Nếu mọi thứ rõ ràng hơn hoặc ít hơn với tùy chọn đầu tiên, thì chúng ta cần xem xét chi tiết hơn ở tùy chọn thứ hai. Bản đồ "Nhân dân" do các thành viên cộng đồng trực tiếp tạo ra và cũng được lập mô hình bằng cách sử dụng dữ liệu từ các nguồn mở. Trên chúng, bạn sẽ tìm thấy nhiều dấu hiệu hơn về các tổ chức, điểm dừng và những thứ hàng ngày khác. Ngay lập tức, chúng tôi lưu ý rằng chúng tôi đề xuất loại bản đồ này chỉ dành cho các thành phố lớn.

Trong số các tính năng hữu ích khác của ứng dụng Yandex.Maps, người ta có thể tìm ra các chức năng cơ bản của trình điều hướng. Bạn có thể bật chế độ dẫn đường ngay sau khi đặt tuyến (thủ công hoặc tự động). Giống như bất kỳ bản đồ nào khác, giải pháp phần mềm được trình bày có thể xác định vị trí của người dùng trên bản đồ. Chương trình cũng có khả năng xem toàn cảnh đường phố.

Các tính năng và chức năng chính

  • cung cấp cho người dùng bản đồ ngoại tuyến của hầu hết các thành phố ở Nga, Ukraine và Belarus;
  • cho phép bạn xem thông tin về các cơ sở gần nhất;
  • bao gồm khả năng chọn chế độ xem bản đồ: sơ đồ, vệ tinh và phiên bản "dân gian" của bản đồ;
  • biết cách đặt đường đi bộ và đường ô tô;
  • hiển thị thông tin về tắc đường;
  • giúp bạn có thể xem toàn cảnh đường phố.

Có gì mới trong bản phát hành này?

8.4.2 (28.10.2016)

  • cố định công việc của tiện ích con cho trung tâm thông báo ở một số thành phố;
  • Đã khắc phục sự cố của ứng dụng, được quan sát thấy nếu người dùng chỉ định một điểm khi xây dựng tuyến đường theo cách thủ công;
  • đã khắc phục sự cố do các thư trong "cuộc hội thoại" có thể được hiển thị không đầy đủ.

Xin chào các độc giả thân yêu của trang blog. Hôm nay tôi muốn nói về Yandex Maps và việc sử dụng chúng trên trang web của tôi. Hầu hết các quản trị viên web đều hài lòng với các tính năng đơn giản nhất được cung cấp bởi trình xây dựng có sẵn trực tuyến hoặc họ chỉ đơn giản là sử dụng các plugin hoặc mô-đun thích hợp cho CMS của họ.

Nhưng những người muốn nhận được nhiều tính năng và chức năng hơn từ API Yandex.Maps sẽ phải học JavaScript và hiểu tài liệu của họ.

Thật không may, tôi không giỏi ngôn ngữ và do đó trong bài đăng này, tôi sẽ chỉ nói về những cách đơn giản nhất để chèn Yandex Maps vào trang web hoặc blog của bạn và cũng chỉ cho bạn nơi để tìm kiếm thông tin nếu nó có vẻ ít và những gì bạn có thể nhận được nếu bạn muốn.

Tìm kiếm trên Yandex Maps, People's Map và Yandex.Directory

Bản thân dịch vụ bản đồ trực tuyến của Yandex (đọc về điều đó) xuất hiện vào năm 2004 và tiếp tục phát triển kể từ đó, đặc biệt là khi nó có một đối thủ cạnh tranh rất mạnh khi đối mặt với Google maps. Cư dân của nhiều thành phố lớn ở Nga, Ukraine, Kazakhstan hoặc Belarus sử dụng các tính năng tiên tiến như Kẹt xe hoặc Panoramas.

Dịch vụ cuối cùng (ảnh toàn cảnh) được ra mắt tương đối gần đây (2009) và Yandexmobile (với bốn camera góc rộng trên mái nhà) vẫn chưa thể đi khắp mọi ngóc ngách của quê hương rộng lớn của chúng ta, nhưng ở những nơi ảnh toàn cảnh đã xuất hiện, nó đã trở thành dễ dàng hơn nhiều để lên kế hoạch cho các chuyến đi dọc theo một tuyến đường không quen thuộc.

Ngoài ô tô, nhân viên của Yandex Maps còn đi quanh một số khu vực bằng xe đạp hoặc đi bộ (ví dụ: trong công viên). Gần đây, những bức ảnh toàn cảnh làm từ máy bay trực thăng cũng đã xuất hiện, và để xem chúng, bạn cần đánh dấu vào ô "Từ trên không" dưới nút tương ứng, nhưng sự thật là thứ như vậy chỉ có ở Peter.

Nếu công ty của bạn không có ở đó, hãy sử dụng biểu mẫu để thêm một tổ chức mới vào Danh bạ, nút gọi của tổ chức này sẽ xuất hiện ở phía bên phải dưới biểu mẫu xác minh:

Sau đó, hãy làm theo hướng dẫn trong video bên dưới (dữ liệu được chỉ định, chẳng hạn như số điện thoại hoặc địa chỉ, sẽ cần được xác nhận, vì vậy chúng không được giả mạo, nếu không sẽ không thể thêm vào bản đồ):

Đồng thời, bạn cần được ủy quyền trên Yandex và tốt nhất nếu đây không phải là tài khoản cá nhân của bạn, vì bạn có thể cần chỉnh sửa dữ liệu đã thêm vào bản đồ (hoặc sắp xếp một vị trí ưu tiên) và không phải lúc nào cũng vậy. chính xác để tin cậy tài khoản của bạn cho một nhân viên. Nó sẽ là đủ để làm theo các hướng dẫn được đưa ra.

Điều hấp dẫn khác đối với người dùng tìm kiếm trên Yandex Maps là họ có thể đọc và nếu muốn, hãy để lại đánh giá về tổ chức. Hơn nữa, các bài đánh giá được kiểm duyệt (tất nhiên không phải bởi các chủ sở hữu của công ty, mà bởi các nhân viên của Runet mirror) và các thư rác hoặc vô nghĩa rõ ràng sẽ bị loại bỏ.

Bằng cách nhấp vào các bài đánh giá, bạn sẽ được đưa đến thẻ của tổ chức, nơi bạn có thể đọc chúng và nếu muốn, hãy để lại của riêng bạn. Cũng có thể có thêm thông tin về công ty này.

Tạo bản đồ trong Yandex, các tuyến đường và ứng dụng di động

Chúng tôi đã mô tả ba nguồn chính mà từ đó Yandex lấy thông tin khi tìm kiếm các đối tượng địa lý. Nhưng cũng có một thứ tư. Đây là những cái gọi là thẻ mà người dùng để lại trên cái gọi là "Thẻ của tôi" bằng cách lưu trữ chúng với khả năng truy cập công khai. Bạn có hiểu tôi đang nói gì không? Nếu không, thì trong một vài đoạn văn, tôi sẽ cố gắng giải thích theo nghĩa đen.

Trong cột bên trái có một tab "Thẻ của tôi". Bản chất của nó nằm ở thực tế là tại đây bạn có thể lưu tất cả các nhãn, lựa chọn, tuyến đường lát đá và những thứ khác mà bạn đã tạo trên Yandex Maps. Về mặt cá nhân, đây là cách tôi đánh dấu những địa điểm mà tôi có thể đi xe đạp trong khu vực lân cận nơi tôi ở.

Tuy nhiên, bạn có thể đánh dấu, chọn bất kỳ tòa nhà nào (vẽ một tuyến đường) và viết rằng công ty của bạn nằm ở đó, thêm các thẻ cần thiết vào mô tả từ khóa(trong trường hợp này sẽ không cần xác nhận thông tin), vì có khả năng thông tin này sẽ được lưu ý khi tìm kiếm trên Yandex Maps. Trong trường hợp này, sẽ tốt hơn nếu lưu bản đồ ở dạng công khai (được đánh dấu là "mọi người") trong ảnh chụp màn hình ở trên.

Đọc chi tiết trong bài viết về cách nhận lưu lượng truy cập thương mại miễn phí từ Yandex Maps, được xuất bản bởi tác giả của blog Mystery Online. Nó mô tả một số thủ thuật đã hoạt động, ít nhất là tại thời điểm viết bài này.

Mặc dù, khả năng lưu các nhãn và dấu đã tạo có thể hữu ích, như tôi đã đề cập, chỉ cho các mục đích cá nhân. Trong trường hợp này, cách tốt nhất là lưu các thẻ, đã được ủy quyền trước đó trên Yandex, để sau này bạn có thể chỉnh sửa chúng, lưu chúng với số lượng không giới hạn và cũng đánh dấu chúng là cá nhân (chỉ với tôi) hoặc được nhắm mục tiêu hẹp ( chỉ bằng liên kết mà bạn thông báo sau đó và khi người dùng khác xem danh sách sáng tạo của bạn, nó sẽ không hiển thị).

Nếu bạn muốn chuyển tiếp đến ai đó liên kết với tuyến đường trải nhựa, sau đó bạn có thể sử dụng nút nằm ở góc trên bên phải của "Liên kết", tại đây, ngoài siêu liên kết thông thường, bạn cũng sẽ được đề nghị chia sẻ liên kết tới bản đồ bạn đã tạo trong các mạng xã hội phổ biến.

Vì chúng ta đang nói về đặt tuyến đường trên Yandex Maps, sau đó tôi sẽ nói một vài lời về điều này. Điều tiện lợi. Khi không có ô tô, điều quan trọng là phải vạch ra một tuyến đường giao thông công cộng đến một nơi xa lạ.

Yandex đã nói về việc đi xe buýt hoặc xe đẩy nào đến tàu điện ngầm gần nhất, nói về phương tiện di chuyển khi lái xe dưới lòng đất và sau đó cũng phát sóng cách đi đến điểm cuối cùng với số mét cần phải đi bộ.

Ngoài ra, Yandex Maps cũng cảnh báo về thời gian được cho là cần thiết để hoàn thành chuyến hành hương này và thậm chí đưa ra các tuyến đường thay thế để bạn cân nhắc.

Khi một chiếc xe hơi xuất hiện, việc sử dụng định tuyến càng trở nên phù hợp hơn, bởi vì tình hình tắc đường đôi khi cần phải điều chỉnh nghiêm trọng. Để thực hiện việc này, bạn chỉ cần nhập hai địa chỉ (điểm bắt đầu và điểm kết thúc) vào cột bên trái, hoặc chỉ cần đưa các điểm này lên sơ đồ bằng chuột (lần nhấp đầu tiên là điểm bắt đầu của tuyến đường, lần nhấp thứ hai là điểm kết thúc).

Để đếm tắc đường, hãy chọn hộp tương ứng và thay đổi tuyến đường ở một nơi riêng biệt, chỉ cần nhấp chuột trái vào vị trí này là đủ và khi một vòng tròn màu trắng xuất hiện, hãy nắm lấy nó và kéo nó đến đường giao nhau hoặc đoạn đường mong muốn. Đúng như vậy, nếu bạn tự điều chỉnh tuyến đường trên bản đồ Yandex, tắc đường sẽ không còn nữa - mọi thứ thuộc trách nhiệm của bạn.

Nhân tiện, vì chúng ta đang nói về điều hiển nhiên, tôi sẽ hỏi bạn, có bao nhiêu cách bạn có thể thay đổi tỷ lệ hiển thị? Cá nhân tôi chỉ biết về các nút cộng và trừ (và thanh trượt giữa chúng) ở góc trên bên trái, và về vòng quay của con lăn chuột. Nhưng hóa ra, việc nhấp đúp chuột với các nút chuột phải và trái cũng cho phép bạn chơi một cách chi tiết, đôi khi có thể rất tiện lợi.

Tuy nhiên, điều thú vị là đặt các tuyến đường và tắc đường ở nhà, nhưng hầu hết chúng ta thường sử dụng Ứng dụng di động Yandex(Bản đồ, Điều hướng hoặc Tàu điện ngầm). Tôi nghĩ rằng chương trình đầu tiên được cài đặt trên 90% điện thoại ở các thành phố lớn của Nga, nơi thường xuyên xảy ra tắc đường. Đó là điều dễ hiểu, bởi vì nó thuận tiện, nhanh chóng và đáng tin cậy. Shnyaga này vẫn chưa làm tôi thất vọng.

Các ứng dụng di động sẽ hoàn toàn tải xuống miễn phí từ trang web chính thức hoặc để nhận ra mã QR đã cho, với một liên kết để tải xuống tệp bằng điện thoại di động (bạn nên có một số chương trình trên đó sẽ giúp ích):

Mobile Yandex.Maps có chức năng rất giống với phiên bản trực tuyến (tắc đường, định tuyến, tìm kiếm), tuy nhiên, đối với các chuyến đi trên một tuyến đường lạ, tất nhiên, Navigator của chúng là phù hợp nhất, nguyên tắc chung được thể hiện rõ trong video này :

Mặc dù theo cá nhân tôi, tôi giữ Bộ điều hướng với Bản đồ Yandex trên điện thoại của mình như một lựa chọn dự phòng, vì Garmin mỏng với màn hình tuyệt vời, điều khiển bằng giọng nói và bản đồ tuyệt đẹp của Nga hoàn toàn phù hợp với tôi, ngoại trừ việc không phải lúc nào cũng có tắc đường. Một cách kịp thời, bởi vì kênh radio được sử dụng cho việc này và khi tất cả Moscow đều đáng giá, thì bạn phải phát thật nhiều, và cho đến khi đến lượt đến khu vực bạn đang đi, mọi thứ có thể thay đổi gấp mười lần.

Bản đồ Api Yandex và phương thức khởi tạo để tạo ra chúng

Chà, thế là xong với các câu hỏi chung, bây giờ là lúc chuyển sang thực hành, cụ thể là cách tạo trong hàm tạo và chèn một bản đồ từ Yandex trên trang web của bạn... Trên thực tế, nó vừa dễ lại vừa khó.

Nếu bạn có một trang danh thiếp, một blog hoặc một cửa hàng trực tuyến đơn giản với mạng lưới văn phòng rộng khắp, thì khả năng cơ bản của một nhà thiết kế là đủ cho bạn, và ngay cả một người nghiệp dư cũng có thể chèn mã vào trang web.

Trên thực tế, có một video rất hay sẽ giúp bạn đưa ra quyết định về việc có cần phải bận tâm đến tất cả những điều này hay không - Cách cải thiện trang web của bạn bằng cách sử dụng API Yandex.Maps(trong ví dụ):

Nếu bạn tiếp cận vấn đề một cách thấu đáo, thì một bản đồ tuyến đường được vẽ chính xác hoặc tính toán chi phí giao hàng dựa trên vị trí do người dùng chỉ định có thể cải thiện đáng kể khả năng sử dụng và cuối cùng khiến khách truy cập trở thành người mua.

Để biết chi tiết, hãy xem video, cho biết cách cải thiện cửa hàng trực tuyến của bạn với bản đồ:

Đó là một vấn đề khác nếu bạn cần vượt ra ngoài khuôn khổ cơ bản của trình xây dựng Bản đồ Yandex và tạo ra thứ gì đó có thể so sánh được với các kế hoạch phủ sóng của các nhà khai thác di động hàng đầu, danh sách tất cả các máy ATM Kiwi, tình hình tắc đường trong khu vực của bạn, v.v. của sự vật. Ở đây bạn cần một lập trình viên biết JavaScript.

API Yandex.Maps, ví dụ: cho phép bạn phủ một lớp có tắc nghẽn giao thông trên trang web của mình, nhưng đối với điều này, rất tiếc, khả năng của hàm tạo tích hợp sẽ không đủ và bạn sẽ phải sử dụng dịch vụ của một chuyên gia am hiểu về JavaScript , người sẽ chỉ cần đọc tài liệu API.

Đúng vậy, bản thân thuật ngữ API (giao diện lập trình ứng dụng) có nghĩa là có cơ hội sử dụng một số loại phần mềm, không biết nó hoạt động như thế nào, nhưng có mô tả về những công cụ (bút) cần thiết để kết nối nó và triển khai các tính năng nhất định . Điều này là phổ biến và thường được sử dụng.

API Yandex Maps được mô tả tại liên kết ngay bên trên, nhưng cũng có một hàm tạo đơn giản sẽ cho phép bạn nhanh chóng tạo bản đồ khu vực bạn cần, đặt các nhãn cần thiết với mô tả trên đó, đánh dấu các đối tượng cần thiết và hiển thị con đường mà bạn có thể dễ dàng đến đó nhất, chẳng hạn như từ ga tàu điện ngầm gần nhất.

Hàm tạo bản đồ trong Yandex

function customcript_shortcode ($ atts, $ text) (global $ post; return get_post_meta ($ post-> ID, $ text, true);) @add_shortcode ("Customscript", "Customscript_shortcode");

Sau đó, bài báo hoặc trang tĩnh có thể được chèn mã có được trong hàm tạo bản đồ Yandex, sử dụng cấu trúc sau, trong đó thay vì "yandexmap", hãy chèn mã nhận dạng bạn đang sử dụng:

Bây giờ bạn không sợ trình chỉnh sửa trực quan, nó sẵn sàng cắt mọi thứ khác với mã Html. Hoan hô. Nếu bạn cần chèn chỉ đường vào khung blog (đầu trang, thanh bên hoặc chân trang), thì tập lệnh có thể được chèn trực tiếp vào đó, nhưng bạn sẽ cần chọn một chỉ đường bạn muốn để bản đồ được hiển thị ở nơi bạn muốn. Đọc về mục đích của các mẫu tại liên kết được cung cấp.

Chèn vào Bản đồ API từ Yandex đến một trang web do Joomla quản lý nó sẽ có thể sử dụng cùng một cái, nhưng trước tiên hãy tắt trình chỉnh sửa trực quan để mã, một lần nữa, không bị cắt bởi nó. Sau khi chèn, có thể bật lại trình chỉnh sửa.

Nếu bạn cần thêm mã chỉ đường lái xe vào bài viết trên Joomla, bạn có thể chỉ cần dán mã đó khi trình chỉnh sửa trực quan bị tắt hoặc chèn nội dung của mô-đun mã tùy ý bằng khả năng của plugin.

Trong trường hợp này, mô-đun có mã thẻ Yandex phải được đặt ở vị trí không tồn tại trong mẫu (nhập một thứ gì đó như yandex-karta vào trường chọn vị trí trong cài đặt mô-đun cho một mã Html tùy ý là điều vô lý). Và sau đó, khi viết hoặc chỉnh sửa bài viết, bạn có thể chèn cấu trúc vào đúng vị trí:

(vị trí tải yandex-karta)

Nhân tiện, nếu đột nhiên phương pháp này không hoạt động với bạn, hãy truy cập trình quản lý plugin (từ bảng quản trị Joomla, chọn các mục menu "Phần mở rộng" - "Trình quản lý plugin") và tìm và sau đó kích hoạt "Nội dung - Tải mô-đun ". Nó được bao gồm trong gói Joomla tiêu chuẩn, vì vậy bạn phải có nó.

Ở đây, điều đáng nói là bạn có thể lấy lược đồ ra và chèn nó vào trang web của mình từ “Thẻ của tôi” được đề cập ở trên. Hãy nhớ rằng, tôi đã nói ở đó rằng bạn có thể nhận được một liên kết đến sơ đồ đã lưu, ngoài ra, bạn cũng có thể nhận được Tệp YMapsML, bạn có thể dễ dàng đính kèm vào trang web bằng cách kết nối trước API với nó.

Để kết nối API Yandex, chỉ cần đặt lệnh gọi tập lệnh sau giữa các thẻ head (bạn có thể tìm thấy chúng trong trường hợp của Joomla hoặc WordPress theo cách tương tự như được mô tả trong bài viết về):

Chà, ở đúng vị trí (nơi bản đồ vị trí cần được chèn và hiển thị), nó sẽ đủ để chèn:

Chúng tôi sẽ giả định rằng bằng cách nào đó chúng tôi đã tìm ra bằng cách tạo ra các chỉ đường lái xe đơn giản nhất và đưa nó vào trang web của chúng tôi. Cái gì tiếp theo? Có lẽ, cần phải nói một vài lời về các phiên bản phức tạp hơn của API Yandex Maps, những phiên bản này không còn phụ thuộc vào hàm tạo đã đề cập, nhưng mặt khác, một người quen thuộc với ngôn ngữ JavaScript lại khá có khả năng.

Trong trường hợp này, trước khi bạn mở tất cả các khả năng của Yandex Maps APIđược mô tả tại liên kết được cung cấp. Tất cả các tài liệu cần thiết đều có ở đó và cô gái trong video này sẽ cập nhật cho bạn:

Tuyệt vời, hãy chuyển những tài liệu này cho lập trình viên của bạn và anh ấy sẽ giải thích cho bạn những thứ như thế này (nếu cần):

Cách chèn Yandex Maps vào WordPress và Joomla bằng các tiện ích mở rộng

Về nguyên tắc, các khả năng của hàm tạo được mô tả ở trên phải đủ trong hầu hết các trường hợp. Tuy nhiên, có một số tiện ích mở rộng cho phép bạn chèn bản đồ từ Yandex vào trang web của mình và thêm các nhãn giải thích cần thiết vào đó.

Danh sách các phần mở rộng như vậy có thể được tìm thấy trên trang web chính thức. Nếu chúng ta xem xét WordPress, thì theo tôi, chỉ có một plugin cho nó được gọi là Yandex Maps dành cho WordPress, có thể được tải xuống miễn phí tại liên kết được chỉ định. Nó được cài đặt và kích hoạt theo cách tiêu chuẩn.

Điều duy nhất có vẻ như nó đã lỗi thời một chút và vẫn yêu cầu nhập khóa API cho hoạt động của nó, phương pháp lấy mà tôi đã viết cao hơn một chút. Bạn sẽ cần nhập khóa này trên trang "Plugin" - "Yandex Maps". Sau đó, trên các trang tạo hoặc chỉnh sửa bài viết, bạn có thể tìm thấy ở cuối biểu mẫu nhập dữ liệu để nhận mã Yandex Maps.

Trong hộp trên cùng, nhập tiêu đề cho chú thích sẽ trỏ đến vị trí mong muốn trong sơ đồ. Tiếp theo, nhập địa chỉ của nơi mà mũi tên con trỏ sẽ tìm. Sau đó, bạn điền vào trường với mô tả, đặt các kích thước của bản đồ được chèn theo chiều ngang và chiều dọc, đồng thời đánh dấu kiểm để tỷ lệ thay đổi tỷ lệ và chọn loại (lược đồ, vệ tinh, v.v.) được hiển thị.

Sau đó di chuyển con trỏ (click bằng chuột) đến vị trí của bài viết mà bạn muốn chèn bản đồ Yandex và click vào nút "Send Map To Editor". Kết quả là, chúng ta sẽ nhận được một cái gì đó tương tự như sau:

Đúng, không có bảng nào có lựa chọn thu phóng và loại thẻ, nhưng nếu không thì mọi thứ đều chính xác. Tôi được xem một ảnh chụp màn hình từ một blog khác của tôi, vì trong đó có một xung đột nhỏ với các kiểu CSS (do lỗi của tôi), mà tôi không muốn sửa ngay bây giờ.

Có một số phần mở rộng cho Joomla loại này, chưa loại nào mà tôi đã từng thử. Do đó, tôi sẽ chỉ liệt kê chúng và đưa ra các liên kết đến các bài báo, trong đó mô tả chi tiết khả năng của chúng và cách sử dụng chúng để chèn bản đồ vào trang web của bạn.

Hôm nay, chúng tôi có một trong những cập nhật quan trọng nhất đối với Yandex.Maps trong lịch sử của nó. Thứ nhất, bản đồ Nhân dân được kết hợp với bản đồ chính, có nghĩa là mọi người có thể nhanh chóng và dễ dàng thêm ngôi nhà của mình vào bản đồ hoặc sửa những điểm không chính xác. Kết quả của những thay đổi sẽ có sẵn cho tất cả mọi người - trên Yandex.Maps, cũng như trên Mobile Maps và Navigator. Và thứ hai, Yandex.Maps đã nhận được một giao diện mới, phiên bản beta mà chúng tôi đã từng nói về Habré trong giai đoạn đầu làm việc với nó (cảm ơn bạn rất nhiều vì tất cả những nhận xét và lời khuyên sau đó đã được bày tỏ).

Dưới phần tóm tắt, tôi sẽ cho bạn biết về cách chúng tôi đã làm việc trên giao diện, cách chúng tôi giải quyết vấn đề tải nhanh các đối tượng trong trình duyệt, đưa ra và triển khai các công cụ mới để bảo vệ các chỉnh sửa của người dùng, cách chúng tôi tạo ra một cuộc sống mới có thể tại tất cả, và tại sao bản đồ giờ đây sẽ được cập nhật nhanh hơn bao giờ hết mà vẫn chính xác và hơn thế nữa.

Phiên bản đầu tiên của Bản đồ Nhân dân đã được ra mắt cách đây đúng 5 năm - vào ngày 8 tháng 4 năm 2010. Vào thời điểm đó, Yandex.Maps hoàn toàn phụ thuộc vào các nhà cung cấp dữ liệu bản đồ. Bằng cách ra mắt Bản đồ Nhân dân, chúng tôi muốn mang đến cho mọi người cơ hội tác động độc lập đến tính đầy đủ và chất lượng của dữ liệu. Thực tế đã vượt qua tất cả sự mong đợi của chúng tôi: trong năm năm này, thông qua nỗ lực của người dùng, nhiều thành phố và thị trấn của Liên bang Nga và các nước gần xa đã được thu hút. Khi các nút giao mới được mở, việc chỉnh sửa bản đồ sẽ được thực hiện trong ngày và thường xuyên nhất - trong một giờ.


Đây là phiên bản đầu tiên của Bản đồ Nhân dân trông như thế nào vào năm 2010

Nhưng thế giới không đứng yên, và thách thức tiếp theo đang chờ chúng ta - tạo ra một công cụ từ bản đồ Nhân dân, với sự trợ giúp của nó, ngay cả những người không rành về bản đồ cũng có thể tạo ra các bản đồ chuyên nghiệp phù hợp để sử dụng trong định tuyến ô tô.

Nhưng, đặt cho mình một mục tiêu như vậy, chúng tôi nhận thức được những nhiệm vụ mà chúng tôi sẽ phải giải quyết. Đầu tiên, để làm cho giao diện của Bản đồ Nhân dân mới trở nên trực quan và thân thiện với người dùng để bất kỳ ai cũng có thể làm việc với nó. Thứ hai, tôi cần học cách chỉnh sửa các đối tượng rất lớn trong trình duyệt. Trong bản đồ Nhân dân cũ, khi tải một đối tượng có số lượng nút lớn (> 20K), trình duyệt bị đóng băng. Trong Bản đồ Nhân dân mới, như chúng tôi quan niệm, điều này là không thể chấp nhận được.

Và thứ ba, vì sau những thay đổi ngày nay, chúng tôi cho phép mọi người chỉnh sửa dữ liệu, sau đó hàng chục triệu người dùng Yandex sẽ nhìn thấy dữ liệu này. , người mà chúng tôi gọi là kẻ phá hoại.

Làm việc trên giao diện

Trong quá trình này, chúng tôi xác định rằng chúng tôi có hai nhóm người dùng:
  • những người mới bắt đầu chưa bao giờ thử chỉnh sửa bản đồ;
  • những người dùng có kinh nghiệm, bao gồm những người vẽ bản đồ và những người đang sử dụng Bản đồ Nhân dân.
Đối với chúng tôi, điều này có nghĩa là trước tiên giao diện phải đơn giản và dễ hiểu và phải đáp ứng các yêu cầu về tính linh hoạt và dễ chỉnh sửa của người dùng có kinh nghiệm. Nhưng làm thế nào để đạt được điều này?

Chúng tôi đã giả thuyết rằng giao diện nên có hai tầng. Cấp độ đầu tiên dành cho người dùng hoàn toàn mới để họ có thể hoàn thành các kịch bản đơn giản và cấp độ thứ hai dành cho người dùng nâng cao, khi được yêu cầu làm một việc gì đó phức tạp hơn. Tôi sẽ đưa ra các ví dụ dưới đây.

Để kiểm tra giả thuyết này, chúng tôi đã nghiên cứu các phiên của người dùng trên Bản đồ Nhân dân và nhận thấy rằng trong số các tình huống phổ biến nhất để tạo và chỉnh sửa dữ liệu, nổi bật sau:

  • chỉnh sửa tổ chức;
  • chỉnh sửa tòa nhà và địa chỉ của nó;
  • chỉnh sửa các đối tượng isal đơn giản (công viên, bãi cỏ, trường học hoặc lãnh thổ mẫu giáo);
  • chỉnh sửa đường.

Và vì những tình huống này bắt đầu làm quen với việc chỉnh sửa bản đồ, điều đó có nghĩa là chúng phải siêu logic và trực quan. Nếu một người hiểu họ và anh ta vẫn quan tâm đến việc chỉnh sửa bản đồ, thì anh ta có thể nhấp vào nút "Hiển thị thêm". Sau lần nhấp này, người dùng sẽ tìm thấy nhiều công cụ hơn mà họ sẽ phải tìm ra - đọc hướng dẫn, hỏi lời khuyên của những người dùng có kinh nghiệm hơn.

Trong quá trình thiết kế giao diện người dùng, chúng tôi ngay lập tức phải đối mặt với nhu cầu về các nguyên mẫu động. Hóa ra là rất khó để thảo luận về các kịch bản chỉnh sửa phức tạp với bố cục tĩnh trong tay. Rất nhiều câu hỏi được đặt ra như: "Điều gì sẽ xảy ra nếu tôi nhấn nút này và thực hiện điều này?" Khi có rất nhiều kịch bản và chúng phân nhánh và giao nhau với mỗi lần nhấp vào nút, "nguyên mẫu động" là một giải pháp tuyệt vời. Chúng giúp chứng minh nhanh chóng và trực quan cách thức tương tác của người dùng với giao diện.

Chúng tôi bắt đầu thử nghiệm giao diện người dùng với chúng. Đối tượng đầu tiên của chúng tôi là các nhà phát triển của chúng tôi. Ngay sau khi chúng tôi cho họ thấy sự tương tác mong muốn của người dùng với sản phẩm của chúng tôi, họ đã nghe thấy: “Chúng tôi không hiểu cách thực hiện điều kỳ diệu này. Trước tiên, hãy làm cho nó đơn giản theo quan điểm phát triển, sau đó chúng tôi sẽ cố gắng đơn giản hóa giao diện cho người dùng. "

Bất kỳ giải pháp nào tốt hơn là không có. Do đó, chúng tôi làm lại tất cả các nguyên mẫu của các giao diện thành một triển khai mà chúng tôi hiểu. Kết quả là chúng tôi có một nguyên mẫu trong đó tất cả dữ liệu đều được chỉnh sửa, nhưng ở một số chỗ, nó không thuận tiện và phi logic.

Hãy giải thích rõ hơn bằng một ví dụ. Hãy đến hồ Baikal. Làm thế nào thuận tiện cho một người dùng đơn giản để chỉnh sửa? Baikal là một đối tượng areal, vì vậy việc chỉnh sửa nó thành một đối tượng areal là điều đương nhiên. Nhưng có một vấn đề - Baikal bao gồm 527 đường viền khép kín (đường viền chính nó cộng với các đảo được chạm khắc), hơn 59.200 nút và hơn nữa, có đường biên giới chung với nhiều con sông.

Nếu bạn cố gắng tải tất cả dữ liệu này từ máy chủ cho người dùng vào trình duyệt, mọi thứ sẽ bị đóng băng. Do đó, trong dữ liệu của chúng tôi, mọi thứ được trình bày hơi khác một chút.

Có một đối tượng thủy văn "Hồ Baikal", chỉ có tên và không có hình học.


Khi bạn chọn một đối tượng, tất cả các đường viền của nó sẽ được hiển thị

Có những đường viền khép kín liên kết với vật thể này, đại diện cho đường viền bên ngoài của hồ và khoét lỗ cho các hòn đảo. Chúng có thuộc tính "bên ngoài" hoặc "bên trong" (đường bao), nhưng cũng không có dạng hình học của riêng chúng.

Xin lưu ý rằng tôi chỉ chọn một phác thảo - phần tô sáng của tất cả các phác thảo khác đã biến mất.

Tất cả các đường bao này bao gồm một hoặc nhiều phần thường là nhiều phần ranh giới thủy văn thể hiện dạng hình học thực tế.


Một trong những phần của đường viền bên ngoài của Hồ Baikal được đánh dấu trong hình.

Điều này có nghĩa là để tạo ra một cái hồ như vậy, chúng ta phải:

  • vẽ ranh giới thực của hồ và tất cả các đảo;
  • tạo một đối tượng "Hồ Baikal" và thêm vào đó các đường bao được thu thập từ các phần đường ranh giới đã vẽ trước đó.

Đây là cách các nhà lập bản đồ của chúng tôi xem và tạo dữ liệu. Và chúng tôi đã chọn tùy chọn này để chỉnh sửa dữ liệu làm điểm khởi đầu cho việc cải thiện từng bước giao diện.

Tại thời điểm phiên bản đầu tiên của giao diện chỉnh sửa được phát triển và đưa lên dịch vụ thử nghiệm, toàn bộ nhóm của chúng tôi đã đi thử nghiệm nó. Dựa trên kết quả thử nghiệm, chúng tôi đã họp lại với nhau và thảo luận về những gì có thể được cải thiện trong cách chỉnh sửa này.

Điều đầu tiên chúng tôi quyết định là vẽ Baikal là một trường hợp hiếm gặp và người dùng mới bắt đầu có nhiều khả năng vẽ thứ gì đó dễ dàng hơn. Ví dụ, một cái ao ở địa phương. Và đây là một trường hợp nhỏ, và ao sẽ bao gồm một đối tượng thủy văn, một đường bao và một phần ranh giới. Vì vậy, trong những trường hợp như vậy, anh ấy sẽ tạo nó như một đối tượng đơn giản mà không gặp rắc rối với các phần của ranh giới và đường viền, và chúng tôi sẽ lưu nó thành ba đối tượng riêng biệt (đối tượng thủy văn, đường viền, đường viền). Không sớm nói hơn làm.


Tạo ranh giới đối tượng, đường bao và đối tượng thủy văn trong một bước

Và nếu nó tạo ra các đối tượng tầm thường theo cách này, thì chúng ta hãy chỉnh sửa các đối tượng tầm thường theo cách tương tự. Sẵn sàng!


Chỉnh sửa đối tượng địa lý bao gồm một đường ranh giới đối tượng địa lý, một đường viền và đối tượng địa lý thủy văn

Tốt! Và chúng ta cũng hãy chỉnh sửa những đối tượng bao gồm một đường viền, nhưng nhiều phần.


Chỉnh sửa đối tượng địa lý bao gồm ba đường ranh giới đối tượng địa lý, một đường viền và đối tượng địa lý thủy văn

Tốt. Hãy cũng chỉnh sửa các đối tượng có "đường viền chung" và những đối tượng có nhiều đường viền. Nhưng ở đây nó sẽ không hoạt động. Trong trường hợp một đối tượng có đường viền chung với các đối tượng khác, chúng tôi không biết người dùng muốn làm gì - di chuyển đường viền chung hoặc hủy liên kết đối tượng khỏi đường viền chung này. Và trong trường hợp các đối tượng có số lượng đường bao lớn, cần phải hiểu người dùng sẽ chỉnh sửa đường bao nào bây giờ. Điều này có nghĩa là cần phải suy nghĩ về các kịch bản cho những trường hợp này và triển khai các công cụ lựa chọn và chỉnh sửa.


Ao, có một đường viền bên ngoài, một số đường viền bên trong và bên ngoài có đường viền chung với kênh

Được rồi, bây giờ chúng ta đã hiểu ranh giới giữa các kịch bản chỉnh sửa đơn giản và phức tạp. Nhưng chúng tôi đã thực hiện các trường hợp đơn giản, và ... bạn sẽ không tin, chúng trông gần giống với các giao diện được thiết kế ngay từ đầu của dự án. Chỉ là ma thuật đã trở nên dễ hiểu và có thể thực hiện được.

Trong quá trình nghiên cứu sau đây, chúng tôi đã tìm ra cách làm cho các kịch bản chỉnh sửa dữ liệu phức tạp và phức tạp trở nên rõ ràng, nhưng giải pháp này hóa ra không thanh lịch như chúng tôi mong muốn. Chúng tôi đã học cách phát hiện khi người dùng phải đối mặt với một tình huống phức tạp. Dịch vụ cung cấp để làm quen với các quy tắc chỉnh sửa các đối tượng liền kề và thậm chí nhắc người dùng về nơi có thể đã xảy ra lỗi.


Một lỗi được hiển thị với một liên kết đến tài liệu và một điểm đánh dấu nơi lỗi được tìm thấy

Tốc độ tải về

Chúng tôi đã tìm ra các giao diện cơ bản, nhưng, tiếp tục cuộc trò chuyện về Hồ Baikal, chúng tôi cần hiểu cách chúng tôi sẽ chỉnh sửa nó nếu máy tính đã đóng băng từ 20 nghìn nút được tải vào trình duyệt?

Chúng ta hãy giải quyết vấn đề này theo từng giai đoạn. Bạn có thể chỉnh sửa các thuộc tính và hình học, và nếu có nhiều đường bao, thì trong một bước, bạn có thể tính ra hình học của chỉ một đường bao:


Chỉnh sửa chỉ có sẵn từ một tỷ lệ nhất định của bản đồ và người dùng được nhắc chọn hình dạng của đường bao mà anh ta muốn chỉnh sửa

Và do đó, khi người dùng chọn một đường viền để chỉnh sửa, "phép thuật" lại được kích hoạt - nếu đường viền nhỏ (ví dụ: đường viền bên trong cho hòn đảo), chúng tôi tải nó hoàn toàn và để nó được chỉnh sửa dưới dạng một khối đơn giản. sự vật.


Trường hợp chỉnh sửa một đối tượng phác thảo đơn giản

Và nếu đường bao rất lớn, thì chúng tôi chỉ tải các phần có thể nhìn thấy của đường viền và cho phép chúng được chỉnh sửa. Nếu người dùng di chuyển bản đồ và chỉ có các phần đường viền mới trên đó, chúng tôi cũng sẽ tải chúng để chỉnh sửa. Do đó, người dùng có thể chỉnh sửa các đối tượng phức tạp ở một chế độ gần như đơn giản mà không hề để ý đến nó.


Chỉ tải một phần ranh giới của đối tượng từ tập hợp

Bằng cách thông minh này, chúng tôi đã bỏ qua các giới hạn của trình duyệt - tốc độ tải dữ liệu để chỉnh sửa và giới hạn về số lượng điểm đồng thời có sẵn cho nó.

Bảo vệ các chỉnh sửa

Nhiệm vụ quan trọng tiếp theo đối với chúng tôi là làm cho dịch vụ chống lại những người dùng làm hỏng dữ liệu. Trong Bản đồ Nhân dân cũ, các biện pháp đã được thực hiện để chống lại chúng. Nhưng trong phần mềm mới, bất kỳ ai cũng có thể chỉnh sửa dữ liệu được sử dụng bởi hàng chục triệu người dùng. Chúng tôi phải cố gắng hết sức để đảm bảo rằng chúng không thể bị hư hỏng.

Để làm điều này, chúng tôi đã thay đổi hệ thống kiểm duyệt cho tất cả các chỉnh sửa của người dùng - từ kiểm duyệt sau đến kiểm duyệt trước. Có nghĩa là, kể từ hôm nay, tất cả các chỉnh sửa trong Bản đồ Nhân dân sẽ phải chịu sự xác minh bắt buộc của người kiểm duyệt. Chúng tôi hy vọng rằng điều này sẽ cải thiện hơn nữa chất lượng của dữ liệu.

Chúng tôi không có nhiệm vụ khôi phục tất cả dữ liệu về một ngày hoặc bản sửa đổi cụ thể, chúng tôi có nhiệm vụ chỉ xóa một phần các chỉnh sửa của người dùng, trong khi giữ nguyên tất cả phần còn lại và thậm chí bảo toàn tính toàn vẹn của dữ liệu. Kết quả là sự phát triển nội bộ của chúng tôi về lưu trữ dữ liệu, các bản sửa đổi và bản trình bày riêng biệt.

Một trong những lợi thế quan trọng của hệ thống của chúng tôi là chúng tôi đã học được cách kiểm soát tốt tính toàn vẹn của dữ liệu. Ví dụ: tôi đang chỉnh sửa một phần của con đường và thay đổi hình dạng của nó.


Chỉnh sửa trực tiếp hình dạng của phần đường

Sau đó, tôi đi đến một nút lân cận, nơi một số đoạn đường giao nhau và cố gắng chỉnh sửa nó, nhưng gián tiếp tôi sửa lại hình dạng của đoạn trước.


Chỉnh sửa gián tiếp hình dạng của một đoạn đường

Điều này có nghĩa là tôi có hai chỉnh sửa liên quan. Nếu chúng tôi không biết cách kiểm soát và phiên bản các chỉnh sửa gián tiếp như vậy, thì chúng tôi sẽ không thể trả đối tượng về trạng thái như trước khi chỉnh sửa gián tiếp. Điều này có nghĩa là cần phải cấm tất cả các chỉnh sửa gián tiếp trên các chỉnh sửa trực tiếp.

Về nguyên tắc, không có gì sai với một giải pháp như vậy, một số dịch vụ bản đồ chỉ làm điều đó. Nhưng giải pháp như vậy loại trừ hoàn toàn khả năng chỉnh sửa đường giao nhau, vì khi chỉnh sửa biểu đồ đường, các thay đổi dữ liệu gián tiếp luôn xảy ra.

Một chủ đề quan trọng khác liên quan đến lập phiên bản dữ liệu là trình bày trực quan các chỉnh sửa khác biệt. Bạn luôn có thể xem phiên bản mới nhất của đối tượng trông như thế nào, nhưng để kiểm duyệt thuận tiện, điều quan trọng là phải xem đối tượng trông như thế nào trước và sau khi chỉnh sửa. Điều đặc biệt quan trọng là tạo ra sự khác biệt như thế này cho hình dạng của đối tượng:


Đây là những gì khác biệt về hình học và phân bổ trông như thế nào đối với các chỉnh sửa tôi đã thực hiện để thể hiện việc chỉnh sửa trực tiếp và gián tiếp đối với một đối tượng.


Nhưng tôi đã vẽ xong con đường dành cho người đi bộ, nó cắt con đường thành hai đoạn.


Và đây là những gì khác biệt trông giống như các đối tượng đơn giản chẳng hạn như một tòa nhà.

Trình bày trực quan về các chỉnh sửa giúp bạn hiểu ai đã chỉnh sửa nội dung và cách thức nhanh hơn và dễ dàng hơn.

Do đó, chúng tôi đã quản lý để triển khai một giao diện đơn giản và trực quan cho những người dùng không quen thuộc với bản đồ và không muốn hiểu cấu trúc dữ liệu. Đồng thời, chúng tôi đã tạo ra một giao diện thuận tiện và linh hoạt cho người dùng có kinh nghiệm. Trong quá trình thực hiện, chúng tôi đã học cách chỉnh sửa các đối tượng rất lớn và "nặng" trong trình duyệt và đặt tất cả các chỉnh sửa của người dùng dưới sự kiểm soát của phiên bản.

Và tất cả những điều này để giúp người dùng chia sẻ kiến ​​thức về khu vực này với những người khác thuận tiện hơn.

Những bài viết liên quan: