2009-07-24 29 views
5

Có ai có ví dụ thực tế về các biểu tượng vẽ theo chương trình dưới dạng vectơ trong KML không? Cụ thể, tôi có dữ liệu với độ lớn và góc phương vị tại các tọa độ nhất định và tôi muốn có các biểu tượng (hoặc phần tử đồ họa khác) được tạo dựa trên các giá trị này.Tạo các mũi tên vector có lập trình trong KML

Một số suy nghĩ về làm thế nào tôi có thể tiếp cận nó:

  1. thư mục hình ảnh (một lực lượng cách vũ phu): Thực hiện một đạo diễn hình ảnh của 360 tập tin hình ảnh khác nhau (có thể là hàng loạt xoay một hình ảnh duy nhất) mỗi trỏ trong một phương vị cooresponding. Tôi đã nhìn thấy những thứ như "Excel to KML", nhưng tôi đang tìm kiếm mã mà tôi có thể sử dụng trong một chương trình chứ không phải là một tiện ích web. Số phát hành: Mũi tên không chứa ngữ cảnh độ lớn, do đó sẽ phải là nhãn. Tôi muốn tự động kéo dài mũi tên.

  2. Tạo dòng trong KML: Có thể tạo công thức tạo dòng có xuất xứ tại điểm toạ độ, với độ dài của đường tỷ lệ thuận với đại diện và góc theo phương vị. Sau đó sẽ có thêm hai dòng nữa, có lẽ là 30 độ hoặc kéo dài từ cuối dòng trước đó để làm cho đầu mũi tên. Sự cố: Không phải biểu tượng hình ảnh riêng biệt, vì vậy, không chắc chắn cách thức hoạt động trong KML. Cũng không chắc chắn sẽ dễ dàng như thế nào để tạo ra thuật toán này.

  3. thế hệ hình ảnh riêng: Có lẽ tạo một file PHP có sử dụng ImageMagick hoặc một cái gì đó tương tự để tự động tạo ra một file .png trong một phương pháp tương tự như trên, và sau đó liên kết đến các biểu tượng bằng cách sử dụng URI "domain.tld /imagegen.php?magnitude=magvalue & góc phương vị = azmvalue ". Số phát hành: Vẫn gặp sự cố khi viết thuật toán để tạo hình ảnh.

Vì vậy, câu hỏi: có ai khác đưa ra các giải pháp cho vector theo chương trình (chứ không phải chỉ đơn thuần là mũi tên) thế hệ?

Trả lời

3

Tôi đã thấy điều này được thực hiện (ở Fortran!) Với biến thể tùy chọn 1, nhưng chỉ sử dụng một hình ảnh của mũi tên và đặt kích thước và hướng sử dụng phần tử KML IconStyle.

Bí quyết đầu tiên chuyển đổi vectơ của bạn từ bất kỳ định dạng nào bạn nhập chúng thành tiêu đề (theo độ theo chiều kim đồng hồ từ hướng bắc, từ 0 đến 360 độ) và độ dài vectơ thành hệ số tỷ lệ (dấu phẩy theo ký hiệu thập phân). Bạn cũng cần phải cung cấp cho mỗi vector một tên duy nhất. Sau đó, đối với mỗi vector tạo một đoạn của KML, nói cho vector "my-vector-1" với thang điểm 1,8 và một nhóm của 90,0 (tức là phía đông):

<IconStyle id="my-vector-1"> 
    <scale>1.8</scale> 
    <heading>90.0</heading> 
    <Icon> 
     <href>/path/to/arrow.png</href> 
    </Icon> 
</IconStyle> 

và sau đó để đặt các vector trên Bản đồ tham khảo các IconStyle:

<Placemark> 
    <styleUrl>#my-vector-1</styleUrl> 
    <Point> 
    <coordinates>-10.5,10.8</coordinates> 
    </Point> 

quấn tất cả những gì trong:

<kml><Document> ... </Document></kml> 

và bạn sẽ có dis chơi một loạt các vector.Lấy yếu tố tỷ lệ chính xác có thể mất một số thử nghiệm (và sẽ phụ thuộc vào kích thước của hình ảnh mũi tên của bạn), nhưng cách tiếp cận này sẽ nhanh hơn rất nhiều sau đó tải rất nhiều hình ảnh khác nhau. Nếu có bất kỳ sự giúp đỡ nào, tôi có thể đào ra Fortran để làm điều này ...

+0

không thể lấy hình ảnh vector để xoay bằng cách thay đổi tiêu đề. bất kỳ đề xuất? –

Các vấn đề liên quan