Tạo gạch cho lớp phủ google maps


8

Tôi đang cố gắng hiển thị một số thông tin trên Google Maps dưới dạng lớp phủ vòng tròn mờ. Vấn đề là một số vòng tròn trùng nhau, dẫn đến tăng độ mờ và pha trộn màu nếu các vòng tròn có màu khác nhau. Tôi đã tìm kiếm rất nhiều và đi đến kết luận rằng không có cách nào có thể để tránh pha trộn màu sắc.

Giải pháp thay thế mà tôi được đề xuất là tạo các ô png trên máy chủ của tôi và hiển thị chúng hoặc quyết định màu của từng pixel ở phía máy chủ và sử dụng canvas HTML5 và hiển thị từng pixel. Tôi đã tìm kiếm rất nhiều nhưng không thể tìm ra cách nào để làm như vậy. Sẽ rất hữu ích nếu ai đó có thể chỉ cho tôi đi đúng hướng.

Tôi đang viết lại câu hỏi của tôi dưới đây để rõ ràng và súc tích hơn

Tôi phải hiển thị các vòng tròn trên bản đồ. Bán kính và màu sắc của các vòng tròn này mô tả khu vực ảnh hưởng và loại ảnh hưởng của chúng. Các vòng tròn này mờ nhưng chồng chéo nên chỉ có thể nhìn thấy vòng trên cùng mà không có bất kỳ sự pha trộn nào. Làm cách nào để tạo gạch cho thông tin này?

Có lẽ tôi không rõ ràng vì vậy tôi đang thêm chi tiết.

Kiểm tra jsFiddle này http://jsfiddle.net/Dv4UT/ .Có hai vòng tròn chồng lên nhau màu xanh lá cây (z Index: 10) và đỏ (z Index: 11) với độ mờ .5. Phần chồng chéo là hỗn hợp của màu đỏ và màu xanh lá cây trong khi tôi muốn phần chồng lấp có màu trên cùng với độ mờ tương tự, ví dụ: màu đỏ. Nếu điều này có thể sử dụng lớp phủ bản đồ thì sẽ rất tuyệt. Tôi nghĩ có thể sử dụng canvas HTML5 nhưng nó không hoạt động trên phiên bản IE cũ hơn. cuối cùng tôi sẽ phải quay lại tạo gạch ở phía máy chủ và sử dụng chúng làm lớp phủ. Tôi không có ý tưởng nào về việc tạo gạch và sẽ rất hữu ích, nếu ai đó có thể chỉ cho tôi đi đúng hướng. Tôi đang đính kèm ảnh chụp màn hình từ bản đồ đi lại, kiểm tra xem các vòng tròn bên dưới đang bị ghi đè bởi những người đứng đầu. Tôi cần loại hình ảnh tương tự.

hình ảnh ví dụ


Bạn đã thử sử dụng CartoDb chưa? www.cartodb.com
EZMapdesign

Đã kiểm tra nó. Nó sẽ không giải quyết vấn đề của tôi. Tôi không thể tìm thấy bất kỳ cách nào để tạo gạch.
arun chaudhary

Vì vậy, các vòng tròn với độ mờ sẽ luôn luôn pha trộn màu sắc? Bạn có thể kiểm soát độ mờ cho mỗi vòng tròn - jsfiddle.net/8GaZ5/1 gmaps v3
Mapperz

Cảm ơn Mappers đã dành thời gian cho tôi. Tôi nghĩ rằng tôi không rõ ràng vì vậy tôi đã thêm chi tiết cho câu hỏi . Hãy kiểm tra jsfiddle jsfiddle.net/Dv4UT này . Phần chồng lấp có màu nâu và tôi đang cố gắng tránh chính xác điều đó. Tôi muốn phần chồng lấp có màu của hình tròn trên đỉnh đó, ví dụ: màu đỏ trong trường hợp này.
arun chaudhary

Câu trả lời:


2

tạo lớp phủ ngoại tuyến của bạn (nhưng động) bằng ngôn ngữ lập trình bạn chọn. nó sẽ hơi phức tạp nhưng mã giả cơ bản sẽ là:

browser javascript send request url for overlay
acquire gis bounds for tile server side
gather all points and sort by their relevance
create image(transparent)
for each point: (least relevant first)
   draw new circle (will 'overwrite' any overlap areas)
stream image to browser
display image as overlay

tùy thuộc vào diện tích của bạn lớn như thế nào, bạn có thể tạo raster offline và sau đó phục vụ nó với mapserver hoặc chương trình phân phối bản đồ miễn phí khác. tạo raster của riêng bạn sẽ đảm bảo màn hình hiển thị theo cách bạn muốn.


1

Tôi sẽ làm như sau:

  1. Giữ độ mờ đục của các vòng tròn thực sự thấp (vì vậy vấn đề trộn không trở thành xu hướng)
  2. Khi di chuột, thay đổi độ mờ để vượt qua vòng tròn giao nhau

Bằng cách này, tôi sẽ có thể hiển thị dữ liệu mà không có bất kỳ sự pha trộn màu gây ra chính nào và làm nổi bật một vòng tròn cụ thể khi người dùng di chuyển trên đó.


Điều đó sẽ không hoạt động. Trước tiên, ở một số nơi có tới 10 vòng tròn có thể giao nhau. Các vòng tròn thứ hai có thể có các màu khác nhau, ví dụ: vòng tròn màu xanh lá cây chồng lên vòng tròn màu đỏ. Trong những trường hợp như vậy, tôi sẽ có được sự pha trộn của các màu chồng chéo trong khi tôi chỉ nên lấy màu trên cùng .Mouse hover sẽ không giải quyết được gì vì việc trộn chỉ xảy ra ở phần chồng chéo chứ không phải toàn bộ vòng tròn.
arun chaudhary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.