Почему это происходит (странность с обработкой и UnfoldingMaps)

rocksNwaves:

В рамках Coursera UCSD Java класса, мы работаем с обработкой и раскладывание карт библиотеки.

Курс предоставляет Вам код стартера, который я пытаюсь расширить. Но я столкнулся с проблемой.

На моем рабочем компьютер, где я делаю большую часть моего обучения, я действительно хорошее приложение началось. Я решил взять его домой к своей жене, чтобы показать ей, клонированием мой GitHub репо на мой домашний ноутбук.

Ни один из librar / JAR файлов не было включены, так что я скачал их непосредственно из обработки и раскладывание загрузит страницу. Результат был кошмаром. Ошибка после ошибки после ошибки. Я предполагаю, что Coursera / UCSD использовал старые версии библиотек, а также новые версии не совместимы. Кажется, дрянной, но независимо от того.

Далее я скачал все файлы JAR из Coursera зрения. Результаты немного лучше, но все еще довольно дурацкий. А именно, когда я создаю 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();
    }
Джордж Profenza:

Самый простой вариант будет использовать устаревшую версию обработки, раскладывание по- прежнему поддерживает как раскладывание 0.9.6 (для обработки 2.2.1) .

Так как вы используете затмение вы можете скомпилировать новую версию может работать для вас. (Я не буду замечать есть несколько обновлений незначительные с прошлого года, но не релиз). Для обновления через затмение вы можете:

  1. получить репо (если вы на системе Unix (Linux / OSX) , вы , возможно , уже gitустановлены: git clone https://github.com/tillnagel/unfolding: Таким образом , вы всегда можете тянуть последние обновления и перестроения легко, в противном случае загрузки Zip, распаковать, и т.д.)
  2. импортировать проект в затмении (через Импортировать существующий проект)
  3. Перетащите build.xml из проекта в Ant View и выбрать цель для компиляции. mainбудет собирать все из них в том числе обработки обертке.

Если вы хотите использовать только командную строку:

  1. Установка Ant (если это уже не в вашей системе) и добавить его в PATHпеременной окружения (например , для проверки echo $PATHна Unix или echo %PATH%на Windows , а также обеспечить папку , в которой муравей живет в списке, если не добавил его)
  2. Клон / скачать репо
  3. запустить муравьев (например , ant unfolding_processingдля создания обработки обертки или только просто ant(который по умолчанию в mainцелевом строительстве все)

Я могу подтвердить вручную компиляции последнюю версию с GitHub работ с 3.4 Обработка Центр землетрясения в Румынии

Я загрузил обработки обертку здесь : Надеюсь , вы можете перетащить файл .jar на верхней части вашего проекта Eclipse.

рекомендация

отhttp://10.200.1.11:23101/article/api/json?id=478616&siteId=1