Использование MapDotMarkers с JMapViewer

У меня есть два вопроса о JMapViewer:

  • После добавления MapDotMarkers к моей карте, я хочу соединить каждую точку со сводным списком (определенным Pannel иметь некоторый текст, написанный в нем, вероятно, некоторое описание о точке). Как я могу это сделать?

  • Какой метод я должен использовать, чтобы сделать map видно на моем экране?

2 ответа

К сожалению, не существует простого способа добавления сводного списка на карту, но есть способ:

Все решение добавления сводного списка будет основано на создании пользовательского MapMarker. Вам необходимо добавить новый класс, называемый, например, "SummaryMapMarker", который расширяет текущий класс MapMarker. Пожалуйста, проверьте существующий MapMarkerCircle.java, который поставляется с исходным кодом JMapViewer (скачать с открытым исходным кодом JMapViewer). Создайте копию MapMarkerCircle, переименуйте ее во что-то вроде MapMarkerSummary.java и измените ее в соответствии с вашими потребностями. Затем вы можете вывести любую сводку на карту с помощью известного метода рисования, то есть с помощью Graphics g для рисования линий, окружностей, прямоугольников, текста, изображений с использованием g.drawLine, g.drawString, g.drawRect и так далее. Вы можете создать любое пользовательское резюме (любое действительно!). Вкратце, вся идея состоит в том, чтобы иметь возможность перетаскивать на экран все, что вы хотите, но на основе координат пикселя (x, y) экрана. Ниже вставлено для вашей справки. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, если этого недостаточно. Я смог сам создать модную сводку и добавить ее во вьюер карт. Когда класс MapMarkerSummary готов, вы можете добавить его на свою основную панель внутри основного класса, как и добавив маркер DotMap (например, map(). AddMapMarker(new MapMarkerSummary...)).

открытый класс MapMarkerSummary расширяет MapObjectImpl реализует MapMarker {

public void paint(Graphics g, Point position, int radio) {
    // ...
    int size_h = radio;
    int size = 64;
    g.setColor(Color.blue);

    g.draw3DRect(position.x - 5, position.y - 5, 400, 120, true);
    g.drawString("20°C", position.x + size - 10, position.y + 25);
    g.drawString("30°C", position.x + size - 10, position.y + 37);
    g.setColor(Color.gray);
    g.drawLine(position.x + size + 18, position.y - 4, position.x + size + 18 ,        position.y + 112);
}
// ...

}

Вы можете проверить исходный файл Demo.java, загруженный вместе с библиотекой JMapViewer, в которой содержатся ответы на ваши вопросы. Вы можете легко сделать карту видимой в несколько простых линий, создать точку, добавить всплывающую подсказку. Пожалуйста, проверьте исходный файл, упомянутый выше, и дайте мне знать, что вам нужна дополнительная помощь. У вас есть этот файл (Demo.java)?

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