سؤال

لدي قائمة من القيم لكل من خطوط الطول والعرض. أنا أتطلع إلى إنشاء صورة شفافة لخريطة الحرارة للتراكب على خرائط 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 باستخدام عنصر القماش ، وهنا نتيجتي الحالية:

http://gist.github.com/346165

لا بد لي من إصلاح المرشح الغوسي ورسم خرائط الألوان ، لأنه لا يعطي نتائج جيدة حاليًا.

انظر إلى هذا المشروع إذا كنت تبحث عن شيء يشبه "خرائط الطقس التلفزيونية":

https://github.com/optimisme/javascript-temperatremap

يمكن أن تكون طريقة أسرع لبناء خريطة حرارة هي استخدام قائمة انتظار:

كود مزيف:

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)
}

هذا يحفظ على أطنان من التكرارات!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top