Tháng 12 năm 2010
Mục tiêu
Hướng dẫn này giới thiệu cho bạn một số phần tử KML mới được giới thiệu trong Google Earth 6.0 và cách sử dụng các phần tử này để tạo bản đồ phức tạp cho LineStyle. Các phần tử mà bạn sẽ tìm hiểu là <gx:physicalWidth>, <gx:outerColor>, <gx:outerWidth> và <gx:drawOrder>.
Giới thiệu
Trước khi Google Earth 6.0 ra mắt, bạn bị hạn chế khả năng xác định các kiểu bản đồ phức tạp cho LineString. Ví dụ: nếu muốn tạo kiểu cho một con đường, trong đó tâm của LineString có màu khác với các cạnh, bạn sẽ phải vẽ hai LineString riêng biệt với chiều rộng khác nhau, và ngay cả khi đó, bạn cũng không thể đảm bảo thứ tự mà chúng sẽ vẽ.
Các ví dụ sau đây hướng dẫn cách tạo một con đường. Trước tiên, đường sẽ có kiểu dáng đơn giản. Sau đó, bạn sẽ thêm một vỉa hè. Cuối cùng, bạn sẽ thêm một cầu vượt đường cao tốc.
Đường cơ bản
Phần tử đầu tiên mà bạn quan tâm là <gx:physicalWidth>, cho phép bạn đặt chiều rộng của LineString theo mét, thay vì theo pixel. Trong ví dụ về đường, điều này có nghĩa là bạn có thể đặt chiều rộng của đường sao cho phù hợp với hình ảnh cơ bản, bất kể người dùng cuối xem đường ở độ cao nào. Khi bạn tăng độ cao, đường sẽ giảm số lượng pixel, tạo ra hiệu ứng mà bạn chỉ có thể nhìn thấy LineString khi phóng to gần. Điều này có thể hữu ích nếu bạn không muốn nhấn mạnh các con đường nhỏ từ xa hoặc muốn đảm bảo bản đồ của bạn luôn khớp với hình ảnh vệ tinh.
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>12</gx:physicalWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> </Document> </kml>
Khi bạn thay đổi độ cao của camera trong Google Earth, hãy lưu ý cách độ cao này luôn khớp với chiều rộng của hình ảnh cơ bản.
Thêm vỉa hè
Bây giờ, bạn có thể thêm các phần tử <gx:outerColor> và <gx:outerWidth> bằng cách thêm màu xanh lục nhạt vào các cạnh của đường để biểu thị vỉa hè. Đặt 25% tổng số pixel của đường thành màu xám nhạt.
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street_sidewalk"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>12</gx:physicalWidth> <gx:outerColor>ff55ff55</gx:outerColor> <gx:outerWidth>0.25</gx:outerWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street_sidewalk</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> </Document> </kml>
Vì chiều rộng của đường được đặt là 12 mét, nên giá trị 0,25 cho outerWidth có nghĩa là 3 mét chiều rộng đó sẽ được đặt thành màu xanh lục nhạt hơn (khoảng 1,5 mét ở mỗi bên đường).
Cầu vượt đường cao tốc
Giờ thì bạn đã có một con đường cơ bản, đã đến lúc giải quyết một cầu vượt trên đường cao tốc. Đường này sẽ có màu cam nhạt với đường trung tuyến màu cam đậm hơn. Điểm bổ sung chính ở đây là thêm <gx:drawOrder> bằng 1 (mặc định là 0) vào <LineSring> để đảm bảo đường cao tốc sẽ được hiển thị ở trên cùng của đường. Nếu đang xây dựng một nút giao thông phức tạp hơn (hoặc bất kỳ bản đồ nào yêu cầu nhiều hơn hai LineString chồng lên nhau), bạn chỉ cần thêm một giá trị cao hơn vào <gx:drawOrder> cho bất kỳ LineString nào bạn muốn hiển thị ở trên cùng.
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street_sidewalk"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>10</gx:physicalWidth> <gx:outerColor>ff55ff55</gx:outerColor> <gx:outerWidth>0.25</gx:outerWidth> </LineStyle> </Style> <Style id="highway"> <LineStyle> <color>cc1447ff</color> <gx:physicalWidth>20</gx:physicalWidth> <gx:outerColor>cc1473ff</gx:outerColor> <gx:outerWidth>0.75</gx:outerWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street_sidewalk</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> <Placemark> <styleUrl>#highway</styleUrl> <LineString> <gx:drawOrder>1</gx:drawOrder> <coordinates> -122.2442692500139,37.43634904345254,0 -122.2415928723012,37.43416417520744,0 </coordinates> </LineString> </Placemark> </Document> </kml>
Tiếp theo là gì?
Khả năng mô tả một LineString duy nhất bằng nhiều màu sắc, kết hợp với khả năng kiểm soát thứ tự kết xuất cho phép bạn tạo bản đồ đường phức tạp mà trước đây không thể thực hiện được. Dù bạn đang xây dựng một cầu vượt trên đường cao tốc hay một dự án nghệ thuật trừu tượng, hãy thoả sức sáng tạo với những quy tắc tạo kiểu này!