Protomaps Basemap ಟೈಲ್‌ಗಳು

ಸಂಪೂರ್ಣ Protomaps Basemap, ಜೂಮ್ 0 ರಿಂದ 15 ರವರೆಗೆ, ಸಾಮಾನ್ಯ HTTP ಮೂಲಕ ಒಂದೇ PMTiles ಆರ್ಕೈವ್ ಆಗಿ ಒದಗಿಸಲಾಗಿದೆ. ಯಾವುದೇ PMTiles ಕ್ಲೈಂಟ್ ಅನ್ನು ಈ URL ಕಡೆಗೆ ತೋರಿಸಿದರೆ ಅದು ಕೆಲಸ ಮಾಡುತ್ತದೆ.

https://tiles.jasontally.com/basemap.pmtiles

ನಿರ್ಬಂಧಿತ OpenStreetMap ಟೈಲ್, ಅಥವಾ tile.openstreetmap.org ನಿಂದ 403 ಬರುತ್ತಿದೆಯೇ? ಇಲ್ಲಿಂದ ಪ್ರಾರಂಭಿಸಿ.

ಪರೀಕ್ಷಿಸಿ ನೋಡಿ

ಅದೇ ಆರ್ಕೈವ್ ಮೂರು ಶೈಲಿಗಳಲ್ಲಿ. ಶೈಲಿಯನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಈಗಾಗಲೇ ಲೋಡ್ ಆದ ಟೈಲ್‌ಗಳು ಹಾಗೆಯೇ ಉಳಿಯುವುದರಿಂದ ಬದಲಾವಣೆ ತಕ್ಷಣವೇ ಆಗುತ್ತದೆ.

z0

ನಿಮ್ಮದೇ ಶೈಲಿ ರೂಪಿಸಿ

ಬಣ್ಣವನ್ನು ಬದಲಿಸಿ ಅಥವಾ ಪದರವನ್ನು ಆಫ್ ಮಾಡಿ, ನೀವು ಬದಲಿಸಿದಂತೆಯೇ ನಕ್ಷೆ ನವೀಕರಣಗೊಳ್ಳುತ್ತದೆ. ನಂತರ ಶೈಲಿ JSON ಅನ್ನು ನಕಲಿಸಿ; ಇದು ನೀವು ಸ್ವತಃ ಹೋಸ್ಟ್ ಮಾಡಬಹುದಾದ ಸಾಮಾನ್ಯ MapLibre ಶೈಲಿಯಾಗಿದೆ. ಇದು ಈ ಟೈಲ್‌ಗಳನ್ನೇ ತೋರಿಸುವುದರಿಂದ ನೀವು ಇದನ್ನು ಎಲ್ಲಿ ಇಟ್ಟರೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ.

ಇದನ್ನು ಬಳಸಿ

ಈ ಆರ್ಕೈವ್ HTTP ರೇಂಜ್ ವಿನಂತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಪ್ರತಿಯೊಂದು PMTiles ಕ್ಲೈಂಟ್ ಇದನ್ನು ಓದಬಲ್ಲದು.

ಒಂದು. ಪುಟದಲ್ಲಿ ನಕ್ಷೆಯನ್ನು ಹಾಕಿ

ಈ ಫೈಲ್ ಅನ್ನು ನಕಲಿಸಿ. ಇದುವೇ ಸಂಪೂರ್ಣ ಉದಾಹರಣೆ: ಮೂರು ಟ್ಯಾಗ್‌ಗಳು, ಒಂದು ಶೈಲಿ URL, ಒಂದು ನಕ್ಷೆ. ಎರಡೂ ಲೈಬ್ರರಿಗಳ ಆವೃತ್ತಿಯನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಅವು BSD-3-Clause ಪರವಾನಗಿ ಹೊಂದಿವೆ; ನೀವು CDN ಬಳಸಲು ಇಷ್ಟಪಡದಿದ್ದರೆ ಅದೇ ಫೈಲ್‌ಗಳನ್ನು ಈ ಹೋಸ್ಟ್‌ನಿಂದಲೂ ಒದಗಿಸಲಾಗುತ್ತದೆ.

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Basemap</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css">
  <script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/pmtiles@3.2.1/dist/pmtiles.js"></script>
  <style>html, body, #map { margin: 0; height: 100%; }</style>
</head>
<body>
  <div id="map"></div>
  <script>
    // Teach MapLibre how to read a PMTiles archive.
    const protocol = new pmtiles.Protocol();
    maplibregl.addProtocol("pmtiles", protocol.tile);

    new maplibregl.Map({
      container: "map",
      style: "https://tiles.jasontally.com/styles/light.json",
      center: [2.35, 48.85],   // Paris
      zoom: 4
    });
  </script>
</body>
</html>

ಎರಡು. ನಿಮ್ಮಲ್ಲಿ ಈಗಾಗಲೇ ಇರುವ ಶೈಲಿಯಲ್ಲಿ ಟೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ

ಪ್ರತಿಯೊಂದು MapLibre ಶೈಲಿಯು ತನ್ನ ಟೈಲ್‌ಗಳನ್ನು ಒಂದು ಮೂಲದಿಂದ ಓದುತ್ತದೆ. ಈ ಟೈಲ್‌ಗಳನ್ನು ಬಳಸಲು, ಆ ಒಂದು url ಅನ್ನು ಬದಲಾಯಿಸಿ. ಶೈಲಿಯಲ್ಲಿ ಬೇರೆ ಏನೂ ಬದಲಾಗುವುದಿಲ್ಲ.

  "sources": {
    "protomaps": {
      "type": "vector",
-     "url": "pmtiles://https://demo-bucket.protomaps.com/v4.pmtiles",
+     "url": "pmtiles://https://tiles.jasontally.com/basemap.pmtiles",
      "attribution": "<a href=\"https://www.openstreetmap.org/copyright\">&copy; OpenStreetMap contributors</a>"
    }
  }

ಅಥವಾ ಇದನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ಮಾಡಿ; ಶೈಲಿಯು ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿಲ್ಲದ ಸರ್ವರ್‌ನಿಂದ ಬರುತ್ತಿದ್ದರೆ ಇದು ಉಪಯುಕ್ತ:

// Rewrite every PMTiles source in a style to point at these tiles.
const style = await (await fetch("https://your-server/style.json")).json();

for (const source of Object.values(style.sources)) {
  if (source.url?.startsWith("pmtiles://")) {
    source.url = "pmtiles://https://tiles.jasontally.com/basemap.pmtiles";
  }
}

new maplibregl.Map({ container: "map", style, center: [2.35, 48.85], zoom: 4 });

ಮೂರು. ನೀವು ರಚಿಸಿದ ಶೈಲಿಯನ್ನು ಎಲ್ಲಿ ಇಡಬೇಕು

ಮೇಲಿನ ಬಿಲ್ಡರ್‌ನಲ್ಲಿರುವ ಶೈಲಿ JSON ಗುಂಡಿಯು ನೀವು ಮಾಡಿದ ಬದಲಾವಣೆಗಳೊಂದಿಗೆ ಈ ನಕ್ಷೆ ಈಗ ಚಿತ್ರಿಸುತ್ತಿರುವ ಶೈಲಿಯನ್ನು ತೆರೆಯುತ್ತದೆ, ಮತ್ತು ಆ ಸಂವಾದ ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ನಕಲಿಸುವ ಗುಂಡಿ ಇದೆ. ಅದು ನೀಡುವುದನ್ನು ಬಳಸಲು ಎರಡು ವಿಧಾನಗಳಿವೆ, ಮತ್ತು ಎರಡೂ ಸಾಮಾನ್ಯ ವೆಬ್ ಪುಟಗಳೇ ಆಗಿವೆ.

ಅದನ್ನು ನಿಮ್ಮ ಪುಟದ ಪಕ್ಕದಲ್ಲಿ ಫೈಲ್ ಆಗಿ ಉಳಿಸಿ ಮತ್ತು ಈ ಹೋಸ್ಟ್‌ನಲ್ಲಿನ ಮೂರು ಶೈಲಿಗಳನ್ನು ಬಳಸುವಂತೆಯೇ style ಅನ್ನು ಅದರ ಕಡೆಗೆ ತೋರಿಸಿ. ಶೈಲಿಯು ನಿಮ್ಮದಾಗಿದ್ದು ನಿಮ್ಮ ಸೈಟ್‌ನೊಂದಿಗೆ ಬದಲಾಗುತ್ತಿದ್ದರೆ ಇದನ್ನು ಆಯ್ಕೆಮಾಡಿ:

// Save the copied JSON as my-basemap.json beside this file.
new maplibregl.Map({
  container: "map",
  style: "my-basemap.json",           // relative, same origin
  center: [2.35, 48.85],
  zoom: 4
});

ಅಥವಾ ಅದನ್ನು HTML ಒಳಗೆಯೇ ಇರಿಸಿ; ಆಗ ಸಾಗಿಸಲು ಒಂದೇ ಫೈಲ್ ಇರುತ್ತದೆ ಮತ್ತು ಪ್ರತ್ಯೇಕವಾಗಿ ಹೋಸ್ಟ್ ಮಾಡಬೇಕಾದದ್ದು ಏನೂ ಇರುವುದಿಲ್ಲ. ಅದೇ ಶೈಲಿ, ಅದು ಇರುವ ಜಾಗ ಮಾತ್ರ ಬೇರೆ:

// The copied JSON, pasted straight into the page.
const myStyle = {
  "version": 8,
  "name": "Protomaps Basemap — custom",
  "glyphs": "https://tiles.jasontally.com/font/{fontstack}/{range}.pbf",
  "sprite": "https://tiles.jasontally.com/sprites/v4/light",
  "sources": { /* ... as copied ... */ },
  "layers":  [ /* ... as copied ... */ ]
};

new maplibregl.Map({ container: "map", style: myStyle, zoom: 4 });

glyphs ಮತ್ತು sprite ಸಾಲುಗಳನ್ನು ಇರುವಂತೆಯೇ ಬಿಡಿ. ಅವುಗಳೇ ಹೆಸರುಗಳು ಮತ್ತು ಐಕಾನ್‌ಗಳನ್ನು ಚಿತ್ರಿಸುತ್ತವೆ, ಮತ್ತು ಅವು ಈ ಹೋಸ್ಟ್ ಅನ್ನು ತೋರಿಸುವುದರಿಂದ ನಿಮ್ಮದೇ ಪುಟಕ್ಕೆ ನೀವು ಅಂಟಿಸುವ ಶೈಲಿಯು ನೀವು ಎಲ್ಲಿಂದ ಒದಗಿಸಿದರೂ ಕೆಲಸ ಮಾಡುತ್ತಲೇ ಇರುತ್ತದೆ. ನೀವು ಈ ಹೋಸ್ಟ್ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಲು ಇಷ್ಟಪಡದಿದ್ದರೆ ಅವುಗಳನ್ನು protomaps.github.io/basemaps-assets ಕಡೆಗೆ ತೋರಿಸಿ.

ಬದಲಾಯಿಸುವ ಮೊದಲು ಪರಿಶೀಲಿಸಬೇಕಾದ ಒಂದು ವಿಷಯ. ಈ ಆರ್ಕೈವ್ Protomaps schema v3 ಆಗಿದೆ. ಬೇರೆ ಸ್ಕೀಮಾಗಾಗಿ ಬರೆದ ಶೈಲಿಯು ಲೋಡ್ ಆಗುತ್ತದೆ ಆದರೆ ಏನನ್ನೂ ಚಿತ್ರಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಮೂಲ ಪದರದ ಹೆಸರುಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಒಂಬತ್ತು ಪದರದ ಹೆಸರುಗಳನ್ನು ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ, ಜೊತೆಗೆ ನೀವು ನಕಲಿಸಿಕೊಳ್ಳಬಹುದಾದ ಸಿದ್ಧ v3 ಶೈಲಿಯೂ ಇದೆ.

ನಾಲ್ಕು. ಫಾಂಟ್‌ಗಳು, ಸ್ಪ್ರೈಟ್‌ಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳು

ಒಂದು ನಕ್ಷೆಯೆಂದರೆ ಟೈಲ್‌ಗಳು, ಪಠ್ಯಕ್ಕಾಗಿ ಒಂದು glyphs URL, ಐಚ್ಛಿಕವಾಗಿ ಐಕಾನ್‌ಗಳಿಗಾಗಿ ಒಂದು sprite URL, ಮತ್ತು ಇವೆಲ್ಲವನ್ನೂ ಚಿತ್ರಿಸುವ ಲೈಬ್ರರಿಗಳು. ಪ್ರತಿಯೊಂದೂ ನಿರೀಕ್ಷಿಸುವ ಪಾತ್‌ಗಳಲ್ಲಿ ಇವೆಲ್ಲವೂ ಇಲ್ಲಿವೆ, ಆದ್ದರಿಂದ ನೀವು ಬಯಸಿದರೆ ಸಂಪೂರ್ಣ ನಕ್ಷೆಯು ಒಂದೇ ಹೋಸ್ಟ್‌ನೇಮ್‌ನಿಂದ ಬರಬಹುದು.

ಏನುಇಲ್ಲಿನ URLಪರವಾನಗಿ

MapLibre ಮತ್ತು PMTiles ಫೈಲ್‌ಗಳು jsDelivr ನಲ್ಲಿ ಮತ್ತು ಇಲ್ಲಿ ಲಭ್ಯವಿವೆ. ಎರಡರಲ್ಲಿ ಯಾವುದೇ URL ಆದರೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ.

ಕೊನೆಯ ಸಾಲನ್ನು ಈ ಪುಟವು ಬಳಸುವುದಿಲ್ಲ. ಅದು Leaflet ವೆಕ್ಟರ್ ರೆಂಡರರ್ ಆಗಿದ್ದು, ಒಂದೇ ಸ್ಕ್ರಿಪ್ಟ್ ಟ್ಯಾಗ್ ಮೂಲಕ ಬದಲಾಯಿಸಲು ಅನುಕೂಲವಾಗುವಂತೆ ಇಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ. Leaflet ಮಾತ್ರ ತನ್ನದೇ CDN ನಲ್ಲಿ ಉಳಿಯುತ್ತದೆ.

ಎರಡು ಫಾಂಟ್ ಸ್ಟ್ಯಾಕ್‌ಗಳು, Noto Sans Regular ಮತ್ತು Noto Sans Medium, MapLibre ಕೇಳುವ 256 ಶ್ರೇಣಿಗಳಾಗಿ, ಒಮ್ಮೆಗೆ 256 ಕೋಡ್‌ಪಾಯಿಂಟ್‌ಗಳಂತೆ ವಿಭಜಿಸಲಾಗಿದೆ. ಕೇವಲ ಲ್ಯಾಟಿನ್ ಮಾತ್ರವಲ್ಲದೆ ಎಲ್ಲಾ 256 ಶ್ರೇಣಿಗಳನ್ನೂ ಪ್ರಕಟಿಸಲಾಗಿದೆ: Protomaps ಸ್ಥಳಗಳನ್ನು ಅವುಗಳ ಸ್ಥಳೀಯ ಹೆಸರಿನಿಂದ ಗುರುತಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಟೋಕಿಯೊ ಅಥವಾ ಕೈರೋಗೆ ಹತ್ತಾರು ಸಾವಿರದ ಶ್ರೇಣಿಗಳು ಬೇಕಾಗುತ್ತವೆ. ಇಂಗ್ಲಿಷ್ ನಕ್ಷೆ ಬಳಸುವುದನ್ನು ಮಾತ್ರ ಪ್ರಕಟಿಸಿದರೆ ಆ ಹೆಸರುಗಳು ಯಾವುದೇ ದೋಷ ಸಂದೇಶವಿಲ್ಲದೆ ಮಾಯವಾಗುತ್ತವೆ.

ಪ್ರತಿ ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಫ್ಲೇವರ್‌ಗೆ ಒಂದರಂತೆ, 1x ಮತ್ತು 2x ನಲ್ಲಿ ಐದು ಸ್ಪ್ರೈಟ್ ಶೀಟ್‌ಗಳಿವೆ. ಕೆಳಗಿನ ಶೈಲಿಗಳು ಅವುಗಳಿಂದ ಐಕಾನ್‌ಗಳನ್ನು ಚಿತ್ರಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಇವನ್ನು ತರಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. ನಿಮ್ಮದೇ ಶೈಲಿಯಲ್ಲಿ ಪಟ್ಟಣದ ಗುರುತುಗಳು, ಹೆದ್ದಾರಿ ಶೀಲ್ಡ್‌ಗಳು ಅಥವಾ ಸ್ಥಳದ ಬಿಂದುಗಳು ಬೇಕಿದ್ದರೆ, ನಿಮ್ಮ ಫ್ಲೇವರ್‌ಗೆ ತಕ್ಕದಾದ್ದರ ಕಡೆಗೆ sprite ಅನ್ನು ತೋರಿಸಿ. ಒಂದು ಶೀಟ್‌ನಲ್ಲಿರುವ ಐಕಾನ್ ಹೆಸರುಗಳನ್ನು ಅದರ light.json ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ.

ನಕ್ಷೆಯು ಏನನ್ನು ಚಿತ್ರಿಸುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿಯೊಂದೂ ಎಲ್ಲಿಂದ ಬರುತ್ತದೆ

ಪ್ರತಿಯೊಂದು ಪದರವೂ ಈ ಆರ್ಕೈವ್‌ನಲ್ಲಿರುವ ಒಂಬತ್ತು ಮೂಲ ಪದರಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಆದ್ದರಿಂದ ಇಲ್ಲಿ ಯಾವುದಕ್ಕೂ ಎರಡನೇ ಆರ್ಕೈವ್ ಬೇಕಿಲ್ಲ. ಅವುಗಳಲ್ಲಿ ಎರಡನ್ನು ವಿಶೇಷವಾಗಿ ಹೇಳಬೇಕು, ಏಕೆಂದರೆ ಅವು ಇಲ್ಲದಿದ್ದರೂ ಏನೋ ಕಾಣೆಯಾದಂತೆ ಕಾಣಿಸುತ್ತವೆ:

ಪದರಎಲ್ಲಿಂದ ಬರುತ್ತದೆಈ ಬಿಲ್ಡ್‌ನಲ್ಲಿದೆಯೇ?
ಆಕಾರಗಳು, ರಸ್ತೆಗಳು, ಕಟ್ಟಡಗಳು, ನೀರು, ಭೂಮಿearth, landcover, landuse, water, roads, buildingsಹೌದು
ಸ್ಥಳ, ರಸ್ತೆ ಮತ್ತು ನೀರಿನ ಹೆಸರುಗಳುಅದೇ ಪದರಗಳಲ್ಲಿರುವ name ಫೀಲ್ಡ್ಹೌದು
ಸ್ಥಳದ ಬಿಂದು ಐಕಾನ್‌ಗಳು, ಪಟ್ಟಣದ ಗುರುತುಗಳುpois.kind, places, ಜೊತೆಗೆ ಸ್ಪ್ರೈಟ್ಹೌದು
ಮಾರ್ಗದ ಶೀಲ್ಡ್‌ಗಳುroads.shield_textಇಲ್ಲ. ಈಗ ಒದಗಿಸಲಾಗುತ್ತಿರುವ ಬಿಲ್ಡ್‌ನಲ್ಲಿ ಆ ಫೀಲ್ಡ್ ಇಲ್ಲ
ಮನೆ ಸಂಖ್ಯೆಗಳುbuildings.kind=address ಮತ್ತು buildings.addr_housenumberಇಲ್ಲ, ಅದೇ ಕಾರಣ

ಪ್ರತ್ಯೇಕ ವಿಳಾಸ ಆರ್ಕೈವ್ ಇಲ್ಲ, ಮತ್ತು ತರಿಸಿಕೊಳ್ಳಲು ಯಾವುದೇ ವಿಳಾಸ ಪದರವೂ ಇಲ್ಲ. ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಯೋಜನೆಯು ವಿಳಾಸ ಬಿಂದುಗಳನ್ನು ನೇರವಾಗಿ ಒಳಗೆಯೇ buildings ಪದರದಲ್ಲಿ, kind=address ಮತ್ತು addr_housenumber ಹೊಂದಿರುವ ಫೀಚರ್‌ಗಳಾಗಿ ಇರಿಸುತ್ತದೆ. ಈ ನಕ್ಷೆ ಒದಗಿಸುತ್ತಿರುವ ಬಿಲ್ಡ್‌ಗಿಂತ ನಂತರದ Protomaps ಬಿಲ್ಡ್‌ನಲ್ಲಿ ಆ ಫೀಲ್ಡ್ ಬಂದಿದೆ; ಆದ್ದರಿಂದ ಮನೆ ಸಂಖ್ಯೆಯ ಪದರವನ್ನು ಈಗಾಗಲೇ ರಚಿಸಲಾಗಿದ್ದು ಮುಂದಿನ ಮಾಸಿಕ ನವೀಕರಣದಲ್ಲಿ ಅವು ಬಂದಾಗ ತಾನಾಗಿಯೇ ಆನ್ ಆಗುತ್ತದೆ. ಶೀಲ್ಡ್ ಪಠ್ಯದ ವಿಷಯವೂ ಅಷ್ಟೇ: ಪ್ರಸ್ತುತ ಬಿಲ್ಡ್‌ನಲ್ಲಿ shield_text_length ಮಾತ್ರ ಇದೆ, ಅದು ಮಾರ್ಗ ಸಂಖ್ಯೆಯಲ್ಲಿ ಎಷ್ಟು ಅಕ್ಷರಗಳಿವೆ ಎಂದು ಹೇಳುತ್ತದೆಯೇ ಹೊರತು ಅವು ಯಾವುವು ಎಂದಲ್ಲ, ಆದ್ದರಿಂದ ಅದರಿಂದ ಚಿತ್ರಿಸಿದ ಶೀಲ್ಡ್ ಪ್ರತಿ ಹೆದ್ದಾರಿಯಲ್ಲೂ ಖಾಲಿ ಆಕಾರವಾಗಿ ಕಾಣಿಸುತ್ತದೆ.

ನೀವೇ ಒಂದು ಪದರವನ್ನು ಬರೆಯುವುದು ಮತ್ತು ಅದಕ್ಕೆ ಬಣ್ಣ ಹಾಕುವುದು

ಒಂದು ಪದರವೆಂದರೆ ಒಂದು ಫಿಲ್ಟರ್, ಒಂದು ಜೂಮ್, ಒಂದು ಆಕಾರ ಮತ್ತು ಒಂದು ಬಣ್ಣ. ಫಿಲ್ಟರ್‌ನಲ್ಲಿರುವ ಎರಡು ವಿಷಯಗಳು ಎಲ್ಲರನ್ನೂ ಎಡವಿಸುತ್ತವೆ, ಮತ್ತು ಎರಡೂ ಯಾವುದೇ ದೋಷ ಸಂದೇಶವಿಲ್ಲದೆ ವಿಫಲವಾಗುತ್ತವೆ:

ಆದ್ದರಿಂದ ಒಂದು ರಸ್ತೆ, ಅದರ ಹೆಸರು, ಮತ್ತು ರೇಖೆಯನ್ನು ಆಫ್ ಮಾಡಲು ಒಂದು ಟಾಗಲ್:

{
  "id": "road-major",
  "type": "line",
  "source": "protomaps",
  "source-layer": "roads",            // one of the nine
  "minzoom": 4,                                  // not drawn below this
  "filter": ["==", ["get", "kind"], "major_road"],
  "layout": {
    "line-cap": "round",
    "visibility": "visible"          // "none" to hide it
  },
  "paint": {
    "line-color": "#f7c44d",          // any CSS colour
    "line-width": ["interpolate", ["linear"], ["zoom"], 4, 1.7, 12, 6]
  }
}

ಹೆಸರು ಎಂಬುದು name ಫೀಲ್ಡ್ ಅನ್ನು ಓದುವ ಸಿಂಬಲ್ ಪದರವಾಗಿದ್ದು, ಅದರ ಹಿಂದೆ ಹ್ಯಾಲೋ ಇರಬಹುದು ಅಥವಾ ಏನೂ ಇಲ್ಲದಿರಬಹುದು. ಕಾಣೆಯಾದ ಗ್ಲಿಫ್ ಬಗ್ಗೆ ಯಾವುದೇ ದೋಷ ಕಾಣಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಕೇಳುವ ಫಾಂಟ್ ಸ್ಟ್ಯಾಕ್ ಈ ಹೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಎರಡರಲ್ಲಿ ಒಂದಾಗಿರಬೇಕು:

{
  "id": "road-label-major",
  "type": "symbol",
  "source": "protomaps",
  "source-layer": "roads",
  "minzoom": 11,
  "layout": {
    "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
    "text-font": ["Noto Sans Medium"],  // or Noto Sans Regular
    "text-size": 10,
    "symbol-placement": "line"       // follow the road
  },
  "paint": {
    "text-color": "#2b2a26",
    "text-halo-color": "#ffffff",
    "text-halo-width": 1.1
  }
}

ಏನನ್ನೂ ಚಿತ್ರಿಸದ ಪದರವು ದೋಷವಲ್ಲ, ಮತ್ತು ಯಾವ ಪರಿಶೀಲನೆ ವಿಫಲವಾಯಿತು ಎಂದು MapLibre ಹೇಳುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪದರ ಖಾಲಿಯಾಗಿದ್ದರೆ, ಈ ಕ್ರಮದಲ್ಲಿ ಪರಿಶೀಲಿಸಿ: ಫೀಲ್ಡ್ ಹೆಸರು, ಪದರದ minzoom, ಫಾಂಟ್ ಸ್ಟ್ಯಾಕ್, ನಂತರ ಶೀಟ್‌ನ ಸ್ವಂತ light.json ನಲ್ಲಿರುವ ಐಕಾನ್ ಹೆಸರು.

ನಿಮ್ಮಲ್ಲಿರುವ ಶೈಲಿಯು ತನ್ನ ಗ್ಲಿಫ್‌ಗಳಿಗಾಗಿ demotiles.maplibre.org ಅನ್ನು ತೋರಿಸುತ್ತಿದ್ದರೆ, ಆ ಹೋಸ್ಟ್‌ನೇಮ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದಷ್ಟೇ ಮಾಡಬೇಕಾದ ಬದಲಾವಣೆ. ಪಾತ್ ಅನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿಯೇ ಒಂದೇ ರೀತಿ ಇರಿಸಲಾಗಿದೆ.

"glyphs": "https://tiles.jasontally.com/font/{fontstack}/{range}.pbf",
"sprite": "https://tiles.jasontally.com/sprites/v4/light"

// before, in a style you already have
- "glyphs": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",
+ "glyphs": "https://tiles.jasontally.com/font/{fontstack}/{range}.pbf",

ಯಾವುದೇ ಶೈಲಿಯು ಮೇಲಿನ ಎರಡನ್ನು ಬಿಟ್ಟು ಬೇರೆ ಫಾಂಟ್ ಸ್ಟ್ಯಾಕ್ ಕೇಳಿದರೆ, ಅದಕ್ಕೆ ಏನನ್ನೂ ಚಿತ್ರಿಸಲಾಗುವುದಿಲ್ಲ. Protomaps ನ ಸ್ವಂತ ಶೈಲಿಗಳು ದಪ್ಪ ಅಕ್ಷರಕ್ಕಾಗಿ Noto Sans Medium ಅನ್ನು ಬಳಸುತ್ತವೆ; ಈ ಸೆಟ್‌ನಲ್ಲಿ Noto Sans Bold ಇಲ್ಲ, ಅದಕ್ಕಾಗಿಯೇ ಅದನ್ನು ಕೇಳುವ ಶೈಲಿಯು ಸದ್ದಿಲ್ಲದೆ ಎಲ್ಲಾ ಹೆಸರುಗಳನ್ನೂ ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ.

ಯಾವ ಹೋಸ್ಟ್ ವೇಗವಾಗಿದೆ, ಮತ್ತು ಅದರ ಬಗ್ಗೆ ಏನು ನಿರ್ಧರಿಸಲಾಯಿತು. ಊಹಿಸುವ ಬದಲು ಅಳೆಯಲಾಗಿದೆ: ಒಂದೇ ಸಂಪರ್ಕದಲ್ಲಿ ಒಂದಾದ ನಂತರ ಒಂದರಂತೆ ಪರ್ಯಾಯ ವಿನಂತಿಗಳು, ಮೊದಲ ಮೂರು ಮಾದರಿಗಳನ್ನು ಕೈಬಿಟ್ಟು, ಮೊದಲ ಬೈಟ್ ಬರುವ ಸಮಯವನ್ನು ವರ್ಗಾವಣೆ ಸಮಯದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಯಿತು. ಆ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಈ ಪ್ರತಿಯೊಂದು ಫೈಲ್‌ಗೂ CDN 10 ರಿಂದ 45 ms ಬೇಗನೆ ಉತ್ತರಿಸಿತು; ಇದು 15% ನಿಯಮವನ್ನು ಮತ್ತು ಮಾದರಿಗಳ ಅಂತರವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ದಾಟುತ್ತದೆ. ಆ ಕಾರಣಕ್ಕಾಗಿ ಲೈಬ್ರರಿಗಳು jsDelivr ನಿಂದ ಲೋಡ್ ಆಗುತ್ತವೆ.

ಅದೇ ಅಳತೆಯು CDN ಸುಮಾರು 10 ms ಬೇಗ ಉತ್ತರಿಸುತ್ತದೆ ಎಂದು ಹೇಳಿದರೂ ಸಹ ಫಾಂಟ್‌ಗಳು ಮತ್ತು ಸ್ಪ್ರೈಟ್‌ಗಳನ್ನು ಇಲ್ಲಿಂದಲೇ ಒದಗಿಸಲಾಗುತ್ತದೆ. ಅದು ಅಳತೆಯಲ್ಲ, ಒಂದು ನಿರ್ಧಾರ. ಒಂದೇ ಹೋಸ್ಟ್‌ನೇಮ್‌ನಿಂದ ಬರುವ ನಕ್ಷೆಯು ಬೇರೊಬ್ಬರ ಸರ್ವರ್ ಸ್ಥಗಿತಗೊಂಡಾಗ ಕೆಟ್ಟುಹೋಗುವುದಿಲ್ಲ, ಮತ್ತು ಗ್ಲಿಫ್ ಸರ್ವರ್ ಸ್ಥಗಿತಗೊಂಡರೆ ನಕ್ಷೆಯಲ್ಲಿ ಯಾವುದೇ ಹೆಸರುಗಳಿರುವುದಿಲ್ಲ. ನಿಮಗೆ ಆ 10 ms ಉಳಿತಾಯವೇ ಬೇಕಿದ್ದರೆ, glyphs ಅನ್ನು protomaps.github.io/basemaps-assets/fonts ಕಡೆಗೆ ತೋರಿಸಿ, ಅದು ಅದೇ ಪಾತ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಇವು ಒಂದು ನಗರದ ಒಬ್ಬ ಓದುಗನ ಸಂಖ್ಯೆಗಳು, ಮತ್ತು ಹೋಲಿಕೆಯನ್ನು ಮತ್ತೆ ನಡೆಸಲು ಒಂದೇ ಕಮಾಂಡ್ ಸಾಕು.

ಐದು. Leaflet ಬಗ್ಗೆ

Leaflet ನ L.tileLayer ಚಿತ್ರಗಳನ್ನು ಬಿಡಿಸುತ್ತದೆ; ಇವು ವೆಕ್ಟರ್ ಟೈಲ್‌ಗಳು. ಆದರೂ Leaflet ನಕ್ಷೆಯು ಇವನ್ನು ಬಳಸಬಹುದು, ಮತ್ತು ಎರಡೂ ವಿಧಾನಗಳಲ್ಲಿ ನಿಮ್ಮ ಮಾರ್ಕರ್‌ಗಳು, ಪಾಪ್‌ಅಪ್‌ಗಳು ಮತ್ತು ನಿಯಂತ್ರಣಗಳು ಹಾಗೆಯೇ ಉಳಿಯುತ್ತವೆ. ಎರಡೂ ಬದಲಾವಣೆ ವಿಧಾನಗಳು OpenStreetMap ಟೈಲ್‌ಗಳಿಂದ ಸ್ಥಳಾಂತರ ವಿಭಾಗದಲ್ಲಿವೆ.

ಆರು. PMTiles ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಆರ್ಕೈವ್ ಅನ್ನು ಓದಿ

ನಕ್ಷೆ ಇಲ್ಲ, ಕೇವಲ ದತ್ತಾಂಶ. ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು, ಪರೀಕ್ಷೆಗಳು ಮತ್ತು ಚಿತ್ರವಲ್ಲದ ಯಾವುದಕ್ಕಾದರೂ ಉಪಯುಕ್ತ.

import { PMTiles, FetchSource } from "pmtiles";

const archive = new PMTiles(new FetchSource("https://tiles.jasontally.com/basemap.pmtiles"));

const header = await archive.getHeader();
console.log(header.minZoom, header.maxZoom);        // 0 15
console.log(header.numAddressedTiles);              // 1431655765

const metadata = await archive.getMetadata();
console.log(metadata.name);                          // "Protomaps Basemap"

const tile = await archive.getZxy(3, 4, 2);          // z, x, y
console.log(tile.data.byteLength);

ಎರಡು ಕ್ಲಾಸ್‌ಗಳನ್ನು ಗಮನಿಸಿ. FetchSource ಎಂಬುದು HTTP ಮೂಲಕ ಬೈಟ್ ಓದುವ ಸಾಧನ, ಮತ್ತು PMTiles ಎಂಬುದು ಅದರ ಮೇಲೆ ಕುಳಿತು ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ರೀಡರ್. FileSource ಎಂಬುದು FetchSource ನ ಸ್ಥಳೀಯ-ಫೈಲ್ ಸಮಾನರೂಪ; ಅದಕ್ಕೆ URL ಸ್ಟ್ರಿಂಗ್ ನೀಡಿದರೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ.

ಈ ಆರ್ಕೈವ್ ಒಂದು ಸ್ನ್ಯಾಪ್‌ಶಾಟ್ ಆಗಿದೆಯೇ ಹೊರತು ನೇರ ಫೀಡ್ ಅಲ್ಲ. ಸಮಯದ ವಿವರಗಳು ಇದು ಎಷ್ಟು ಹೊಸದು? ವಿಭಾಗದಲ್ಲಿವೆ.

OpenStreetMap ಟೈಲ್‌ಗಳಿಂದ ಸ್ಥಳಾಂತರ

ಟೈಲ್ ಬಳಕೆ ನೀತಿಯ ನಿರ್ಬಂಧ, 403 ದೋಷ, ಮತ್ತು ಅವುಗಳ ಬಗ್ಗೆ ಏನು ಮಾಡಬೇಕು. ಯಾವುದೇ ಕೀ ಇಲ್ಲ, ಕೋಟಾ ಇಲ್ಲ.

ನಕ್ಷೆಯು ನಿರ್ಬಂಧದ ಸಂದೇಶವನ್ನು ಏಕೆ ತೋರಿಸುತ್ತದೆ

App is not following the tile usage policy of OpenStreetMap’s volunteer-run servers

General block: app is not following the tile usage policy of openstreetmap volunteer-run servers

403 Forbidden — tile.openstreetmap.org

ಟೈಲ್ ಬಳಕೆ ನೀತಿಯ ಅಡಿಯಲ್ಲಿ ಟೈಲ್ ಸರ್ವರ್‌ಗಳು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿಯೇ ನಕ್ಷೆಯ ಬದಲು ಆ ಚಿತ್ರವನ್ನು ಕಳುಹಿಸಿವೆ. ಇದು ತಾಂತ್ರಿಕ ದೋಷವಲ್ಲ, ಮತ್ತು URL ಅನ್ನು ಸರಿಪಡಿಸುವುದರಿಂದ ಇದು ನಿವಾರಣೆಯಾಗುವುದಿಲ್ಲ.

ಜನರು ಮೊದಲು ಪ್ರಯತ್ನಿಸುವುದು:

ಕಚೇರಿಗಳು, ಶಾಲೆಗಳು, VPN ಗಳು ಮತ್ತು ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಒಂದೇ ವಿಳಾಸವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ, ಮತ್ತು ನಿರ್ಬಂಧಗಳು ಆ್ಯಪ್‌ಗಳಂತೆಯೇ ವಿಳಾಸಗಳಿಗೂ ಅನ್ವಯಿಸುತ್ತವೆ. ನಿಮ್ಮ ಕಡೆಯಿಂದ ನಿಮಗೆ ಯಾವ ನಿರ್ಬಂಧ ಬಿದ್ದಿದೆ ಎಂದು ಹೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಆದ್ದರಿಂದ ಆ ಸರ್ವರ್‌ಗಳನ್ನು ಕೇಳುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಅವುಗಳಿಂದ ಹೊರಬರಲು ಮೂರು ದಾರಿಗಳಿವೆ.

Leaflet ಅನ್ನು ಹಾಗೆಯೇ ಉಳಿಸಿಕೊಳ್ಳಿ

protomaps-leaflet ಲೈಬ್ರರಿಯು Leaflet ನಲ್ಲಿ ವೆಕ್ಟರ್ ಟೈಲ್‌ಗಳನ್ನು ಚಿತ್ರಿಸುತ್ತದೆ. ಇದು ತಾನೇ ಆರ್ಕೈವ್ ಅನ್ನು ಓದಿ ಸಾಮಾನ್ಯ ಪದರವಾಗಿ ಸೇರಿಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಮಾರ್ಕರ್‌ಗಳು, ಪಾಪ್‌ಅಪ್‌ಗಳು, GeoJSON ಮತ್ತು ನಿಯಂತ್ರಣಗಳು ಇರುವಲ್ಲಿಯೇ ಉಳಿಯುತ್ತವೆ. ಈ ಆರ್ಕೈವ್‌ನೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಲಾದ ಒಂದು ಪ್ರತಿ ಇಲ್ಲಿದೆ: https://tiles.jasontally.com/vendor/protomaps-leaflet.js.

ಮೊದಲು:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>

<script>
  const map = L.map("map").setView([48.85, 2.35], 12);

  L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
    maxZoom: 19,
    attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
  }).addTo(map);
</script>

ನಂತರ:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
+ <script src="https://tiles.jasontally.com/vendor/protomaps-leaflet.js"></script>

<script>
  const map = L.map("map").setView([48.85, 2.35], 12);

-  L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { ... }).addTo(map);
+  protomapsL.leafletLayer({
+    url: "https://tiles.jasontally.com/basemap.pmtiles",
+    flavor: "light",
+    lang: "en"
+  }).addTo(map);
</script>

protomaps-leaflet ಅಪ್‌ಸ್ಟ್ರೀಮ್‌ನಲ್ಲಿ ನಿರ್ವಹಣಾ ಮೋಡ್‌ನಲ್ಲಿದೆ: ಕೇವಲ ದೋಷ ನಿವಾರಣೆಗಳು, ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳಿಲ್ಲ. ಈಗಾಗಲೇ ಇರುವ Leaflet ಆ್ಯಪ್‌ಗೆ ಇದು ಸಾಕು. ಹೊಸ ಕೆಲಸವನ್ನು MapLibre GL ನಲ್ಲಿ ಪ್ರಾರಂಭಿಸಬೇಕು.

Leaflet ಉಳಿಸಿಕೊಳ್ಳಿ, MapLibre ಮೂಲಕ ರೆಂಡರ್ ಮಾಡಿ

@maplibre/maplibre-gl-leaflet ಲೈಬ್ರರಿಯು Leaflet ನ ಟೈಲ್ ಪೇನ್‌ನಲ್ಲಿ MapLibre ನಕ್ಷೆಯನ್ನು ಇರಿಸುತ್ತದೆ. Leaflet ನಲ್ಲಿಯೇ ಉಳಿಯುವ ಆ್ಯಪ್‌ನಲ್ಲಿ ನಿಮಗೆ ಮೇಲಿನ ಶೈಲಿಗಳಲ್ಲಿ ಒಂದು ಬೇಕಿದ್ದರೆ, ಅಥವಾ ಟೆರೇನ್ ಮತ್ತು ಹಿಲ್‌ಶೇಡ್ ಬೇಕಿದ್ದರೆ ಇದನ್ನು ಬಳಸಿ.

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<link rel="stylesheet" href="https://tiles.jasontally.com/vendor/maplibre-gl.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://tiles.jasontally.com/vendor/maplibre-gl.js"></script>
<script src="https://tiles.jasontally.com/vendor/pmtiles.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-leaflet@0.1.4/dist/leaflet-maplibre-gl.js"></script>

<script>
  // The style's source is pmtiles://, so MapLibre needs the protocol first.
  maplibregl.addProtocol("pmtiles", new pmtiles.Protocol().tile);

  const map = L.map("map", { minZoom: 1 }).setView([48.85, 2.35], 12);

  const gl = L.maplibreGL({
    style: "https://tiles.jasontally.com/styles/light.json"
  }).addTo(map);

  // gl.getMaplibreMap() is the MapLibre map, for sources and layers.
</script>

MapLibre GL ಗೆ ಸ್ಥಳಾಂತರಿಸಿ

ಒಂದೇ ಲೈಬ್ರರಿ, ಯಾವುದೇ ಅಡಾಪ್ಟರ್ ಇಲ್ಲ, ಮತ್ತು ಮೇಲಿನ ಶೈಲಿಗಳು ಇರುವಂತೆಯೇ ಕೆಲಸ ಮಾಡುತ್ತವೆ. ಸಂಪೂರ್ಣ ಪುಟವು ಒಂದು. ಪುಟದಲ್ಲಿ ನಕ್ಷೆಯನ್ನು ಹಾಕಿ ವಿಭಾಗದಲ್ಲಿದೆ. ಬದಲಾವಣೆಯು ಮುಖ್ಯವಾಗಿ ನಿರ್ದೇಶಾಂಕಗಳ ಕ್ರಮವನ್ನು ತಿರುಗಿಸುವುದಾಗಿದೆ:

LeafletMapLibre GL
L.map("map").setView([lat, lng], z)new maplibregl.Map({ container: "map", center: [lng, lat], zoom: z })
L.tileLayer(url).addTo(map)ವೆಕ್ಟರ್ ಮೂಲವನ್ನು ಹೊಂದಿರುವ ಶೈಲಿ; ಮೇಲೆ ನೋಡಿ
L.marker([lat, lng]).bindPopup(html)new maplibregl.Marker().setLngLat([lng, lat]).setPopup(new maplibregl.Popup().setHTML(html))
L.geoJSON(data)addSource(id, { type: "geojson", data }), ನಂತರ addLayer
L.control.scale()new maplibregl.ScaleControl()
map.invalidateSize()map.resize()

setView([lat, lng]) ಮೊದಲು ಅಕ್ಷಾಂಶವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ; ಪ್ರತಿಯೊಂದು MapLibre ಕರೆಯೂ [lng, lat] ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನಕ್ಷೆಯು ತಪ್ಪು ಗೋಳಾರ್ಧದಲ್ಲಿ ಕಾಣಿಸಿದರೆ ಅದಕ್ಕೆ ಕಾರಣ ಇದೇ ಹೊರತು ಟೈಲ್‌ಗಳಲ್ಲ. ಶೈಲಿ ಲೋಡ್ ಆಗುವ ಮೊದಲು ಸೇರಿಸಿದ ಮೂಲಗಳು ಮತ್ತು ಪದರಗಳು ಯಾವುದೇ ದೋಷ ಸಂದೇಶವಿಲ್ಲದೆ ಕೈಬಿಡಲ್ಪಡುತ್ತವೆ, ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು map.on("load", …) ಒಳಗೆ ಸೇರಿಸಿ.

“archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles”

ಅದು pmtiles.leafletRasterLayer ಆಗಿದ್ದು, ರಾಸ್ಟರ್ PMTiles ಅನ್ನು ಚಿತ್ರಗಳಾಗಿ ಬಿಡಿಸುತ್ತದೆ. ಇವು ವೆಕ್ಟರ್ ಟೈಲ್‌ಗಳಾಗಿರುವುದರಿಂದ ಅದು ಇವನ್ನು ನಿರಾಕರಿಸುತ್ತದೆ. ಯಾವುದೇ ಆಯ್ಕೆಯೂ ಅದನ್ನು ಬದಲಾಯಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಇಲ್ಲಿ ಯಾವುದೇ ರಾಸ್ಟರ್ ಪ್ರತಿ ಇಲ್ಲ. ಮೇಲಿನ ಆಯ್ಕೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಿ.

“download.openstreetmap.fr returned 403”

ಅದು ಎಕ್ಸ್‌ಟ್ರಾಕ್ಟ್ ಮತ್ತು ರೆಪ್ಲಿಕೇಶನ್ ಮಿರರ್ ಆಗಿದೆಯೇ ಹೊರತು ಟೈಲ್ ಸರ್ವರ್ ಅಲ್ಲ. ಅಕ್ಟೋಬರ್ 2026 ರಲ್ಲಿ ಮಿತಿಮೀರಿದ ಡೌನ್‌ಲೋಡ್‌ಗಳ ನಂತರ ಅದು ವಿಳಾಸಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿತು, ಮತ್ತು ನಿರ್ವಾಹಕರು ಪ್ರತಿಯೊಂದು ಪ್ರಕರಣವನ್ನು ಪರಿಶೀಲಿಸಿ ಪ್ರವೇಶವನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದಾಗಿ ಹೇಳಿದರು. ಇಲ್ಲಿರುವ ಯಾವುದಕ್ಕೂ ಅದರ ಅಗತ್ಯವಿಲ್ಲ: ಈ ಆರ್ಕೈವ್ Protomaps ಬಿಡುಗಡೆಗಳಿಂದ ಬರುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ಸ್ವತಃ .osm.pbf ಅನ್ನು ಜೋಡಿಸಬೇಕಿಲ್ಲ. ನೀವು OSM ದತ್ತಾಂಶವನ್ನು ಎಳೆಯುವುದಾದರೆ, ನಿಮಿಷದ ಸ್ಟ್ರೀಮ್ ಬದಲಿಗೆ ಆವರ್ತಕ ಎಕ್ಸ್‌ಟ್ರಾಕ್ಟ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ.

ಶೈಲಿಗಳು

ಅದೇ ಟೈಲ್‌ಗಳು, ವಿಭಿನ್ನ ಬಣ್ಣಗಳು. ಒಂದನ್ನು ಆರಿಸಿ, ನಕಲಿಸಿ, ಬದಲಾಯಿಸಿ, ಅದು ನಿಮ್ಮದು.

ಶೈಲಿಹೇಗೆ ಕಾಣಿಸುತ್ತದೆಫೈಲ್

ಟೈಲ್‌ಗಳಲ್ಲಿ ಏನಿದೆ

ಪುಟ ಲೋಡ್ ಆದಾಗ ಆರ್ಕೈವ್‌ನ ಸ್ವಂತ ಮೆಟಾಡೇಟಾದಿಂದ ಓದಲಾಗಿದೆ. ಒಂದು ಶೈಲಿಯು ಬಳಸಲೇಬೇಕಾದ ಪದರದ ಹೆಸರುಗಳು ಇವು.

ಮೂಲ ಪದರಜೂಮ್ಫೀಲ್ಡ್‌ಗಳು
ಲೋಡ್ ಆಗುತ್ತಿದೆ…

ಇದು ಏನಲ್ಲ

ನೇರ ಉತ್ತರಗಳು, ಇದರಿಂದ ನಂತರ ನಿಮಗೆ ಇಲ್ಲಿ ಯಾವುದೂ ಆಶ್ಚರ್ಯವನ್ನುಂಟುಮಾಡುವುದಿಲ್ಲ.

ಇದು ಎಷ್ಟು ಹೊಸದು?

ಈ ಟೈಲ್‌ಗಳು Protomaps Basemap ನ ಪ್ರತಿಯಾಗಿದ್ದು, ತಿಂಗಳಿಗೊಮ್ಮೆ ಮರುನಿರ್ಮಿಸಲಾಗುತ್ತದೆ.

ಶೈಲಿ JSON

open raw