Как нанести маркеры с данными, хранящимися в классе Java, на Карты Google, которые используют JavaScript? - PullRequest
1 голос
/ 04 июня 2019

Я хочу нанести несколько маркеров на свою карту Google. Я создаю настольное приложение JavaFX, которое включает в себя карту с несколькими маркерами, нанесенными на нее. Проблема, которую я получаю, состоит в том, как отправить строки из Java в JavaScript? Строки - это долготы и широты нескольких адресов.

Моим первым решением было создание файла Json, который содержался локально, однако это неэффективное решение, так как это приложение будет использоваться на нескольких компьютерах, поэтому использование локального файла не будет работать. Сейчас я пытаюсь использовать WebEngines executeScript, но я не на 100% уверен в том, как взять эти строки и поместить их в javascript для карт Google с помощью этого метода.

Это мой код Java:

private void latLong(List<ResponseInfo> latLongs) {

    for (ResponseInfo latlong : latLongs) {

    WebEngine webEngine = new WebEngine();
     webEngine.executeScript("" +
        "window.lat = " + latlong.getLatitude() + ";" +
        "window.lon = " +      latlong.getLongitude() + ";" +
           "document.markLocations(window.lat, window.lon);");

    }
}

Это мой код JS:

function initialize() {
var center = new google.maps.LatLng(51.524077, -0.079357);
var mapOptions = {
    zoom : 14,
    center : center,
    mapTypeId : google.maps.MapTypeId.ROAD,
    mapTypeControl : false,
    streetViewControl : false,
    fullscreenControl : false,
    clickableIcons : false,
    styles : mapStyle
};

 var map = new google.maps.Map(document.getElementById('map'), mapOptions);
}

document.markLocations = function(x, y) {
var latLng = new google.maps.LatLng(x, y);
var marker = new google.maps.Marker({
    position : latLng,
    icon : icons[feature.type].icon,
    map : map
});

}

Я ожидаю, что на карте будет отображаться несколько маркеров, которые могут варьироваться от 1 до 1000. В настоящее время то, что я попробовал, показывает мне эту ошибку 'Исключение в потоке "Поток приложения JavaFX" netscape.javascript.JSException: TypeError: document.markLocations не является функцией.'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...