コーセラUCSDのJavaクラスの一環として、我々は処理の作業やマップのライブラリをアンフォールディングされています。
もちろん、私は拡大しようとしているスターターコード、を提供します。しかし、私はこの問題に遭遇しました。
私は私の勉強の大半を行う私の仕事用のコンピュータ上で、私は本当に素敵なアプリが開始されています。私は私の自宅のラップトップに私のgithubのレポをクローニングして、彼女を示すために、私の妻に家に持ち帰ることにしました。
私は処理とのアンフォールディングダウンロードページから直接ダウンロードしてlibrar / JARファイルのいずれもが、含まれていませんでした。結果はNIGHTMAREました。エラーの後にエラーが発生した後にエラーが発生しました。私はコーセラ/ UCSDは、ライブラリの古いバージョンを使用して、新しいバージョンは後方互換性がありませんと仮定します。安っぽいようだが、何でも。
次に、私はコーセラの視界からすべてのJARファイルをダウンロードしました。結果は少し優れているが、物事はまだかなり奇抜です。私が作成したときつまり、UnfoldingMap()
オブジェクトを、ウインドウ内の位置だけでなく、サイズのパラメータは絶対に何もしません。
1.)私は、処理の使用size()
含むウィンドウ上または下のサイズにメソッドを、それがマップオブジェクトを上下にスケーリングします。それは全くのサイズと位置の引数を無視しますUnfoldingMap()
。
2.)マップオブジェクトは常にウィンドウの左下隅にプッシュされて、いない位置のためのそれの引数を問題では。
3.)灰色のbackground()
私が選択したマップを周りに示していますが、バックグラウンド自体はその後、大きな黒いフィールドに囲まれていることでもスケールsize()
パラメータ。
ここではいくつかのコードは次のとおりです。
package module3;
//Java utilities libraries
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
//Processing library
import processing.core.PApplet;
//Unfolding libraries
import de.fhpotsdam.unfolding.UnfoldingMap;
import de.fhpotsdam.unfolding.marker.Marker;
import de.fhpotsdam.unfolding.data.PointFeature;
import de.fhpotsdam.unfolding.marker.SimplePointMarker;
import de.fhpotsdam.unfolding.providers.Google;
import de.fhpotsdam.unfolding.providers.MBTilesMapProvider;
import de.fhpotsdam.unfolding.utils.MapUtils;
//Parsing library
import parsing.ParseFeed;
public class EarthquakeCityMap extends PApplet {
// Less than this threshold is a light earthquake
public static final float THRESHOLD_MODERATE = 5;
// Less than this threshold is a minor earthquake
public static final float THRESHOLD_LIGHT = 4;
// This is where to find the local tiles, for working without an
// Internet connection
public static String mbTilesString = "blankLight-1-3.mbtiles";
// The map
private UnfoldingMap map;
//feed with magnitude 2.5+ Earthquakes
private String earthquakesURLweek = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.atom";
private String earthquakesURLday = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.atom";
public void setup() {
size(400, 400, "processing.opengl.PGraphics3D");
background(99);
map = new UnfoldingMap(this, 50, 50, 1100, 700, new Google.GoogleMapProvider());
map.zoomToLevel(2);
MapUtils.createDefaultEventDispatcher(this, map);
//List of markers to be added to map
List<Marker> markers = new ArrayList<Marker>();
//Use parser to collect properties for each earthquake
//PointFeatures have a getLocation method
List<PointFeature> earthquakes = ParseFeed.parseEarthquake(this, earthquakesURLweek);
// for each earthqauke feature, create a custom marker and add it
// to the list.
for (PointFeature quake : earthquakes){
Marker quakeMark = createMarker(quake);
markers.add(quakeMark);
Map<String, Object> properties = quakeMark.getProperties();
}
// Add the markers to the map so that they are displayed
map.addMarkers(markers);
}
/**
* A helper method to style markers based on features (magnitude, depth,
* etc) of an earthquake.
* @param feature A PointFeature object representing a single earthquake.
* @return
*/
private SimplePointMarker createMarker(PointFeature feature){
// Create a new SimplePointMarker at the location given by the PointFeature
SimplePointMarker marker = new SimplePointMarker(feature.getLocation(), feature.getProperties());
Object magObj = feature.getProperty("magnitude");
Object ageObj = marker.getProperty("days ellapsed");
float mag = Float.parseFloat(magObj.toString());
int age = (int) ageObj;
//Set processing color and alpha data, for setting marker colors
//below.
int alpha = 255 - (age * 255 / 7);
int yellow = color(255, 255, 0, alpha);
int red = color(255, 0, 0, alpha);
int green = color(0, 255, 0, alpha);
// Style markers based on earthquake magnitude
if (mag < THRESHOLD_LIGHT){
marker.setColor(green);
}
if (mag >= THRESHOLD_LIGHT && mag < THRESHOLD_MODERATE){
marker.setColor(yellow);
}
if (mag >= THRESHOLD_MODERATE){
marker.setColor(red);
}
//set radius of marker based on quake magnitude
float radius = (float) (mag * 3.5);
marker.setStrokeColor(color(50,15));
marker.setRadius(radius);
return marker;
}
public void draw() {
map.draw();
addKey();
}
最も簡単なオプションは次のようにまだサポートをアンフォールディングすることを古いバージョンの処理を使用することになる(処理2.2.1用)0.9.6をアンフォールディング。
Eclipseを使っているので、あなたが実際にあなたのための新しいバージョンのかもしれない作業をコンパイルすることができます。(私はいくつか存在に気づいていないよマイナーアップデート、昨年からは、ないのリリース)。あなたができる日食を経由して更新するには:
- レポ取得(UNIXシステム(Linuxの/ OSX)にしている場合は、あなたが既に持っているかもしれません
git
インストール:git clone https://github.com/tillnagel/unfolding
:あなたは、常に最新の更新プログラムを引っ張ると簡単に再構築することができ、このように、それ以外のzipファイルをダウンロードし、解凍など) - (インポート既存のプロジェクトを経由して)日食にプロジェクトをインポート
- ドラッグへのプロジェクトからのbuild.xml のAntビューとは、コンパイルするターゲットを選択します。
main
処理ラッパーを含む、それらのすべてをコンパイルします。
あなただけのコマンドラインを使用したい場合:
- インストールAntの(つまり、あなたのシステムにまだない場合)、あなたにそれを追加し
PATH
、環境変数(たとえば、チェックするecho $PATH
のUnixやecho %PATH%
Windows上で、それを追加していない場合は、アリの生活が表示されているフォルダを確認してください) - クローン/レポをダウンロード
- アリを実行する(例えば
ant unfolding_processing
処理を構築するためのラッパーのみ、または単にant
(これはデフォルトmain
のターゲットの構築すべて)
私は処理3.4とgithubの作品から最新バージョンをコンパイルし、手動で確認することができます
私は、処理ラッパーをアップロードしたここ:うまくいけば、あなたのEclipseプロジェクトの上に.jarファイルをドラッグすることができます。