Câu hỏi thường gặp về KML


KML là gì?

KML là một định dạng tệp dùng để hiển thị dữ liệu địa lý trong trình duyệt Earth, chẳng hạn như Google Earth. Bạn có thể tạo tệp KML để xác định vị trí, thêm lớp ảnh và hiển thị dữ liệu đa dạng theo cách mới. KML là một tiêu chuẩn quốc tế được Open Geospatial Consortium, Inc. (OGC) duy trì.

Ai sử dụng KML?

Cộng đồng KML rất rộng và đa dạng, như bạn sẽ thấy khi truy cập diễn đàn Google Earth. Người dùng thông thường tạo các tệp KML để đánh dấu nhà của họ, ghi lại hành trình và lập kế hoạch cho các chuyến đi bộ đường dài xuyên quốc gia và các dự án đạp xe. Các nhà khoa học sử dụng KML để cung cấp bản đồ chi tiết về các tài nguyên, mô hình và xu hướng như các hiện tượng núi lửa phun trào, các kiểu thời tiết, hoạt động động đất và mỏ khoáng sản. Các chuyên gia bất động sản, kiến trúc sư và cơ quan phát triển thành phố sử dụng KML để đề xuất việc xây dựng và trực quan hoá các kế hoạch. Học viên và giáo viên sử dụng KML để khám phá con người, địa điểm và sự kiện, cả trong quá khứ và hiện tại. Các tổ chức như National geo, UNESCO và Liechtenstein đều sử dụng KML để hiển thị các bộ dữ liệu toàn cầu phong phú của mình.

Làm cách nào để tạo tệp KML?

Có ba công cụ chính để tạo tệp KML.

  • Google Earth Đây là công cụ quan trọng nhất mà bạn có thể sử dụng để tạo các tệp KML. Khi sử dụng Google Earth, bạn có thể tạo
    • Dấu vị trí
    • Đường dẫn
    • Đa giác
    • Lớp phủ hình ảnh
    • Đường liên kết mạng
    • Mô hình địa điểm
    • Thư mục của tất cả các mục trên
    • Lớp phủ ảnh
  • Sau khi tạo một trong những đối tượng này, bạn hãy nhấp chuột phải vào đối tượng đó trong ngăn "Place" (Địa điểm), rồi chọn "Copy" (Sao chép). Sau đó, bạn có thể dán vào trình chỉnh sửa văn bản hoặc trình chỉnh sửa XML và bắt đầu chỉnh sửa.

  • Trình chỉnh sửa văn bản. Sau khi tạo một đối tượng trong Google Earth, hãy dán đối tượng đó vào một trình chỉnh sửa văn bản và bắt đầu chỉnh sửa đối tượng đó.
  • Trình chỉnh sửa XML. KML là ngôn ngữ XML để mô tả nội dung địa lý. Trình chỉnh sửa XML là một trình chỉnh sửa văn bản đẹp mắt, cung cấp nhiều công cụ để tạo tài liệu XML, chẳng hạn như tính năng hoàn thành thẻ, giúp đảm bảo bạn đóng các phần tử KML bằng các thẻ đóng phù hợp.

Ngoài ra, còn có nhiều công cụ do người dùng trong cộng đồng Google Earth tạo ra. Hãy xem Nhóm Google dành cho Nhà phát triển KML.

Làm cách nào để mở tệp AdX?

Tệp AdX là các bộ sưu tập được nén của một hoặc nhiều tệp để xem trong Google Earth. Chúng được nén bằng định dạng zip và có thể mở bằng công cụ nén phổ biến, chẳng hạn như "WinZip", "7-Zip" hoặc Công cụ thư mục nén Windows XP mặc định--dành cho Windows, "Stuffit" – dành cho Mac OS hoặc "zip" - đối với Mac OS hoặc Linux. Bạn có thể cần phải thay đổi đuôi tệp từ .HFSS thành .zip để một công cụ nén nhận dạng tệp đó. Hãy nhớ đổi lại thành .SRC trước khi dùng lại tệp đó.

Làm cách nào để tạo KML cho dữ liệu thiên văn?

KML có thể được dùng để biểu thị dữ liệu thiên văn và được tải vào Google Sky hoặc Kính viễn vọng WorldWide của Microsoft. Để biết thêm thông tin, hãy xem bài viết Dữ liệu bầu trời trong KML.

Thẻ KML nào được Google Earth hỗ trợ?

Tất cả thẻ KML đều được Google Earth hỗ trợ. Để biết danh sách tất cả các thẻ, hãy xem Thông số kỹ thuật KML.

Tôi có thể tìm thấy Hướng dẫn cho nhà phát triển ở đâu?

Bạn có thể tìm thấy Hướng dẫn dành cho nhà phát triển tại https://developers.google.com/sftp/documentation/topicsinSSH.html.


Tại sao các dòng của tôi lại biến mất?

Khi một LineString có clampToGround, nó sẽ tuân theo đường cong của hình ảnh địa cầu mà không có sự cố. Tuy nhiên, nếu giá trị đó là "RelativeToGround", bạn có thể cần phải thêm các điểm khác hoặc nó sẽ vẽ các đường dài hơn trong một đường dẫn thẳng qua hình ảnh địa cầu hoặc địa hình.

Ví dụ: LineString này sẽ đi qua Trái đất, biến mất hiệu quả:

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Untitled Path</name>
    <LineString>
      <tessellate>0</tessellate>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>-115.415105,40.669016 -37.752364,34.879979</coordinates>
    </LineString>
  </Placemark>
</kml>

Việc thêm nhiều điểm sẽ làm giảm số lượng của đường nằm dưới lòng đất. <tessellate> cũng phải là "1" để đảm bảo đường tuân theo địa hình.

<Placemark>
  <name>Untitled Path</name>
  <LineString>
    <tessellate>1</tessellate>
    <altitudeMode>relativeToGround</altitudeMode>
    <coordinates>
      -134.148103,37.752967 -128.917074,38.803008
      -125.166954,39.583592 -122.137625,39.656880
      -120.421783,40.036311 -118.298157,40.235316
      -114.348386,40.631532 -112.670431,40.761033
      -111.916045,40.681939 -110.177711,40.653055
      -109.544331,40.619327 -107.155697,40.642007
      -105.410526,40.421505 -103.192299,40.430138
      -102.853712,40.427904 -98.168302,40.363524
      -97.093391,40.308754 -94.831304,40.479175
      -93.760070,40.395392 -84.913828,39.466651
      -84.414888,39.387332 -81.380660,39.188551
      -80.276261,38.977744 -77.811560,38.872542
      -75.062267,38.521146 -72.006956,38.101733
      -66.67819,37.664687
    </coordinates>
  </LineString>
</Placemark>
Tôi có thể vẽ một vòng tròn trong KML không?

Không có hình học Vòng tròn trong KML, tuy nhiên, bạn có thể tạo một cái gì đó rất gần với vòng tròn sử dụng LineString với nhiều toạ độ gần nhau. Sau đây là ví dụ.

Tôi có thể thay đổi đường Chuỗi để bị gạch ngang hoặc có mũi tên không?

<LineStyle> cho phép bạn thay đổi màu sắc, độ mờ và kích thước của các đường kẻ. Tuy nhiên, tại thời điểm này, KML không hỗ trợ thay đổi loại đường kẻ trong KML.

Làm cách nào để ẩn nhãn của Dấu vị trí?

Nhãn hiển thị bên cạnh Dấu vị trí trong Google Earth dựa trên phần tử <name>. Khi đặt phần tử tỷ lệ trong LabelStyle thành 0, bạn có thể ẩn nhãn đó.

<Style id="hideLabel">
  <LabelStyle>
    <scale>0</scale>
  </LabelStyle>
</Style>
Tại sao tôi gặp lỗi phân tích cú pháp?

Có 2 nguyên nhân chính gây ra lỗi phân tích cú pháp:

  1. Chữ cái viết hoa: KML, giống như tất cả các ngôn ngữ XML, có phân biệt chữ hoa chữ thường. Nó yêu cầu tất cả tên phần tử phải đúng chữ. Ví dụ: <Dấu vị trí> không phải <PLACEmark> <href> không phải <Href> <Link> không phải <lInk>
  2. Thẻ không hoàn chỉnh: Tất cả các phần tử phải bắt đầu và kết thúc bằng cùng một thẻ. Đôi khi mọi người quên đóng thẻ hoặc để lại dấu ngoặc nhọn (< hoặc >)

    Ví dụ:
    <name>Atlanta</name> không chính xác
    <name>Atlanta không chính xác
    <nameAtlanta</name> không chính xác
    <nameAtlanta<name> không chính xác

Làm cách nào để biết tệp KML tôi đã viết có phải là tệp KML hợp lệ hay không?

KML là một ngôn ngữ đánh dấu XML. Bạn có thể xác thực địa chỉ bằng một trong nhiều cách:

  • Bạn có thể tải trình chỉnh sửa XML, chẳng hạn như Oxy hoặc Netbeans và sử dụng các trình này để xác thực tài liệu. Kiểm tra tài liệu của trình chỉnh sửa XML mà bạn muốn. Bạn sẽ cần có Giản đồ KML để xác thực.
  • Bạn có thể kiểm tra mã này bằng một trình xác thực trực tuyến, chẳng hạn như FeedValidator.org hoặc Trình xác thực KML của Galdos, những công cụ này sẽ hiển thị cho bạn mọi lỗi bạn đã tạo và đưa ra một số đề xuất về kiểu.
  • Một số trình chỉnh sửa văn bản cho phép bạn xác thực XML. Ví dụ: bạn có thể sử dụng jEdit để xác thực KML của mình. Xem hướng dẫn này từ nhóm Google Earth Outreach.
Có cách nào để kiểm soát nội dung xuất hiện trên màn hình để hiển thị thêm thông tin chi tiết khi người dùng ở gần bề mặt Trái Đất hơn không?

Thẻ Khu vực dùng để kiểm soát những tính năng bạn đang hiển thị cho người dùng. Các tài nguyên tốt nhất để tìm hiểu thêm thông tin về các khu vực là

Tôi có thể chỉ định các màu/kiểu khác nhau cho các hình học khác nhau trong phần tử MultiGeometry không?

Phần tử MultiGeometry nhóm các hình học lại với nhau trong cùng một phần tử Dấu vị trí. Điều này cho phép hình học chia sẻ cùng một kiểu và xuất hiện dưới dạng một mục trong danh sách, chẳng hạn như ngăn Địa điểm của tôi trong Google Earth.

Kiểu được đặt ở cấp Dấu vị trí, bằng cách sử dụng phần tử styleUrl hoặc phần tử Style. Do đó, hình học riêng trong Dấu vị trí không thể có kiểu khác.

Cách giải quyết thường được sử dụng là tạo một Dấu vị trí riêng cho mỗi hình dạng, cho phép mỗi hình dạng có một kiểu khác nhau. Để ngăn sự gia tăng của các mục trong danh sách, hãy đặt các mục đó vào một Thư mụcListStylelistItemType với checkHideChildren. Ví dụ: trong Google Earth, tính năng này đặt tất cả các Dấu vị trí trong cùng một phần tử thư mục trong Địa điểm của tôi và ngăn người dùng mở nó ra để hiển thị một số lượng lớn các phần tử.


Tôi có thể mở hộp chú giải khi mở tệp KML không?

Tại thời điểm này, KML không hỗ trợ khả năng mở hộp chú giải khi tệp KML mở. Tuy nhiên, nếu sử dụng một neo tính năng, bạn có thể tạo một đường liên kết trong hộp chú giải sẽ mở tệp KML thứ hai hoặc một bong bóng khác.

Tôi có thể tiếp tục mở hộp chú giải khi NetworkLink làm mới không?

Tại thời điểm này, KML không hỗ trợ duy trì trạng thái hộp chú giải khi NetworkLink làm mới.

Tôi có thể xem KML do người dùng của tôi tạo không?

Tại thời điểm này, bạn không thể sử dụng NetworkLink để chụp KML do người dùng tạo trong Google Earth hoặc Maps. Tuy nhiên, bạn có thể sử dụng API JavaScript của Google Maps làm công cụ tạo KML và ghi lại thông tin đó vào máy chủ. Để biết ví dụ, hãy xem GeoDataStore.

Tôi có thể kiểm soát thanh trượt thời gian từ KML không?

Thanh trượt thời gian trong KML sẽ mở ngay khi tệp KML có phần tử TimeStamp hoặc TimeSpan được mở. Thanh trượt thời gian tìm thấy tất cả các phần tử TimeStamp và TimeSpan hiện được chọn và điều chỉnh cho phù hợp với tất cả ngày tháng được biểu thị. KML hiện không cho phép kiểm soát nhiều hơn đối với thanh trượt thời gian, chẳng hạn như đặt thời gian hiện tại đã chọn hoặc chọn khoảng thời gian được biểu thị. Để biết thêm thông tin về cách sử dụng Thời gian, hãy xem bài viết Thời gian và Ảnh động.

Làm cách nào để xây dựng tính tương tác cho KML? Tôi có thể đặt Biểu mẫu vào HTML trong hộp chú giải mô tả KML không?

Tại thời điểm này, KML trong Google Earth chỉ hỗ trợ một số ít HTML mô tả bản trình bày chứ không hỗ trợ tương tác.

Tuy nhiên, bạn có thể tạo biểu mẫu Flash thành KML được sử dụng trong Google Earth. Để thực hiện việc này, hãy nhúng ứng dụng Flash vào HTML trong hộp chú giải mô tả KML.


Tôi có thể tự động tạo KML từ Bảng tính không?

Bạn có thể thực hiện việc này theo một số cách cơ bản.

  • Tự làm việc này theo phương thức lập trình, sử dụng ứng dụng của riêng bạn để phân tích cú pháp một tệp CSV và tạo KML. Ví dụ: hãy xem phần Chuyển đổi tệp CSV sang KML.
  • Sử dụng bảng tính trực tuyến. Ví dụ: nhóm Google Earth Outreach đã tạo một Trình liên kết bảng tính dựa trên Bảng tính Google.
  • Sử dụng một trong những công cụ tạo Excel với KML, chẳng hạn như [link to tek's thread]
  • Sử dụng Google Earth Plus hoặc Pro để tải tệp rồi lưu chúng dưới dạng tệp KML hoặc MRSS
Tại sao tệp KML của tôi không tải xuống chính xác từ máy chủ web?

Máy chủ web phải được cho biết loại tệp mà họ đang cung cấp. Một số trình duyệt, chẳng hạn như Firefox, sẽ đoán thông tin về loại tệp. Các ứng dụng khác, chẳng hạn như Internet Explorer, dựa vào cài đặt Loại MIME của máy chủ web.

Đối với máy chủ Apache, bạn sẽ đưa vào hai dòng sau trong httpd.conf:

AddType application/vnd.google-earth.kml+xml .kml
AddType application/vnd.google-earth.kmz .kmz

Đối với Máy chủ thông tin Internet của Microsoft, bạn sẽ làm theo các hướng dẫn sau:

Phiên bản IIS 6.0:

http://support.microsoft.com/kb/326965?hl=vi

IIS 4.0 và 5.0:

http://www.microsoft.com/HowTo/prodtechnol/windows2000serv/technologies/iis/Duy/Tử Phương/mimeiis.rotate

Nếu quản lý máy chủ web của riêng mình, bạn phải thay đổi cấu hình của riêng mình. Nếu không, hãy liên hệ với dịch vụ lưu trữ trang web và yêu cầu họ thực hiện những thay đổi này.


Tại sao nội dung hộp chú giải của tôi cho biết nội dung đó có thể đang sử dụng các URL hình ảnh có định dạng không chính xác?

Một thay đổi gần đây trong Google Earth sẽ thay đổi cách xử lý các đường liên kết cho nội dung bên trong bong bóng tính năng để giúp hành vi không xác định trước đó trở nên rõ ràng hơn. Do đó, khi nhấp vào một đường liên kết có trong cấu trúc liên kết không hợp lệ, bạn sẽ đưa người dùng đến một trang nêu rõ "Đường liên kết đưa bạn đến đây có thể được định dạng không chính xác. Hãy nhấp vào đường liên kết bên dưới để thử dùng chế độ cũ." Nếu thấy thông báo này, bạn nên thay đổi cấu trúc của nội dung KML/KMZ để đảm bảo khả năng tương thích đầy đủ với các phiên bản Google Earth sau này.

Hãy xem bài viết này để biết thêm thông tin, bao gồm cả thông tin chi tiết về cách sắp xếp lại cấu trúc nội dung MRSS của bạn một cách phù hợp.

Nội dung nào chịu ảnh hưởng của các quy tắc mới trong đường dẫn tương đối?

Hiện tại, thay đổi này chỉ ảnh hưởng đến những đường liên kết (URL) trong nội dung hộp chú giải tính năng. Bao gồm các thẻ <description> và <text> bên trong <BallonStyles>. Tuy nhiên, các phiên bản sau này của Google Earth có thể hướng tới sự nhất quán hơn nữa, vì vậy, bạn nên tránh sử dụng thư mục mẹ làm URL cơ sở cho một đường liên kết tương đối trong nội dung MRSS.


KML trong Địa điểm của tôi trên Google Earth có được gửi đến máy chủ của Google không?

Không. KML do người dùng tạo trong Google Earth hoặc do người dùng tải trong Google Earth không được gửi đến Google. Toàn bộ quá trình xử lý và lưu trữ dữ liệu đó sẽ được thực hiện trên máy cục bộ.

Quay lại đầu trang