วิธีง่ายๆในการมีแผนที่บนเว็บออฟไลน์คืออะไร? [ปิด]


15

เป้าหมายของฉันคือการมีแผนที่โลกฝังอยู่ในหน้าเว็บ แต่ไม่สามารถเข้าถึงอินเทอร์เน็ตได้ โดยเฉพาะชุดของไพ่ที่รวมกับแผนที่แบบลื่น ๆ js-lib พื้นที่เก็บข้อมูลไม่ใช่ปัญหาจริงๆและไม่จำเป็นต้องมีระดับการซูมสูงสุด

วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร?

ฉันพบโครงการที่ดูเหมือนจะพอดีกับใบเรียกเก็บเงิน - แผนที่ติด แต่ดูเหมือนว่าจะตาย?


2
"ไม่จำเป็นต้องใช้การซูมสูงสุด" หมายความว่าอย่างไร คุณต้องการสเกล / ความแม่นยำ / ความคมชัดประเภทใด
Mr_Chimp

2
mapnik (Windows) github.com/mapnik/mapnik/windowsInstallationและใช้ localhost เป็น url (local machine)
Mapperz

ความถูกต้องและความละเอียดไม่สำคัญประเทศและเมืองนายกเทศมนตรีก็เพียงพอแล้ว แต่แน่นอนว่าฉันต้องการให้มันดีที่สุดเท่าที่จะทำได้ ความเรียบง่ายสำคัญกว่าฉันพยายามหลีกเลี่ยงบริการและฐานข้อมูลเพิ่มเติม
tek

1
หากคุณยินดีที่จะใช้เวลาสองสามวันในการกำหนดค่าบน windows ให้ mapnik + postgis + postgresql + proj.4 + python 2.7 + ... เป็นตัวเลือก แต่หลังจากผ่านไปแล้วฉันขอแนะนำให้ค้นคว้าคำตอบ TileMill ด้านล่าง เสียงมากได้ง่ายขึ้น
ca0v

มันง่ายจริงๆ ปัญหาเดียวคือการเก็บข้อมูลแผนที่และปัญหาเกี่ยวกับลิขสิทธิ์ที่เกี่ยวข้องกับการสร้างระบบแผนที่ออฟไลน์ เช่นผู้ให้บริการแผนที่ส่วนใหญ่ที่อนุญาตให้ใช้งานฟรี (เช่น Google) จะทำเช่นนั้นต่อเมื่อแผนที่นั้นเผยแพร่สู่สาธารณะ แต่นี่เป็นคำถามที่แตกต่างกันอย่างสิ้นเชิง ... ฉันแค่ทำเพื่ออังกฤษใช้ OS Open Data ที่ใช้งานได้ฟรี
Mr_Chimp

คำตอบ:


17

ฉันอยากจะแนะนำให้ดูเป็นTileMillซึ่งทำโดยคนเดียวกับที่ workign บน Maps On A Stick TileMill เป็นส่วนหนึ่งของ Maps On A Stick หรือเป็นสิ่งที่ Maps On A Stick กลายเป็น - เช่นนั้น ฉันลืมการเชื่อมต่อ อย่างไรก็ตาม...

TileMill จะช่วยให้คุณโหลดข้อมูลทางภูมิศาสตร์จัดรูปแบบตามที่คุณต้องการจากนั้นสร้างชุดของแผนที่ย่อย PNG สำหรับระดับการซูมที่หลากหลาย

ผลลัพธ์ของ TileMill เป็นไฟล์. mbtiles นี่เป็นเพียงฐานข้อมูล sqlite ที่เก็บ PNG หากคุณทำงานแบบออฟไลน์คงง่ายกว่าถ้าคุณแยก pngs ไปยังโฟลเดอร์ (ใช้mbutil ) แทนที่จะใช้ sqlite เพื่อเข้าถึง

หากแผนที่ของคุณค่อนข้างเรียบง่าย (เช่นการมีปฏิสัมพันธ์น้อยที่สุด) ฉันขอแนะนำให้ใช้ใบปลิวสำหรับห้องสมุดแผนที่ของคุณ

ในแผ่นพับคุณต้องเพิ่มเลเยอร์ไทล์ (คำใบ้: ใช้ tms แทน xyz)

หวังว่าจะช่วย

แก้ไข:คู่ของสิ่งที่ควรทราบ

1) คุณควรระวังข้อ จำกัด สิทธิ์การใช้งานด้วยข้อมูลแผนที่ใด ๆ ที่คุณใช้ (ดูความคิดเห็นของฉันในคำถามด้านบน)

2) หากคุณเข้ามาใกล้พอที่จะเห็นถนน ฯลฯ คาดว่าจะมีแผ่นกระเบื้องหลาย GB


มีหลักฐานของแนวคิดและการทำงาน! ฉันจะต้องตรวจสอบปัญหาการออกใบอนุญาตเพิ่มเติม แต่นี่น่าจะเป็นทางออกที่ง่ายที่สุด
tek

2

อีกตัวเลือกหนึ่งที่จะเป็นสิ่งที่ชอบmapwingis ไม่จำเป็นต้องใช้กระเบื้องมันจะอ่านไฟล์รูปร่าง


MapWinGIS ค่อนข้างดี แต่คำถามที่ระบุบนเว็บ
Mr_Chimp

มันบอกว่าหน้าเว็บไม่ใช่บนเว็บและไม่ได้ระบุการเข้าถึงอินเทอร์เน็ตดังนั้นฉันจึงคิดว่านั่นหมายถึงเซิร์ฟเวอร์ที่ใช้ (หรือในพื้นที่) ซึ่งน่าจะใช้ได้สำหรับ Mapwingis ฉันใช้มันในรูปแบบในฐานข้อมูล Access และไม่สามารถจินตนาการได้ว่ามันจะยากกว่าที่จะนำไปใช้ในหน้าเว็บ
เอียน

2

ฉันได้พบโครงการใหม่ชื่อOpenMapTilesซึ่งทำให้ง่ายขึ้นมากในการมีแผนที่ออฟไลน์

การตั้งค่าเซิร์ฟเวอร์ไทล์บนเครื่องของคุณนั้นง่ายมาก ติดตั้ง Node.js (ด้วย npm) และทำตามสองขั้นตอนในเอกสารของพวกเขา: https://openmaptiles.org/docs/

คุณสามารถดาวน์โหลดแผนที่ได้จากเว็บไซต์ของพวกเขา (รวมถึงแผนที่ของดาวเคราะห์ทั้งใบซึ่งตอนนี้มีขนาด ~ 44 GB): https://openmaptiles.org/downloads/


1

หากคุณสามารถสร้างไฟล์ MBTiles ได้ (เช่นกับ Tilemill) คุณสามารถแปลงไฟล์นั้นเป็นถุงแบบเรียบง่ายในโฟลเดอร์ซ้อนกันที่สอดคล้องกับรูปแบบ z / x / y ที่คาดไว้โดยใช้tilestache-seed.pyสคริปต์ที่มาพร้อมกับ Tilestache นี่คือสิ่งที่ฉันทำเมื่อเร็ว ๆ นี้:

http://mike.teczno.com/img/hachure/labels/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.