有一个世界地图,要实现的效果是:整个地图是由各个国家或地区拼接在一起,当鼠标移动到某个国家或地区时,地图中的该区域会高亮显示。请各位描述一下实现该功能的基本原理。
我的想法是:
[1]动态绘制一幅世界地图(这应该是一件很复杂的工作吧)。为了绘制该图形,肯定会事先定义各个国家或地区的形状,及其轮廓在图片中的坐标的位置。
[2]根据鼠标在图标中的坐标,判定它处于哪个国家或地区的图形区域中,然后高亮显示这一块。不得不说,我觉得上述思路十分复杂,希望大家谈谈实现这一功能的成熟技术。

解决方案 »

  1.   

    先用 PNG 把各个国家画出来,提供普通和高亮两个图片。
      

  2.   

    先用 PNG 把各个国家画出来,然后抽取出边界,就不用动态绘制了。
      

  3.   

    > 先用 PNG 把各个国家画出来,然后抽取出边界,就不用动态绘制了。
    分别画出各个国家,如何拼接它们呢(要天衣无缝)?
    如何制取边界?
      

  4.   

    要做到你这个效果 要换个思路,画整幅地图 然后吧每个国家相对整个地图都弄一个高亮的复制图,然后就是鼠标移动到那块坐标区 就更换整个地图 看上去就像一个国家给点亮了 鼠标移动的坐标可以参见image的坐标设置
      

  5.   

    > 要做到你这个效果 要换个思路,画整幅地图 然后吧每个国家相对整个地图都弄一个高亮的复制图,
    > 然后就是鼠标移动到那块坐标区 就更换整个地图 看上去就像一个国家给点亮了 
    > 鼠标移动的坐标可以参见image的坐标设置
    高亮的问题相对容易些,关键是如何画出那幅图。
    而且,图片的大小要自适应窗体的大小。
      

  6.   

    很难。我认为楼主的方法不可行。
    1 用swing画地图就是一个不可能的任务,国界这么复杂,得多少个坐标才能实现?
    2 即便画出地图了,判断鼠标当前所在国家更困难,有多少个坐标需要检验?5楼的朋友倒是提出了一个方案,但问题还是你怎么判断鼠标当前所在哪个国家,这个判断太复杂了建议楼主考虑其他解决办法。比如嵌入Flash的地图,用JFlash渲染Flash动画。在flash要实现楼主的目标就太轻松了。可以参考一下https://jflash.dev.java.net/
      

  7.   

    一直没有深入研究swing能否放置flash这个问题。想在此顺便问一句。swing窗口上能否放置flash呢?能放又怎么放呢。楼主海涵。我只看到你的帖然后突然想起这个问题。所以在此冒昧问一句。请海涵。
      

  8.   

    > 建议楼主考虑其他解决办法。比如嵌入Flash的地图,用JFlash渲染Flash动画。
    > 在flash要实现楼主的目标就太轻松了。
    > 可以参考一下https://jflash.dev.java.net/
    这个提示很不错,至少我之前一直不知道还有JFlash这种东东(实际上,就一直没关注过Flash)。