Обработка разворачивающихся карт для каждого маркера - PullRequest
0 голосов
/ 26 января 2019

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

Уже пытался использовать буфер, но я не уверен, что мне теперь делать.

Мой основной класс

import de.fhpotsdam.unfolding.*;
import de.fhpotsdam.unfolding.geo.*;
import de.fhpotsdam.unfolding.utils.*;
import de.fhpotsdam.unfolding.marker.*;

UnfoldingMap map;


import java.util.Map;    // import java hashmaps

// declare country hashmaps
// key // value
HashMap<String, Country> countries = new HashMap<String, Country>();
//PGraphics buffer;
int countryNumber;
Button country;
public void setup() {
  size(800, 600, P2D);
  smooth();  

  //buffer = createGraphics(800, 600);
  map = new UnfoldingMap(this);
  map.setTweening(true);
  map.zoomToLevel(3);

  MapUtils.createDefaultEventDispatcher(this, map);

  String[] lines = loadStrings("test.csv");  //read file and save lines in a string array

  countryNumber = lines.length; // how many lines
  println(countryNumber);

  for (int i=0; i<countryNumber; i++) { //all csv lines

    String line = lines[i];   /// get data from line. Ex: "Portugal,10,91"

    String[] elements = split(line, ","); //separate line by ','

    String name = elements[0]; // get country name
    float lat = parseInt(elements[20]); // lat
    float lon = parseInt(elements[21]); // lon
    PImage flagIcon;

    flagIcon = loadImage(elements[22]); //get image flag name

    Country P = new Country(name, lat, lon, flagIcon); 


    Location mapMarker = new Location(lat,lon);
    // Create point markers for locations
    SimplePointMarker eachMapMarker = new 
    SimplePointMarker(mapMarker);

    // Add markers to the map
    map.addMarkers(eachMapMarker);
    paises.put(nome, P );
  }
}



public void draw() {

  background(255);

  map.draw();    // draw map
  //image(buffer, 200, 50);
  for (Map.Entry p : Countries.entrySet() ) {    // get countries hashmap
    Country country = (Country) p.getValue();
    country.drawInfo();
    country.drawCoor();
    country.drawIcon();
  }
}

Моя страна класс

//my country class

class Country { 

  String name;
  float lat;
  float lon;
  int posX, posY;
  PImage flagIcon;

  Pais (String n, float la, float lo, PImage ic) {
    name = n;
    lat = la;
    lon = lo;
    flagIcon = ic;
  }

  void drawIcon() {
    image(flagIcon,lat,lon,16,16);
  }

  void drawInfo() {
    Location mapLocal = new Location(lat, lon);

    ScreenPosition mapPos = map.getScreenPosition(mapLocal);

    float scale = map.getZoom();

    // if pointer is near a country
    boolean onOver = false;
    if (dist(mouseX, mouseY, mapPos.x, mapPos.y)<2*scale) {
      onOver = true;
    }



    if (onOver) {
      noStroke();
      //fill(255,255,255,255);
      //rect(mouseX+18, mouseY-20, 120, 50);
      fill(0);
      text(name + "\nLat: " + lat + "\nLon: " + lon , mouseX+25, mouseY-5);
    }
  }

  void drawCoor() {
   //println(coordinates);

    fill(0);
    text("coordinates: " + mouseX + " " + mouseY, 650,10); 
  }
}

Ссылки на изображения хранятся на моем CSV

Это то, что я получаю, и, как я вижу, мои изображения не синхронизируются с моим временем. Кто-нибудь может мне помочь?

...