2016-12-31 4 views
1

J'ai une vue de globe simple dans mon application. Auparavant, nous utilisions WhirlyGlobe, mais nous avons choisi d'utiliser plutôt SceneKit. Tout fonctionne bien et nous en sommes contents sauf que nous avons utilisé des carreaux de carte dans Whirly Globe et que ça ne fonctionne pas (pour autant que je sache) dans SceneKit. Nous voulons utiliser cette carte (carrelée, partagée ou en un seul fichier) sur une géométrie SCNSphere.Comment utiliser une carte de projection web mercator pour SCNMaterial sur une géométrie SCNShere?

J'ai copié la carte satellite qu'Apple utilise dans sa documentation et cela semble correct, mais ce n'est pas la carte dont nous avons besoin. Notre carte est en projection web/sphère mercator et elle a l'air mauvaise dans SceneKit sur ma sphère. Je ne sais pas ce que la projection 2x1 qu'Apple utilise, alors JUSTE que des informations pourraient me suffire pour trouver la solution.

  • Je fais maintenant:
    • équirectangulaire - Juste après avoir posté bien sûr.
    • Aussi connu comme Platte Carré (par le commentaire de Hal Mueller)

Une exportation de notre carte dans la projection de mercator web est 1x1. Il ne suffit pas de l'écarter dans l'axe vertical (SceneKit le fait automatiquement de toute façon).

Je peux convertir le fichier par programme, en utilisant un outil ou un hybride si nécessaire.

Si nécessaire, je peux fournir des vignettes de la carte.

+0

Veuillez poster des captures d'écran des versions WhirlyGlobe et SceneKit, ainsi que le code d'un MCVE (http://stackoverflow.com/help/mcve). Où sont générées les mosaïques de carte? Pouvez-vous configurer ce serveur pour qu'il renvoie les tuiles Platte Caree? Une carte matricielle sphérique de Mercator aura besoin d'une reprojection pour être superposée sur une sphère, et dans tous les cas ne s'étendra pas aux pôles. –

+0

Nous utilisons TileMill pour générer les carreaux et il peut exporter la projection SM mais pas la projection Platte Caree/Equirectangular. Les tuiles sont intégrées donc pas de serveur. En ce qui concerne les pôles, oui, je l'ai vu après avoir posté cela en en apprendre plus sur les projections SM et PC. Je ne vois aucune valeur dans l'affichage d'un MCVE. J'ai une scène avec une sphère avec un SCNMaterial. Ce que je fais fonctionne parfaitement. (enfin ... par rapport à ce que je demande de toute façon.) :-) Je pense que cela devrait être dans une autre catégorie SE. Merci! –

+0

MapServer peut restituer des images PC, carrelées si nécessaire. Mais c'est un grand changement de flux de travail de Tilemill. Considérez GDAL/OGR si vous avez déjà des images en main et que vous avez juste besoin de les reprojeter. –

Répondre

1

Si vous avez déjà des images et devez les reprojeter (par exemple, de Mercator à Plate Carree/Equirectangular), regardez GDAL (http://www.gdal.org). En plus des conversions de format, il contient une bibliothèque de reprojection. GDAL fonctionne sur la plupart des systèmes et peut être utilisé à partir de la ligne de commande ou être intégré à d'autres programmes.

+0

La solution était de faire une super grande exportation (6400x ~ 6400) de la projection Spherical Mercator à utiliser pour la reproduction et l'édition. Par le commentaire/réponse de Hal Mueller, j'ai téléchargé la version macOS de [GDAL] (http://www.gdal.org/index.html) et je l'ai utilisé [GIS.StackExchange] (http://gis.stackexchange.com/ questions/92907/re-project-raster-image-from-mercator-to-equirectangular # 92954) post à reprojeter à Equirectangular .... (suite) –

+1

Mais ce n'était pas suffisant. La sortie a quelques problèmes. Premièrement, je pense que le PNG n'est pas standard. J'ai ouvert à Acorn et je l'ai réexporté en tant que PNG pour le nettoyer.Deuxièmement, il manque les derniers ~ 5 degrés nord et sud aux pôles. Ensuite, j'ai ouvert PNG nettoyé dans [G.Projector] (http://www.giss.nasa.gov/tools/gprojector/) avec un décalage nord de 85.011 et un décalage sud de -85.011. La carte parfaitement alignée avec les superpositions. Mais j'avais un trou en haut .... (suite) –

+0

J'ai ensuite caché les superpositions et sauvegardé la carte en projection Equirectangulaire avec le fond coloré en noir (c'est la bordure). J'ai mis les dimensions à 6400x3200 pour préserver autant de précision que possible. J'ai ensuite ouvert le fichier dans Acorn. J'ai étiré l'image horizontalement pour fermer les marges latérales et rempli les marges supérieure/inférieure avec des couleurs droppered de la dernière rangée de pixels. J'ai ensuite sauvegardé et fait une "exportation web" d'un PNG 1600x800 pour la propriété diffuse.contents de SCNMaterial. –