【发布时间】:2015-12-17 05:25:04
【问题描述】:
在我的 JavaFX 应用程序中,我使用 GMapsFX 进行路线查找和可视化。对于可视化,我只是在 Javascript 中使用超时并延迟在地图上显示标记。我遇到的麻烦是在可视化结束后显示一个对话框(或 js 警报),告诉有关搜索的信息(访问的节点数,我在我的 java 和 js 代码中都有这个可用)。有没有简单的方法来做到这一点?
GMapsFX 包: http://rterp.github.io/GMapsFX/
public void startVisualization() {
LatLongBounds bounds = new LatLongBounds();
List<LatLong> latLongs = new ArrayList<LatLong>();
JavascriptArray jsArray = new JavascriptArray();
manager.hideIntermediateMarkers();
manager.hideDestinationMarker();
// create Markers
for(geography.GeographicPoint point : points) {
LatLong ll = new LatLong(point.getX(), point.getY());
MarkerOptions options = MarkerManager.createDefaultOptions(ll);
Marker newMarker = new Marker(options);
jsArray.push(newMarker);
markerList.add(newMarker);
bounds.extend(ll);
}
// fit map bounds to visualization
manager.getMap().fitBounds(bounds);
// get javascript runtime and execute animation
runtime = JavascriptRuntime.getInstance();
String command = runtime.getFunction("visualizeSearch", manager.getMap(), jsArray);
System.out.println(command);
runtime.execute(command);
// MapApp.showInfoAlert("Nodes visited :" , latLongs.size() +" nodes were visited in the search");
manager.disableVisButton(true);
// manager.disableRouteButtons(false);
}
var delay = 300;
var map, markers;
var markerURL = "http://maps.google.com/mapfiles/kml/paddle/red-diamond-lv.png";
var destURL = "http://maps.google.com/mapfiles/kml/pal2/icon5.png";
function visualizeSearch(mapParam, markersParam) {
markers = markersParam;
map = mapParam;
drop();
}
function displayMarker(marker, timeout, URL) {
window.setTimeout(function() {
marker.setIcon(URL);
marker.setMap(map);
}, timeout);
}
function drop() {
var i;
for(i = 1; i < markers.length - 1; ++i) {
displayMarker(markers[i], i*delay, markerURL);
}
displayMarker(markers[markers.length - 1], i*delay, destURL)
}
【问题讨论】:
标签: javascript java google-maps javafx webview