Shapefile ไปยัง SVG ด้วย ArcMap (ในขณะที่รักษาแอตทริบิวต์ของประเทศ)


10

ไม่มีใครรู้วิธีการส่งออกไฟล์ธรรมชาติรูปร่าง 1: 110m ไปยัง SVG ด้วย ArcMap ในขณะที่ยังคงคุณลักษณะของประเทศหรือไม่

จาก SVG ฉันจะพยายามแปลงอีกครั้งเป็น RaphaelJS เพื่อให้ได้สิ่งที่ต้องการ:

http://backspace.com/mapapp/javascript_world/

http://backspace.com/mapapp/javascript_world/js/world_570.js

แต่ฉันใหม่ทั้งหมดนี้ฉันไม่แน่ใจว่าจะทำอย่างไร อาจจะไม่มีวิธีใดนอกจากการเพิ่มรหัสประเทศสำหรับ JS ด้วยตนเอง?

คำตอบ:


4

ฉันสร้างแผนที่เหล่านั้นดังนั้นฉันสามารถอธิบายขั้นตอนที่ฉันใช้ อาจเป็นวิธีที่ดีกว่าที่จะทำ แต่นี่คือวิธีการทำงานสำหรับฉัน:

  1. ใน ArcMap ให้แต่ละสถานะเป็นชั้นของตัวเอง ฉันใช้ ID ของเลเยอร์จากตารางแอตทริบิวต์เลเยอร์ต้นทางแล้วบิตของ ArcMap Python:

    import arcgisscripting
    gp = arcgisscripting.create()
    gp.MakeFeatureLayer_management('ne_110m_admin_0_countries','AF','"ABBREV" = \'Afg.\'')
    gp.MakeFeatureLayer_management('ne_110m_admin_0_countries','AO', '"ABBREV" = \'Ang.\'')
    gp.MakeFeatureLayer_management('ne_110m_admin_0_countries','AL', '"ABBREV" = \'Alb.\'')
    ...etc...
    

    สิ่งนี้จะสร้างเลเยอร์ใหม่สำหรับแต่ละสถานะที่มีรหัส ISO สองตัวอักษรของสถิตินั้น

  2. ฉันส่งออกจาก ArcMap เป็น Adobe Illustrator ใน Illustrator เลเยอร์จะได้รับการเก็บรักษาและตั้งชื่อตามที่เคยเป็นใน ArcMap ใน Illustrator ฉันปรับขนาดรูปร่างให้เหมาะสมและทำการปรับแต่งสไตล์ จากนั้นส่งออกเป็น SVG

  3. เรียกใช้สคริปต์ perl นี้เพื่อแปลงไฟล์ SVG เป็น Raphael.js ที่เป็นมิตร json: https://gist.github.com/2655111

และนั่นคือ!


1

ไม่แน่ใจว่าสิ่งนี้จะใช้งานได้กับคุณหรือไม่ (ฉันเดาว่ามันจะใช้งานได้ง่ายกว่าบนระบบ Linux) แต่โครงการนี้ดูมีแนวโน้มโดยเฉพาะอย่างยิ่งถ้าคุณรู้จัก Perl:

https://github.com/kbh3rd/shptosvg/wiki

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