سؤال
لدي قائمة من القيم لكل من خطوط الطول والعرض. أنا أتطلع إلى إنشاء صورة شفافة لخريطة الحرارة للتراكب على خرائط Google. أعلم أن هناك بالفعل حلول من جانب الخادم وحلول تعتمد على الفلاش ، لكنني أريد إنشاء هذا في JavaScript باستخدام علامة القماش.
ومع ذلك ، لا يمكنني العثور على وصف موجز للخوارزمية المستخدمة لتحويل الإحداثيات والقيم إلى خريطة حرارة. هل يمكن لأي شخص تقديم أو ربط بواحد؟
شكرًا.
لا يوجد حل صحيح
نصائح أخرى
تتمثل الفكرة الأساسية في إنشاء شبكة ومشروع كل منسق LNG لتلك الشبكة. أود استخدام مجموعة ثنائية الأبعاد من ints.
سيكون الرمز psuedo:
for each coord
cell = coord projected to grid
increment cell value
end
for 0 to # of passes
for each row
for each col
if grid[row,col] > 0 then
grid[row,col] += 1
increment_adjacent_cells(row, col)
end
end
end
end
لذا ، فإن الفكرة هي أنه كلما ارتفعت قيمة INT ، كلما زادت سخونة تلك الخلية. يجب أن تقوم QUERTREMENT_ADJACENT_CELLS بزيادة القيم في جميع الخلايا الثمانية المجاورة.
لقد حاولت حل هذا في JavaScript باستخدام عنصر القماش ، وهنا نتيجتي الحالية:
لا بد لي من إصلاح المرشح الغوسي ورسم خرائط الألوان ، لأنه لا يعطي نتائج جيدة حاليًا.
انظر إلى هذا المشروع إذا كنت تبحث عن شيء يشبه "خرائط الطقس التلفزيونية":
يمكن أن تكون طريقة أسرع لبناء خريطة حرارة هي استخدام قائمة انتظار:
كود مزيف:
Add an element to queue (first in heatmap(x,y, val))
While (!queue.isEmpty())
{
elem = queue.pop()
queue.push(elem.x + 1, elem.y, val-1)
queue.push(elem.x - 1, elem.y, val-1)
queue.push(elem.x, elem.y + 1, val-1)
queue.push(elem.x, elem.y - 1, val-1)
}
هذا يحفظ على أطنان من التكرارات!