プロジェクト

全般

プロフィール

« | » 

リビジョン b532e058

高徹 高橋 徹 さんが約9年前に追加

proj4Jライブラリを用いて複数の投影法を指定して地図データを読み込み表示する。

差分を表示:

src/com/torutk/tinymap/TinyMapViewController.java
*/
package com.torutk.tinymap;
import com.torutk.tinymap.TinyMapModel.MapProjection;
import java.io.File;
import java.net.URL;
import java.nio.file.Paths;
import java.util.ResourceBundle;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
......
@FXML
private Label scaleLabel; // 縮尺表示用ラベル
@FXML
private ComboBox projectionComboBox; // 投影法選択コンボボックス
private ComboBox<MapProjection> projectionComboBox; // 投影法選択コンボボックス
@FXML
private Canvas mapCanvas; // 地図描画領域
@FXML
......
return;
}
mapModel = new TinyMapModel(selected);
MapProjection mapProj = projectionComboBox.getValue();
if (mapProj != null) {
mapModel.setProjection(mapProj.projection());
}
try {
mapModel.loadLines();
} catch (TinyMapException ex) {
......
@Override
public void initialize(URL url, ResourceBundle rb) {
// 投影法コンボボックス
ObservableList<MapProjection> list =
FXCollections.observableArrayList(MapProjection.values());
projectionComboBox.getItems().addAll(list);
// 実行環境でのドットピッチを計算
dotPitchInMeter = 1 / Screen.getPrimary().getDpi() * METER_PER_INCH;
// 拡大率の変更に縮尺ラベルの表示を連動

他の形式にエクスポート: Unified diff