swing桌面应用程序内部某些区域的路线图?

时间:2014-07-20 14:31:21

标签: java swing jxbrowser

我尝试创建Java Swing Desktop应用程序,它显示JFrame中某些区域的路线图。 但是PC没有连接到互联网,它将在局域网中。 地图应该就像我们滚动鼠标一样,我们从地图中的高度向下移动。就像缩放区域一样。

我试着通过谷歌找到我得到很多论坛链接,但每个人都在向我展示。

  1. 我必须做网络应用程序。
  2. Google不支持'没有互联网'地图设施。
  3. 我应该使用大量存储在文件夹中的jpgs来显示不同高度的地图fr enter code here,这样看起来就像我们在Google地球应用程序中看到任何地图一样。
  4. 我找到了goworldwind.org但现在还没有明确的理解。

    任何线索/想法我该怎么做?

    您已使用以下程序在jxbrowser中显示地图

    package dummy;
    
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.WindowConstants;
    
    import com.teamdev.jxbrowser.chromium.Browser;
    import com.teamdev.jxbrowser.chromium.BrowserFactory;
    
    public class GoogleMapDemo {
    public static final int MIN_ZOOM = 0;
    public static final int MAX_ZOOM = 21;
    private static int zoomValue = 4;
    
    public static void main(String[] args) {
    final Browser browser = BrowserFactory.create();
    
    JButton zoomInButton = new JButton("Zoom In");
    zoomInButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    if (zoomValue < MAX_ZOOM) {
    browser.executeJavaScript("map.setZoom(" + ++zoomValue + ")");
    }
    }
    });
    
    JButton zoomOutButton = new JButton("Zoom Out");
    zoomOutButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    if (zoomValue > MIN_ZOOM) {
    browser.executeJavaScript("map.setZoom(" + --zoomValue + ")");
    }
    }
    });
    
    JPanel toolBar = new JPanel();
    toolBar.add(zoomInButton);
    toolBar.add(zoomOutButton);
    
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.add(browser.getView().getComponent(), BorderLayout.CENTER);
    frame.add(toolBar, BorderLayout.NORTH);
    frame.setSize(700, 500);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    
    browser.loadURL("/home/StaticMapDemo/map.html");
    //browser.loadURL("http://www.google.com");
        }
    }
    
      

    我有map.html文件

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #map-canvas { height: 100% }
    </style>
    <script type="text/javascript"
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB7J1zsErb9_7jxNu5KU5kIENFObAQEbl0&;sensor=false">
    </script>
    <script type="text/javascript">
    var map;
    function initialize() {
    var mapOptions = {
    center: new google.maps.LatLng(48.209331, 16.381302),
    zoom: 4
    };
    map = new google.maps.Map(document.getElementById("map-canvas"),
    mapOptions);
    }
    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
    </head>
    <body>
    <div id="map-canvas"/>
    </body>
    </html>
    
      

    在运行程序时我在控制台上遇到错误

         

    11:59:16 INFO:OS名称:Linux 11:59:16 INFO:JRE版本:1.7 32位   11:59:16 INFO:JxBrowser build:$ {build.number} 11:59:16信息:   开始IPC ... 11:59:16信息:启动IPC服务器... 11:59:16信息:   启动IPC流程... 11:59:16信息:启动Chromium流程...   11:59:16 INFO:&#39; /lib/i386-linux-gnu/libudev.so.0'库存在:   FALSE 11:59:16 INFO:The   &#39; /tmp/jxbrowser-chromium-31.0.1650.57.8/libudev.so.0'库存在:   FALSE 11:59:16 INFO:在...中寻找libudev.so.x.x.x   &#39; / lib / i386-linux-gnu&#39; ... 11:59:16信息:寻找libudev.so.x.x.x   in&#39; / lib64&#39; ... 11:59:16 INFO:无法找到libudev.so.x.x.x in   &#39; / lib64下&#39;和&#39; / lib / i386-linux-gnu&#39; 11:59:16 INFO:命令行:   /tmp/jxbrowser-chromium-31.0.1650.57.8/jxbrowser-chromium 1101   11:59:16 INFO:Chromium process退出代码127 11:59:16信息:   /tmp/jxbrowser-chromium-31.0.1650.57.8/jxbrowser-chromium:错误的同时   加载共享库:libexpat.so.1:无法打开共享对象   file:没有这样的文件或目录线程中的异常&#34; main&#34;   com.teamdev.jxbrowser.chromium.BrowserException:创建失败   浏览器。在   com.teamdev.jxbrowser.chromium.BrowserFactory.create(未知来源)   在com.teamdev.jxbrowser.chromium.BrowserFactory.create(未知   来源)at   com.teamdev.jxbrowser.chromium.BrowserFactory.create(未知来源)   在dummy.GoogleMapDemo.main(GoogleMapDemo.java:25)引起:   com.teamdev.jxbrowser.chromium.internal.ipc.IPCException:IPC流程   退出。退出代码:127 at   com.teamdev.jxbrowser.chromium.internal.ipc.k.run(未知来源)at at   java.lang.Thread.run(Thread.java:744)11:59:16 INFO:Shutdown IPC ...   线程中的异常&#34;线程-1&#34; java.lang.NullPointerException at   com.teamdev.jxbrowser.chromium.internal.ipc.IPC.b(未知来源)at at   com.teamdev.jxbrowser.chromium.internal.ipc.IPC.shutdown(未知   来源)`at com.teamdev.jxbrowser.chromium.internal.aq.run(Unknown)   来自java.lang.Thread.run(Thread.java:744)

         

    AM我正朝着正确的方向展示摇摆应用中的静态地图   在独立电脑上,如果是,那么请帮助

1 个答案:

答案 0 :(得分:3)

如果我理解正确的问题,那么您正在寻找可在离线应用中使用的世界地图?能够做到这一点是有问题的,因为世界地图非常大,我不认为有一个世界地图,作者将允许您下载整个内容。

但是,如果您只对一张世界地图感到满意,也许这个网站可以提供帮助:http://www.openstreetmap.org/。它们提供了一个开源世界地图,如果您查看 export 选项卡,您可以找到有关如何获取可下载内容供离线使用的信息。

如果您正在寻找具有移动和缩放此地图功能的代码示例,我建议您尝试自己编写并在遇到任何代码特定问题时创建一个新问题。