Дорожная карта какой-то области внутри свинговой настольной программы?

Я пытаюсь создать приложение Java Swing Desktop, которое показывает дорожную карту некоторой области в JFrame. Но компьютер не подключен к Интернету, он будет в локальной сети. Карта должна быть такой, как если бы мы прокручивали мышь, мы спускались с высоты на карте. Как масштабирование области.

Я пытаюсь выяснить с помощью Google, я получаю много ссылок на форуме, но каждая показывает мне.

  1. Я должен сделать веб-приложение.
  2. Google не поддерживает функцию "без интернета".
  3. Я должен использовать много jpgs, которые хранятся в папке для отображения картыenter code hereОм разной высоты, так что это выглядит, когда мы видим любую карту в приложении Google Планета Земля.

Я нашел 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 ИНФОРМАЦИЯ: Имя ОС: Linux 11:59:16 ИНФОРМАЦИЯ: версия JRE: 1.7 32-разрядная 11:59:16 ИНФОРМАЦИЯ: сборка JxBrowser: ${build.number} 11:59:16 ИНФОРМАЦИЯ: Запуск IPC... 11:59:16 ИНФОРМАЦИЯ: Запуск IPC-сервера... 11:59:16 ИНФОРМАЦИЯ: Запуск IPC-процесса... 11:59:16 ИНФОРМАЦИЯ: Запуск процесса Chromium... 11:59:16 ИНФОРМАЦИЯ: Библиотека /lib/i386-linux-gnu/libudev.so.0 существует: ЛОЖЬ 11:59:16 ИНФОРМАЦИЯ: Библиотека /tmp/jxbrowser-chromium-31.0.1650.57.8/libudev.so.0'существует: ЛОЖЬ 11:59:16 ИНФОРМАЦИЯ: Ищем libudev.so.xxx в '/lib/i386-linux-gnu'... 11:59:16 ИНФОРМАЦИЯ: Ищем libudev.so.xxx в '/lib64'... 11:59:16 ИНФОРМАЦИЯ: Не удалось найти libudev.so.xxx в '/ lib64' и '/lib/i386-linux-gnu' 11:59:16 ИНФОРМАЦИЯ: Командная строка: /tmp/jxbrowser-chromium-31.0.1650.57.8/jxbrowser-chromium 1101 11:59:16 ИНФОРМАЦИЯ: Код выхода процесса хрома 127 11:59:16 ИНФОРМАЦИЯ: /tmp/jxbrowser-chromium-31.0.1650.57.8/jxbrowser-chromium: ошибка при загрузке общего ресурса библиотеки: libexpat.so.1: невозможно открыть общий объектный файл: нет такого файла или каталога Исключение в потоке "main" com.teamdev.jxbrowser.chromium.BrowserException: не удалось создать браузер. на com.teamdev.jxbrowser.chromium.BrowserFactory.create(неизвестный источник) на com.teamdev.jxbrowser.chromium.BrowserFactory.create(неизвестный источник) на com.teamdev.jxbrowser.chromium.BrowserFactory.create(неизвестный источник) в конце дня.GoogleMapDemo.main(GoogleMapDemo.java:25) Причина: com.teamdev.jxbrowser.chromium.internal.ipc.IPCException: процесс IPC завершен. Код выхода: 127 на com.teamdev.jxbrowser.chromium.internal.ipc.k.run(неизвестный источник) на java.lang.Thread.run(Thread.java:744) 11:59:16 ИНФОРМАЦИЯ: Завершение работы IPC.. Исключение в потоке "Thread-1" java.lang.NullPointerException на com.teamdev.jxbrowser.chromium.internal.ipc.IPC.b(неизвестный источник) на com.teamdev.jxbrowser.chromium.internal.ipc.IPC.shutdown(Неизвестный источник)` at com.teamdev.jxbrowser.chromium.internal.aq.run(Неизвестный источник) в java.lang.Thread.run (Thread.java:744)

Я иду в правильном направлении, показывая статическую карту в приложении Swing на автономном ПК, если да, то, пожалуйста, помогите

1 ответ

Если я правильно понял вопрос, вы ищете карту мира, которую вы можете использовать в своем приложении в автономном режиме? Возможность сделать это проблематично, потому что карта мира будет очень большой, и я не думаю, что есть карта мира, автор которой позволит вам загрузить весь контент.

Однако, если вы удовлетворены только частью карты мира, возможно, этот веб-сайт мог бы помочь: http://www.openstreetmap.org/. Они предлагают карту мира с открытым исходным кодом, и если вы посмотрите на вкладку экспорта, вы сможете найти информацию о том, как получить загружаемый контент для автономного использования.

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

Другие вопросы по тегам