OSMTileProxy เป็นพร็อกซีแคชสำหรับไทล์แผนที่จาก Openstreetmap หรือผู้ให้บริการไทล์แผนที่รายอื่น
มันเปิดเผยจุดสิ้นสุด /tiles/{provider}/{level:int}/{x:int}/{y:int} ส่งคืนรูปภาพสำหรับพิกัดไทล์ที่กำหนด ขั้นแรกจะโหลดไทล์จากผู้ให้บริการ เก็บไว้ในดิสก์แคช จากนั้นใช้อิมเมจนี้จนกว่าจะหมดอายุ
ส่วนการกำหนดค่า Tiles
ใน appsettings.json
มีทุกสิ่งที่จำเป็นสำหรับการพร็อกซีและการแคช
"Tiles": {
"Cache": "/var/www/tiles",
"Providers": [
{
"Id": "osm",
"Url": "https://tile.openstreetmap.org/{0}/{1}/{2}.png",
"UserAgent": "Your-user-agent",
"ContentType": "image/png",
"UseWebp": false,
"MinZoom": 1,
"MaxZoom": 19
}
]
}
ด้านล่างนี้คือคำอธิบายของพารามิเตอร์ส่วนต่างๆ
Cache
- โฟลเดอร์ที่แคชไทล์ไว้ ในการกำหนดค่าการพัฒนา appsettings.Development.json
มันคือ c:temptiles ตรวจสอบให้แน่ใจว่า c:temp มีอยู่หรือระบุตำแหน่งอื่น
Providers
- อาร์เรย์ของพารามิเตอร์ผู้ให้บริการ
Providers:[i]:Id
- ตัวระบุที่กำหนดเองของผู้ให้บริการ ซึ่งใช้ในจุดสิ้นสุด เช่น /osm/2/1/1
Providers:[i]:Url
- รูปแบบจุดสิ้นสุดของผู้ให้บริการ โดยที่ {0} คือระดับ (การซูมแผนที่), {1} - พิกัด x ของไทล์, {2} - พิกัด y ของไทล์
Providers:[i]:UserAgent
- จำเป็นสำหรับบริการ Openstreetmap โปรดระบุ User-Agent เฉพาะของคุณ
Providers:[i]:ContentType
- ค่าของส่วนหัว Content-Type ในการตอบสนอง เมื่อ UseWebp
(ดูด้านล่าง) เป็น true
ส่วนหัวนี้จะถูกตั้งค่าเป็น image/webp เสมอ
Providers:[i]:UseWebp
- พารามิเตอร์ทางเลือก (ค่าเริ่มต้นคือ false
) เมื่อ true
OSMTileProxy จะแปลงรูปภาพไทล์เป็นรูปแบบ webp
Providers:[i]:MinZoom
- พารามิเตอร์ทางเลือก (ค่าเริ่มต้นคือ 1) ระบุระดับการซูมขั้นต่ำสำหรับผู้ให้บริการไทล์ ซึ่งใช้สำหรับการตรวจสอบ
Providers:[i]:MaxZoom
- พารามิเตอร์ทางเลือก (ค่าเริ่มต้นคือ 19) ระบุระดับการซูมสูงสุดสำหรับผู้ให้บริการไทล์ ซึ่งใช้สำหรับการตรวจสอบ
หากใช้งานเป็นคอนเทนเนอร์นักเทียบท่า ให้ผูกไดเรกทอรีแคชกับคอนเทนเนอร์ของคุณ เป็นต้น
docker run -p 8080:8080 --name osmtileproxy -v /var/www/tiles:/var/www/tiles -d osmtileproxy:latest