2010-07-16 3 views
1

Je travaille sur certaines cartes et animations en utilisant l'élément canvas html5 (exemple visible here). J'aimerais pouvoir générer efficacement des chaînes de caractères au pixel près (x1 , y1, x2, y2), idéalement à partir de PostGIS, basé sur la géométrie de la toile. C'est, en pseudo-GeoJSON:html5 canvas: le serveur ou le client passe rapidement de la longitude latitude aux valeurs pixel

"Coordinates":"[[-122.0, 35.0], [-121.0, 36.0]]"

sortie pourrait dans le cas d'une fonction passe un paramètre 100px toile largeur:

"Pixels":"[[30, 40],[50,60]]"

je voudrais permettre à terme urls comme :

www.example.com/canvas_size:200/box_width:3-miles/center_point:lon|lat

donc je suppose que cela doit être fait dynamiquement. Comment d'autres personnes ont-elles abordé ce genre de chose? Il m'est venu à l'esprit de traiter le monde entier sous la forme d'un canevas de 20 000 000 pixels, de stocker des données pré-transformées sous forme de pixels, puis de les compenser par une arithmétique côté client. Toutes les suggestions sont les bienvenues, y compris les approches très éloignées de mes premières pensées. Si quelqu'un est familier avec si ou comment cela est fait dans Cartagen, apprécierait un pointeur vers une bibliothèque ou une fonction ou deux.

Répondre

2

Essayez ce code où les pixels s'adapter à la hauteur et la largeur de la toile:

function getPoint(latitude, longitude, canvas_width, canvas_height) { 
      var obj = {}; 
      obj.x = (latitude * canvas_height/180.0) + (canvas_height/2); 
      obj.y = (longitude * canvas_width/360.0) + (canvas_width/2); 
      return obj; 
     } 
Questions connexes