Trang

Thứ Ba, 29 tháng 5, 2012

Sử dụng ký hiệu trong Pmapper


Nhắc đến bản đồ là phải nói đến ký hiệu, bởi nó là ngôn ngữ của bản đồ. Do đó, khi chúng ta muốn xây dựng bản đồ trong Pmapper thì đòi hỏi phải có hệ thống ký hiệu đủ để thể hiện chủ đề mà chúng ta muốn thể hiện. Trong pmapper nói riêng hay trong Mapserver nói chung, việc định nghĩa một ký hiệu có thể thực hiện trong mapfile hoặc trong file chứa ký hiệu riêng. Trong mapfile, chúng ta có thể trực tiếp định nghĩa ký hiệu trên đó bằng các câu lệnh, còn trong file riêng chúng ta định nghĩa sẵn các câu lệnh và khai báo file đó trong mapfile.
Như chúng ta đã biết, trong mỗi LAYER đều phải khai báo loại ký hiệu là điểm, đường hay vùng. Dựa trên loại đó, pmapper sẽ lấy ra loại ký hiệu phù hợp để hiển thị cho từng LAYER. Tuy nhiên, trong từng loại đòi hỏi phải có những hình dạng ký hiệu khác nhau. Chẳng hạn, đối với điểm chúng ta có thể sử dụng điểm hình vuông, điểm hình tròn, hình tượng trưng,…Do đó đòi hỏi phải định nghĩa ký hiệu được sử dụng trong từng loại. Định nghĩa này được thực hiện trong phần SYMBOL của mapfile. Một ví dụ đơn giản, có thể tìm thấy trong file demo của pmapper là sử dụng điểm hình tròn để thể hiện điểm. Chúng ta khai báo như sau trong mapfile :
Symbol
  Name 'circle'
  Type ELLIPSE
  Filled TRUE
  Points
    1 1
  END
END
Và trong phần CLASS trong lớp điểm, khai báo ký hiệu là ký hiệu vừa định nghĩa, như sau :
SYMBOL ‘circle’
Và kết quả, chúng ta sẽ có các điểm thể hiện bằng các hình tròn.
Chúng ta có thể dễ dàng thay đổi kích thước, màu sắc của ký hiệu bằng cách khai báo bằng cách từ khóa : SIZE, COLOR, OUTLINECOLOR hay WIDTH. Việc này giúp chúng ta có được nhiều thuận lợi khi biên tập bản đồ, chẳng hạn thể hiện chợ có quy mô nhỏ bằng điểm có kích thước nhỏ hơn chợ có quy mô lớn.
Nói sơ qua về phần định nghĩa ký hiệu trong SYMBOL trong ví dụ ở trên. Phần NAME thì dễ rồi, đó là tên của ký hiệu, nó sẽ được sử dụng để gọi ký hiệu ra khi cần. Phần TYPE khai báo loại ký hiệu, trong ví dụ trên nó có loại là ellipse. Phần POINTS khai báo các điểm để tạo thành ký hiệu, trong ví dụ chúng ta khai báo loại lả ellipse nên trong POINTS này chỉ cần khai báo (1,1) lả đủ. Đó là bán kính theo trục x và trục y trên hệ trục tọa độ phẳng. Khi 2 bán kính đó bằng nhau thì đó là vòng tròn. Phần FILLED khai báo nó là vòng tròn hay hình tròn, nếu TRUE là hình tròn.
Tương tự, chúng ta có thể định nghĩa ký hiệu là hình vuông như sau :
Symbol
  Name 'square'
  Type VECTOR
  Filled TRUE
  Points
    0 1
    0 0
    1 0
    1 1
    0 1
  END
END
Để dễ hình dung phần khai báo trong POINTS, chúng ta có thể vẽ ra hệ trục tọa độ phẳng và vẽ các điểm đó lên. Một số loại có thể khai báo trong phần TYPE là : ellipse, hatch, pixmap, simple, truetype, vector.
Ví dụ, bây giờ tôi muốn thể hiện các điểm bằng các hình ngôi sao màu đỏ. Khi đó, trong mapfile hoặc file chứa ký hiệu sẽ khai báo là :
SYMBOL
  NAME 'ngoisao'
  TYPE VECTOR
  POINTS
    0 0.375
    0.35 0.375
    0.5 0
    0.65 0.375
    1 0.375
    0.75 0.625
    0.875 1
    0.5 0.75
    0.125 1
    0.25 0.625
    0 0.375
  END
  FILLED TRUE
END
Và khai báo trong lớp điểm là :
SYMBOL ‘ngoisao’
COLOR 255 0 0
Kết quả khi hiển thị lên Pmapper như sau :
Một loại khác của ký hiệu là sử dụng truetype font. Khi khai báo loại ký hiệu này, chúng ta sẽ khai báo như sau
SYMBOL
  NAME "Font1"
  TYPE TRUETYPE
  FONT "FreeSerif"
  CHARACTER "A"
END
Trong đó, NAME là tên chúng ta tự đặt để tiện cho việc gọi font sau này. TYPE là loại ký hiệu, ở đây loại Truetype. FONT là khai báo kiểu chữ dùng để viết chữ chúng ta cần viết. CHARACTER khai báo chữ mà chúng ta muốn dùng làm ký hiệu, ở đây khai báo bằng mã lấy trong ASCII Table. Ví dụ muốn ký hiệu bằng chữ A chúng ta khai báo mã của chữ A là A. Khi thể hiện trên Pmapper, chúng ta có kết quả sau :
Chúng ta có thể lấy mã của các chữ trong ASCII Table sau :
Loại cuối cùng được đề cập đến là ký hiệu loại pixmap. Loại này sử dụng ảnh raster nhỏ để làm ký hiệu. Khai báo ký hiệu dạng pixmap như sau :
SYMBOL
  NAME ‘star’
  TYPE PIXMAP
  IMAGE ‘stern.png’
END
Ở ví dụ trên chúng ta sử dụng một ảnh ngôi sao để làm ký hiệu cho điểm. Khai báo rất đơn giản như bên trên, kết quả dễ dàng trên Pmapper như sau :
Loại này giúp cho việc thể hiện ký hiệu trở nên linh hoạt hơn bởi một số ký hiệu phức tạp chúng ta có thể sử dụng ảnh. Để tạo ra các ký hiệu này chúng ta có thể sử dụng Paint hoặc các phần mềm tạo icon. Đối với Paint, để định nghĩa kích thước của ký hiệu, vào Image\Attributes…Tại đây chúng ta có thể định nghĩa kích thước ký hiệu trong ô width và height. Sau đó, chúng ta có thể tự do vẽ ký hiệu vào.
Một số trường hợp, chúng ta phải kết hợp các ký hiệu thành 1 ký hiệu. Để khai báo loại ký hiệu kết hợp này chúng ta khai báo các ký hiệu đơn trong file ký hiệu giống như ở phần trên. Sau đó, trong phần LAYER cần thể hiện ký hiệu, chúng ta khai báo thêm phần STYLE trong CLASS như sau :
 CLASS
   NAME "Diem"
   STYLE
    SYMBOL 'square'
    COLOR 0 0 255
    SIZE 20
   END #Style
   STYLE
    SYMBOL 'ngoisao'
    COLOR 125 125 125
    SIZE 18
   END #Style
  END # Class
Vậy là bây giờ chúng ta có thể tùy ý thiết kế ký hiệu cho web bản đồ của mình. Vấn đề ở đây có thể hơi mất thời gian 1 chút. ^_^
NNS

Không có nhận xét nào:

Đăng nhận xét