การแสดงผลสไตล์ OpenStreetMaps แบบกำหนดเอง (ที่ดิน = สีขาว, น้ำ = ดำ): ฉันต้องใช้คอมพิวเตอร์เฉพาะเพื่อทำสิ่งนี้หรือไม่?


10

แก้ไข: เป้าหมายของฉันคือไม่ใช้ OpenStreetMap หรือ cloudmade เป็นแผนที่เว็บ ฉันอธิบายสิ่งที่ฉันต้องการอย่างแน่นอน ("ชุดไพ่เต็มรูปแบบ rasterized สำหรับคนทั้งโลกที่ซูม = 10 (ประมาณ 68 Gigapixels, water = black, land = white, ไม่มีป้ายกำกับ") ฉันแค่ใช้ cloudmade.com เท่านั้น ลิงก์เป็นตัวอย่างเพื่อแสดงสิ่งที่ฉันกำลังถ่ายภาพ (ตามที่เป็นอยู่สไตล์คลาวด์ที่ทำขึ้นมีเพียง 90% ของที่นั่น) ฉันต้องการไทล์ออฟไลน์ฉันต้องการรูปภาพ (68 Gpix) ฉันอธิบายว่าเป็นหน้ากาก ในงานแผนที่แรสเตอร์ขนาดใหญ่กว่าสำหรับแผนที่ที่กำหนดเองที่ฉันกำลังสร้างโดยใช้ข้อมูล NASA และ USGS


เป็นภาพประกอบ

ฉันสร้างสไตล์ที่กำหนดเองซึ่งแสดงประเภทของสิ่งที่ฉันต้องการ:

(ไม่มีป้ายกำกับไม่มีถนนไม่มีคุณลักษณะใด ๆ เลยยกเว้นลักษณะน้ำทั้งหมด (แม่น้ำทะเลสาบมหาสมุทรคุณตั้งชื่อ) ว่าเป็นสีดำโดยที่ที่ดินเป็นสีขาวทึบและการลดค่าของ Mapnik ที่ดีในระหว่างนั้น)


สิ่งที่ฉันต้องการจริงๆ

ฉันต้องการชุดไพ่เต็มที่แรสเตอร์ทั่วโลกที่ซูม = 10 (ประมาณ 68 Gigapixels)

ฉันถือว่าการดาวน์โหลดและติดตั้งPlanet.osm (บีบอัด 11 GB)และเรียกใช้ Mapnik (สำหรับวัน / สัปดาห์?) เพื่อรับข้อมูลนี้ อย่างไรก็ตาม Planet.osm ดูเหมือนว่าจะใช้ 100GB หรืออาจ 1TB เมื่อฐานข้อมูลและดัชนีถูกสร้างขึ้น ฉันไม่มีพื้นที่ว่างในแล็ปท็อปของฉันและเนื่องจากฉันไม่ต้องการชุดข้อมูลแบบเต็มมีข้อมูลย่อย ๆ ที่ฉันสามารถดาวน์โหลดได้ (มันบอกว่าที่นี่มีข้อมูลรูปหลายเหลี่ยมเพียง 700 MB) จริง ๆ แล้วจากสิ่งที่ฉันสามารถบอกได้ว่าข้อมูลมีขนาดเพิ่มขึ้นเป็นสองเท่าในปีที่แล้วดังนั้นฉันจึงต้องการเครื่องจักรที่มีเนื้อเพื่อจัดการกับสิ่งนี้

มีวิธีที่ง่ายกว่าตรงที่จะได้รับกระเบื้องเหล่านี้ (ระดับ 10, ขาวดำ, เพียงแค่ลงบนพื้นน้ำ) แบตช์หรือฉันจำเป็นต้องใช้คอมพิวเตอร์เฉพาะเพื่อทำสิ่งนี้หรือไม่?


แผนที่คลาวด์นั้นดูดีจริงๆ เรียบง่าย แต่ดี สีขาวบนสีดำและสีน้ำเงินอ่อนใช้ได้ดีจริงๆ
นาธาน W

การติดตาม (ด้วยผลลัพธ์ที่สำเร็จเบื้องต้นจาก naturalearthdata.com): gis.stackexchange.com/questions/1917//
Jared Updike

คำตอบ:


7

คุณต้องใช้ OSM หรือไม่? หรือชุดข้อมูลเวกเตอร์ที่คล้ายกัน แต่มีขนาดเล็กกว่าจะเหมาะกับคุณหรือไม่ ถ้าเป็นเช่นนั้นให้พิจารณา Natural Earth ( http://naturalearthdata.com ) ซึ่งมีแนวชายฝั่งทะเลที่สวยงามขนาด 1: 10M พื้นที่ดินมหาสมุทรแม่น้ำและทะเลสาบ จากนั้นคุณสามารถใช้ GeoServer หรือ MapServer ในเครื่อง (หรือบนเซิร์ฟเวอร์ระยะไกล) เพื่อสร้างไทล์ของคุณในระดับความลึกที่คุณต้องการด้วยการแคชไทล์ปกติ (TileCache, GeoWebCache เป็นต้น)

จากคำถามของคุณมันไม่ชัดเจนแม้แต่กับฉันว่าคุณต้องการกระเบื้อง - ถ้าคุณต้องการเพียงแค่หน้ากากคุณก็สามารถทำได้โดยใช้ GRASS - v.toRaster () (ฉันคิดว่า)


ฉันคิดว่าคุณหมายถึง naturalearthdata.com
Jared Updike

คุณพูดถูก - ฉันแก้ไขแล้ว
Ian Turton

4

คุณไม่จำเป็นต้องดาวน์โหลดชุดข้อมูลทั้งหมด

คุณสามารถดาวน์โหลดไฟล์รูปหลายเหลี่ยมได้จาก

http://downloads.cloudmade.com/

หรือ

ทันสมัยขึ้นเล็กน้อย (31/08/2553) http://download.geofabrik.de/osm/

แฮ็คที่สกปรก (ไม่แนะนำ)

ไทล์เริ่มต้น (256x256px)

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 1 /256/15/17599/10746.png

บันทึก 1 = StyleID ดังนั้นหากคุณแทนที่ Style ด้วย ID ของคุณ

http://maps.cloudmade.com/?styleId= 22688 #

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 22688 /256/15/17599/10746.png ของคุณรับไทล์ 256x256px ในรูปแบบ png ตามสไตล์ของคุณ สามารถใช้สคริปต์เพื่อดาวน์โหลดสิ่งที่จำเป็นทั้งหมด

แม้ว่าฉันจะสมัครใช้งานคีย์เว็บ lite api และใช้ api เพื่อฝังใน iframe (ตามคำแนะนำของ cloudmade)

แหล่งที่มา: http://developers.cloudmade.com/projects/tiles/documents


3

ฉันไม่เข้าใจว่าทำไม Mapperz คิดว่าการใช้ API เอกสารเป็น "แฮ็คที่สกปรก" แต่คุณสามารถใช้มันได้อย่างอิสระโดยไม่ จำกัด การดาวน์โหลดไทล์ทั้งหมดที่คุณต้องการ มันจะง่ายกว่าแน่นอนกว่า:

  • ดาวน์โหลดข้อมูล
  • ติดตั้งและตั้งค่า Mapnik
  • เขียน XML สไตล์ Mapnik
  • พยายามเรียกใช้ generate_tiles.py
  • พบปัญหาแน่นอนที่สุดกับขั้นตอนเหล่านี้

ดังนั้นคำตอบของคำถาม OP คือเพียงแค่เขียนสคริปต์ที่จะใช้HTTP API ของ CloudMadeเพื่อดาวน์โหลดไทล์

แก้ไข: ถ้าคุณตั้งใจจะทำการเรนเดอร์ด้วยตัวเองฉันขอแนะนำให้คุณเริ่มต้นด้วยการอ่านคู่มือการติดตั้ง Mapnik และXML ในการสร้างไทล์คุณจะต้องใช้ยูทิลิตีนี้จาก OpenStreetMap repo

สำหรับคำถามใด ๆ เกี่ยวกับการ Mapnik คุณยินดีต้อนรับกำลังใช้Mapnik ผู้ใช้รายชื่อผู้รับจดหมายหรือเยี่ยมชม #mapnik ช่อง IRC บน Freenode


2
ในข้อตกลง: cloudmade.com/terms_conditions คุณจะต้องใช้ API - แทนที่จะใช้ 'การขูดกระเบื้อง' โดยตรงคำเดียวกันนี้ใช้กับ Google Maps API ข้อสำคัญ: การคัดลอกภาพย่อยจากเซิร์ฟเวอร์ของ Google ด้วยเหตุผลใดก็ตามขัดต่อข้อกำหนดในการให้บริการและ ไม่แนะนำ
Mapperz

ฉันคิดว่ามันค่อนข้างเจ๋งที่จะตั้ง Mapnik และโยน Planet.osm เข้าไป แต่ดูเหมือนว่าคอมพิวเตอร์ / ฮาร์ดดิสก์ปัจจุบันของฉันไม่เพียงพอ แต่ฉันจะเก็บไว้ในรายการตัวเลือกของฉัน ในความคิดที่สองอาจเป็นไปได้ที่จะมีคนที่มี Planet.osm นำเข้ามาใน Mapnik เพื่อทำการถ่ายโอนข้อมูล OSM เพียงแค่เลเยอร์ (น้ำ / ที่ดิน) ที่ฉันต้องการ อย่างน้อยฉันควรถามในช่อง IRC นั่นอาจเป็นผลสำเร็จ
Jared Updike

3

หากสิ่งที่คุณต้องการคือแนวชายฝั่งพวกเขาสามารถมีได้เพียง 260MB: http://hypercube.telascience.org/~kleptog/

ฉันสองข้อเสนอแนะของโลกธรรมชาติข้างต้น; คุณจะพบว่าหน้าตาดีขึ้นและเร็วขึ้นสำหรับการแสดงในระดับที่ต่ำกว่า คุณเพียงแค่ต้องรำคาญกับ OSM ที่ซูม 8 ขึ้นไปหรือมากกว่านั้น (ลองทดสอบเล็กน้อยเพื่อดู)


สิ่งนี้มีน้ำจืดหรือไม่? (ทะเลสาบผู้สำรวจแม่น้ำหรือไม่) ฉันสามารถคำนวณชายฝั่งของตัวเองจากชุดข้อมูลระดับความสูง SRTM 50m / 500m ความจริงฉันหวังว่าจะได้รับ rasterized กระเบื้องของน้ำทั้งหมด (สดและเกลือ) ร่วมกันเพราะมันจะทำงานอย่างสม่ำเสมอในการตั้งค่าปัจจุบันของฉัน (กำหนดเอง) สไตล์ Cloudmade ที่ฉันแสดงให้เห็นนั้นอยู่ในระยะนิ้วที่สมบูรณ์แบบ แต่ไม่ใช่ - มันไม่ใช่ขาวดำอย่างแท้จริง (ไม่แน่ใจว่าจะแก้ไขได้อย่างไร) และด้วยเหตุผลบางอย่างที่มีฉลากแบบสุ่มที่นี่และที่นั่นซึ่งฉันไม่ต้องการ และไม่สามารถหาวิธีลบได้
Jared Updike
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.