RE: [OpenMap Users] How do I display a png on the map?

From: Guillaume Bastianelli <gbastianelli_at_hotmail.fr>
Date: Mon, 6 Oct 2008 09:35:49 +0200

this code is not perfect but it works. It uses JAI for displaying png. I use it in one of my application but with some changes it could help you.
 
package png;
import javax.media.jai.JAI;import javax.media.jai.PlanarImage;
import com.bbn.openmap.omGraphics.OMScalingRaster;import com.bbn.openmap.util.Debug;
public class PNGRaster extends OMScalingRaster {
 /** * */ private static final long serialVersionUID = 1L;
 public PNGRaster() { super(); }
 public static PNGRaster createRaster(String FileName, float centerLat, float centerLon, int zoom) {
  double[] coordonnee = new double[4]; PlanarImage source = null;
  if (FileName != null) { try { source = JAI.create("fileload", FileName); coordonnee = calculCoord(centerLat, centerLon, zoom); } catch (Exception e) { Debug.output("CSVTIPI: file: " + FileName + " not found"); e.printStackTrace(); } } return new PNGRaster((float) coordonnee[0], (float) coordonnee[1], (float) coordonnee[2], (float) coordonnee[3], source); }
 public PNGRaster(float lat, float lon, float lat2, float lon2, PlanarImage im) {
  super(lat, lon, lat2, lon2, im.getAsBufferedImage()); }
 static double[] calculCoord(float centerLat, float centerLon, int zoom) { int puissance = 0; double facteur = 1; double[] coordonnees = new double[4];
  if ((zoom > 15) || (zoom < 0)) { System.out.println("Le zoom n'est pas correcte"); coordonnees[0] = 70; coordonnees[1] = -150; coordonnees[2] = -70; coordonnees[3] = 150; } else { puissance = 15 - zoom; facteur = Math.pow(2, puissance);
   coordonnees[0] = latZoom(centerLat, facteur); coordonnees[1] = centerLon - 0.01371 * facteur; coordonnees[2] = lat2Zoom(centerLat, facteur); coordonnees[3] = centerLon + 0.01371 * facteur;
  } //System.out.println("lat " + coordonnees[0] + " lon " + coordonnees[1] // + " lat2 " + coordonnees[2] + " lon2 " + coordonnees[3]); return coordonnees; }
 static double latZoom(float centerLat, double facteur) { double lat; if ((centerLat >= 0) && (centerLat < 5)) { lat = centerLat + 0.0137 * facteur; } else if ((centerLat >= 5) && (centerLat < 10)) { lat = centerLat + 0.0136 * facteur; } else if ((centerLat >= 10) && (centerLat < 15)) { lat = centerLat + 0.0135 * facteur; } else if ((centerLat >= 15) && (centerLat < 20)) { lat = centerLat + 0.0132 * facteur; } else if ((centerLat >= 20) && (centerLat < 25)) { lat = centerLat + 0.0128 * facteur; } else if ((centerLat >= 25) && (centerLat < 30)) { lat = centerLat + 0.0124 * facteur; } else if ((centerLat >= 30) && (centerLat < 35)) { lat = centerLat + 0.0118 * facteur; } else if ((centerLat >= 35) && (centerLat < 40)) { lat = centerLat + 0.0112 * facteur; } else if ((centerLat >= 40) && (centerLat < 45)) { lat = centerLat + 0.0105 * facteur; } else if ((centerLat >= 45) && (centerLat < 50)) { lat = centerLat + 0.00963 * facteur; } else if ((centerLat >= 50) && (centerLat < 55)) { lat = centerLat + 0.0088 * facteur; } else if ((centerLat >= 55) && (centerLat < 60)) { lat = centerLat + 0.0078 * facteur; } else if ((centerLat >= 60) && (centerLat < 65)) { lat = centerLat + 0.0068 * facteur; } else if ((centerLat >= 65) && (centerLat < 70)) { lat = centerLat + 0.00575 * facteur; } else if ((centerLat >= 70) && (centerLat < 75)) { lat = centerLat + 0.00468 * facteur; } else if ((centerLat >= 75) && (centerLat < 80)) { lat = centerLat + 0.00354 * facteur; } else { lat = centerLat + 0.00237 * facteur; } return lat; }
 static double lat2Zoom(float centerLat, double facteur) { double lat2; if ((centerLat >= 0) && (centerLat < 5)) { lat2 = centerLat - 0.0137 * facteur; } else if ((centerLat >= 5) && (centerLat < 10)) { lat2 = centerLat - 0.0136 * facteur; } else if ((centerLat >= 10) && (centerLat < 15)) { lat2 = centerLat - 0.0135 * facteur; } else if ((centerLat >= 15) && (centerLat < 20)) { lat2 = centerLat - 0.0132 * facteur; } else if ((centerLat >= 20) && (centerLat < 25)) { lat2 = centerLat - 0.0128 * facteur; } else if ((centerLat >= 25) && (centerLat < 30)) { lat2 = centerLat - 0.0124 * facteur; } else if ((centerLat >= 30) && (centerLat < 35)) { lat2 = centerLat - 0.0118 * facteur; } else if ((centerLat >= 35) && (centerLat < 40)) { lat2 = centerLat - 0.0112 * facteur; } else if ((centerLat >= 40) && (centerLat < 45)) { lat2 = centerLat - 0.0105 * facteur; } else if ((centerLat >= 45) && (centerLat < 50)) { lat2 = centerLat - 0.00963 * facteur; } else if ((centerLat >= 50) && (centerLat < 55)) { lat2 = centerLat - 0.0088 * facteur; } else if ((centerLat >= 55) && (centerLat < 60)) { lat2 = centerLat - 0.0078 * facteur; } else if ((centerLat >= 60) && (centerLat < 65)) { lat2 = centerLat - 0.0068 * facteur; } else if ((centerLat >= 65) && (centerLat < 70)) { lat2 = centerLat + 0.00575 * facteur; } else if ((centerLat >= 70) && (centerLat < 75)) { lat2 = centerLat - 0.00468 * facteur; } else if ((centerLat >= 75) && (centerLat < 80)) { lat2 = centerLat - 0.00354 * facteur; } else { lat2 = centerLat - 0.00237 * facteur; } return lat2; }}



Date: Sun, 5 Oct 2008 17:00:45 -0700From: rbenito_at_mitre.orgTo: openmap-users_at_bbn.comSubject: [OpenMap Users] How do I display a png on the map?Hi, I'm new to OpenMap and I am having trouble displaying a PNG file on the map. How can this be done? Thanks!



View this message in context: How do I display a png on the map?Sent from the OpenMap mailing list archive at Nabble.com.
_________________________________________________________________
Installez gratuitement les 20 émôticones Windows Live Messenger les plus fous ! Cliquez ici !
http://www.emoticones-messenger.fr/

--
[To unsubscribe to this list send an email to "majdart_at_bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]
Received on Mon Oct 06 2008 - 03:42:36 EDT

This archive was generated by hypermail 2.3.0 : Tue Mar 28 2017 - 23:25:09 EDT