obtenir un fond de carte nue

Bonjour,

Béotien et assez perplexe devant “l’offre” cartographique …
Je produit généralement des logiciels à la demande pour des industriels écrit en C++ et en assembleur ; autant dire que le monde WEB est assez loin !

Pour un projet j’ai fait le choix de HTML 5 + php + mysql (apprentissage 1,5 semaine :smiling_imp: ), i ly a un besoin de carte avec une couche de marqueurs.
Après quelques essais j’ai choisi OSM (voir mon profil) ; je ne suis pas certain d’avoir tout compris dans les rôles de chacun (pourvoyeur de données, serveurs, afficheurs, mais cela viendra … enfin je suppose.
Un peu arbitrairement j’ai choisi OpenLayers-3, complexe et une documentation déroutante, mais bon je suis parvenu à faire ce que je voulais (3 jours quand même :cry: ).

Mon soucis : j’ai tenté divers “pourvoyeurs”, OSM,ou autres mais pour aucun je ne trouve comment récupérer les cartes brutes, c’est-à-dire sans les couches des “restaurants”, “supermarchés”, etc.
Pour MapQuest il y a un paramètre “layer” qui je suppose à ce sens mais je ne trouve aucune documentation, pas plus OSM ; comme elle doit exister c’est donc moi qui suit fautif …

Une petite aide serait la bienvenue.
Merci.

PS: extrait de mon source

var rasterLayer = new ol.layer.Tile({
source: new ol.source.OSM()
// source: new ol.source.MapQuest({layer: ‘osm’ } )
});

Il y a une multitude de fonds de cartes produits à partir des données OpenStreetMap car ces données sont accessibles et utilisables par tous.

Tu peux piocher dans ce qui existe, en pensant à vérifier que ton usage ne pose pas de problème au producteur de ce fond (licence, mais aussi volumétrie, charge, etc).
Attention aussi à l’absence ou présence de garantie de service… par exemple les tuiles produites par OSM France n’ont aucune garantie de disponibilité (même si on fait le maximum pour se rapprocher de 100% de SLA).

Tu peux aussi générer ton propre fond de carte, avec le style de ton choix, et donc être totalement maître sur la visibilité de tel ou tel type d’objet.
Là, c’est l’autonomie totale… mais quelques jours de boulot de plus et un serveur costaud derrière si tu veux une couverture mondiale.
LE tuto “qui va bien” est ici: https://switch2osm.org/fr/servir-des-tuiles/construire-un-serveur-de-tuiles-depuis-des-paquets/

Voici quelques fonds “neutres”:

voici aussi MapCompare qui permet de comparer une vingtaine de fonds OSM (et d’autres): http://mc.bbbike.org/mc/?lon=3.078585&lat=50.628699&zoom=15&num=2&mt0=osmfr&mt1=osm-se-hydda-full&marker=

Tout ça peut s’intégrer via OpenLayers (que je ne pratique pas, trop compliqué, je préfère Leaflet).

Bonjour,

Merci de votre réponse et des liens.

Je n’ai pas encore tout compris (!) mais cela viendra; il y a donc des données vectorielles et textuelles “brutes” et des moteurs de “rendus” qui les exploitent et les complètent par des couches plus ou moins chargées et interactives.
J’ai tenté Leaflet mais je l’ai trouvé encore plus étrange que OpenLayers, pour tout dire je n’ai pas su afficher une carte !

Le lien sur le comparateur et très instructif hélas il faut appel à OpenLayers 2 qui n’est pas similaire à la version 3, il faut donc que je “décode” un peu pour avancer.
Le “OSM hydra full” me conviendrait asse ; pas très beau mais sans les couches indiquant les commerces dans les rues, reste que je ne saisis toujours pas où ce choix est fait.

C’est une autre sujet, mais pour moi qui ai commencer à programmer en assembleur (et j’en fait toujours pour des routines de calculs ou graphiques) je trouve que les langages liés à Internet sont effroyablement embrouillés !

Je vais davantage fouiller le site OSM France afin de voir comment je peux contribuer à votre effort ; un travail sur des fond cartographiques historiques peut être.

Je vous souhaite une bonne journée.

OSM = données vectorielles et à partir de ça on fabrique des images “tuilées” pour les afficher en continu avec une librairie comme Openlayers ou Leaflet.

Ces tuiles sont en général organisées avec des URL hiérarchiques:

Exemple: http://b.tile.openstreetmap.se/hydda/full/16/33328/22047.png

16 = niveau de zoom
33328 = N° en X de la tuile pour ce zoom
22047 = N°en Y de la tuile pour ce zoom

J’ai jeté un oeil dans la doc d’openlayers3, je m’y perd très vite, trop objet pour moi :wink:

Le lien sur le comparateur et très instructif hélas il faut appel à OpenLayers 2 qui n’est pas similaire à la version 3, il faut donc que je “décode” un peu pour avancer.
Le “OSM hydra full” me conviendrait asse ; pas très beau mais sans les couches indiquant les commerces dans les rues, reste que je ne saisis toujours pas où ce choix est fait.

C’est une autre sujet, mais pour moi qui ai commencer à programmer en assembleur (et j’en fait toujours pour des routines de calculs ou graphiques) je trouve que les langages liés à Internet sont effroyablement embrouillés !

Moi aussi j’ai commencé par de l’assembleur… HP41, puis Z80, 8085, 6502, 68000… très loin des modèle objets actuels :wink:

Le site que j’ai indiqué utilise la précédente version d’openlayers, qui n’a rien de commun avec l’actuel (ils auraient vraiment dû changer le nom).
Ce n’est que pour visualiser les fonds que je l’ai indiqué, par pour reprendre son code en exemple.

Je vais davantage fouiller le site OSM France afin de voir comment je peux contribuer à votre effort ; un travail sur des fond cartographiques historiques peut être.

Je vous souhaite une bonne journée.

Après avoir un peu fouiller, openlayers intègre pas mal de fonds préparamétrés et c’est ce que tu as utilisé pour le fond mapquest.
Pour un fond “custom” non prévu par OL3, il faut utiliser un truc du genre (pas testé):

var hyddaSource = new ol.source.XYZ({
     url: 'http://b.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png'
    , crossOrigin: 'null'
});

var hyddaTileLayer = new ol.layer.Tile({
      source: hyddaSource
    , isBaseLayer: true
    , wrapDateLine: false
});

Bonjour,

J’ai négligé de vous remercier, pris par toutes sortes d’obligations et remettant au lendemain … jusqu’à l’oubli !
Veuillez me le pardonner.

J’ai pu faire ce que je voulais, où à peu prés dans le temps que je pouvais y consacrer.

Reste de difficultés de positionnement précis lorsque l’on change d’échelle (zoom), je suppose que c’est une histoire de projection mais je n’ai le loisir de chercher à comprendre. J’utilise les coordonnées en mètre par rapport à 0,0 et non en degrés, sans doute que cela n’arrange rien.

Enfin si je peux être utile à quelque chose ce sera avec plaisir.