Создание карт Heat для приложения Silverlight Bing Maps - PullRequest
5 голосов
/ 30 июня 2010

В поисках ресурсов столько же, сколько чего угодно. У меня есть хорошее простое приложение Bing Maps на основе Silverlight, которое помещает булавки в карту. Теперь у меня много булавок, и я хотел бы вместо этого создавать тепловые карты на лету. Я пытаюсь найти ресурсы, которые объясняют, как это сделать, но ничего не могу найти.

Итак, есть идеи?

Ответы [ 2 ]

5 голосов
/ 30 июня 2010

Скорее всего, вам нечем заняться.

Быстрый способ создания тепловой карты - это перенастроить канцелярскую кнопку в виде круга, заполненного фоном с градиентом прозрачности, полностью прозрачным по краю.и средняя прозрачность на другом.По мере нарастания кругов цвет будет более интенсивным.

РЕДАКТИРОВАТЬ

http://www.microsoft.com/maps/isdk/silverlight/#MapControlInteractiveSdk.Tutorials.TutorialCustomPushpin

И заменить <m:Pushpin ... /> на

<Ellipse Width="40" Height="40" m:MapLayer.Position="48.8,2.1" m:MapLayer.PositionOrigin="Center">
  <Ellipse.Fill>
    <RadialGradientBrush>
      <GradientStop Color="#7FFF0000" Offset="0"/>
      <GradientStop Offset="1"/>
    </RadialGradientBrush>
      </Ellipse.Fill>
    </Ellipse>
0 голосов
/ 08 августа 2011

Это хорошая идея, и она отлично работает для монохромной тепловой карты. Как сказал Йохан, интенсивность цвета прибавляется, поскольку круги перекрываются. Я добавляю мой из кода. Вот код, который я использовал ...

Ellipse e = new Ellipse() { MaxWidth = 40, MaxHeight = 40 };
        e.Width = 40;
        e.Height = 40;
        e.Fill = new RadialGradientBrush(Color.FromArgb(128, 255, 0, 0), Color.FromArgb(0, 0, 0, 0));

... Мне очень интересно, как расширить это на многоцветную тепловую карту, которая переходит от «холодных» цветов к «горячим». На данный момент я не вижу, как это сделать. В этой статье (http://mapsys.info/44010/heat-mapping-crime-data-with-bing-maps-and-html5-canvas/) есть идея для javascript в браузере, совместимом с HTML5. Я не знаю, как перевести это в Silverlight.

...