Dans quels systèmes de coordonnées apparaissent les vrais cercles?

10

Je développe sur Google Maps depuis un certain temps et je passe à OpenLayers mais je suis coincé sur un point: je dessine des vecteurs qui sont principalement circulaires mais impliquent également une géométrie personnalisée, donc je ne peux pas utiliser createRegularPolygon. Je crée un tableau de points et je l'envoie à un objet OpenLayers.Layer.Vector. Cela fonctionne très bien, mais les «cercles» qui en résultent ne sont ronds que près de l'équateur, pas aux latitudes plus élevées. Ils sont écrasés à peu près autant que le fond de carte à des latitudes plus élevées, ce qui semble logique. Si j'utilise Google comme couche de base, ils ont la forme correcte sous toutes les latitudes, mais je crée une solution mobile hors ligne pour que cela ne fonctionne pas.

Qu'est-ce que j'utilise pour une couche de base (ou quels paramètres définir) pour que ma géométrie reste ronde à toutes les latitudes sans utiliser Google ou des cartes en ligne?

kschaos
la source

Réponses:

12

Je suppose que vos cercles ressemblent à ceci:

entrez la description de l'image ici

(Source: blog du centre de cartographie Esri )

Vous voudrez utiliser Web Mercator EPSG: 900913 au lieu de WGS84 EPSG: 4326 pour des cercles parfaits

En savoir plus sur ce sujet et un exemple de l'apparence des cercles dans Mercator: l'indicateur de Tissot aide à illustrer la distorsion de projection de la carte

Pour que les couches ouvertes utilisent Mercator, vous devez définir l'option sphericalMercator dans votre couche de base.

sphericalMercator: true,
obscur
la source
Merci! c'était exactement l'information dont j'avais besoin. Je pensais que je travaillais avec un calque qui était en EPSG: 900913 mais ce n'était pas le cas. J'ai également dû m'assurer que toutes les transformations passaient de EPSG: 4326 à EPSG: 900913 et cela fonctionne parfaitement. Maintenant, je dois juste comprendre comment ne pas afficher les icônes d'image cassée lorsqu'il essaie de se charger dans les tuiles de carte hors ligne.
kschaos
14

Il n'existe pas de carte de la terre entière dans laquelle tous les cercles (vrais, sphériques) restent vraiment ronds. Cependant, il existe des moyens de cartographier la terre dans lesquels presque tous les cercles suffisamment petits sont ronds. Ceux-ci sont basés sur des projections conformes . Par définition, les changements qu'une projection conforme fait aux distances dans de petites zones sont de deux types seulement: un étirement uniforme et une rotation. De toute évidence, ces changements ne rendent pas les cercles moins ronds.

Août épicycloïdal

Carte de la terre avec une projection épicycloïdale d'août . La plupart des cercles apparaîtront vraiment ronds sur cette carte.

Les projections conformes couramment utilisées sont le Mercator (une projection cylindrique), la stéréographie (une projection azimutale) et la conique conforme de Lambert (une projection conique, évidemment). Celles-ci couvrent les trois grandes familles de projections, vous donnant la possibilité de choisir un "look" particulier pour le réticule des méridiens et des lignes de latitude. Des options supplémentaires, qui peuvent être disponibles dans certains SIG, incluent la stéréographie oblique Miller , Littrow , la conique conique oblique bipolaire , Lagrange , Eisenlohr , août épicycloïdal , Guyou , Peirce Quincuncial, GS50 , diverses projections Adams et Lee . (Source: Snyder & Voxland, An Album of Map Projections. USGS Professional Paper 1453.) Ces deux derniers indiquent la richesse des projections conformes possibles qui peuvent être créées et montrent comment les projections conformes ne sont pas vraiment "préservant la forme": les projections Adams cartographient conformément la carte un hémisphère en carré et la projection de Lee le place en triangle. En fait, le théorème de cartographie de Riemann de l'analyse complexe montre que vous pouvez cartographier de manière conforme un hémisphère dans n'importe quel polygone que ce soit!

OpenLayers utilise la bibliothèque de projection Proj4js . Le code source des projections est distribué dans le dossier / proj4js / lib / projCode /. Les projections conformes incluses dans la dernière version (1.0.2) sont le Mercator , deux Transverse Mercators , deux obliques Mercators ("Hotine" et "Swiss Oblique"), Lambert Conformal Conic et Stereographic .

À moins que votre application ne soit conçue pour fonctionner dans le monde entier, explorez et étudiez ces options pour déterminer celle qui conviendrait le mieux à votre région d'intérêt . Tous ces éléments peuvent être facilement recentrés et redimensionnés pour minimiser la distorsion totale (non seulement des formes, mais aussi des zones et des distances) dans une zone spécifique. La solution mondiale par défaut est une variante du Mercator, popularisée par Google maps.

whuber
la source
Plus d'informations sur cette réponse ici: pasda.psu.edu/help/projection.asp
DPSSpatial
@mapBaker Merci d'avoir proposé ce lien. Sa caractérisation d'une projection conforme est malheureusement incorrecte: "Une projection conforme maintient des formes telles que des rectangles." Cela n'est vrai que pour les formes infinitésimales , pas pour les formes de taille finie.
whuber
connaissez-vous quelqu'un à PSU qui pourrait aider à ajuster ce document?
DPSSpatial
@mapBaker Malheureusement non; Je n'ai aucun contact actuel là-bas. Je ne suis même pas sûr qu'ils voudraient l'ajuster. Il y a une fine ligne entre être correct et être pédant. Je pense qu'ils auraient pu apprécier la simplicité de l'exposition et - pour leur public particulier - ne voulaient pas entrer dans la distinction entre la préservation des propriétés géométriques à grande échelle et à petite échelle. J'apprécie également la simplicité de l'exposition, mais j'ai fait un effort dans cette réponse pour trouver un compromis plus précis entre la simplicité et l'exactitude en mettant l'accent sur des cercles suffisamment petits .
whuber
2

Eh bien, évidemment, vous aurez un problème tant que vous utilisez le fond de carte dans la projection EPSG: 4326. Ce dont vous avez besoin est une projection Spherical Mercator qui, comme vous l'avez remarqué, est Google Maps et d'autres fournisseurs de cartes commerciaux. Allez-y et lisez ceci pour mieux comprendre ce problème.

Pour vous, la solution mobile hors ligne OpenStreetMap serait probablement une bonne solution.

igorti
la source