ما هي أفضل طريقة لقراءة تمثل وتقديم خريطة البيانات ؟

StackOverflow https://stackoverflow.com/questions/222716

سؤال

أنا مهتم في كتابة التبسيط تطبيق الملاحة كحيوان أليف المشروع.بعد البحث حول مجانا خريطة البيانات لدي استقر على مكتب تعداد الولايات المتحدة النمر 2007 الخط/الشكلي بيانات الخريطة.يتم تقسيم البيانات إلى ملفات zip الفردية المقاطعات و لقد قمت بتحميل واحد المقاطعات خريطة البيانات بلدي المنطقة.

ما يمكن أن يكون أفضل طريقة لقراءة في هذه الخريطة-البيانات إلى شكل صالح للاستخدام?

كيف يجب أن:

  • قراءة في هذه الملفات
  • تحليل منهم - التعبير العادية أو بعض المكتبات التي يمكن بالفعل تحليل هذه Shapefiles?
  • تحميل البيانات إلى التطبيق يجب تحميل نقطة مباشرة في بعض datastructure في الذاكرة ؟ استخدام صغيرة قاعدة البيانات ؟ لا ضرورة استمرار بمجرد إغلاق التطبيق من بيانات الخريطة.يمكن للمستخدم تحميل الشكلي مرة أخرى.

ما يمكن أن يكون أفضل طريقة لجعل الخريطة مرة واحدة كنت قد قرأت في الشكلي البيانات ؟

من الناحية المثالية أود أن تكون قادرة على قراءة في المقاطعات بيانات الخريطة الشكلي و تقديم كل بولي خطوط على الشاشة وتسمح الدورية و التحجيم.

كيف يجب أن:

  • تحويل خطوط الطول/العرض يشير إلى شاشة الإحداثيات ؟ - بقدر ما أعرف الشكلي استخدامات خطوط الطول والعرض على النقاط.لذا من الواضح أنا ذاهب إلى تحويل هذه بطريقة أو بأخرى إلى إحداثيات الشاشة لعرض ملامح الخريطة.
  • تقديم بيانات الخريطة (سلسلة من الخطوط المتعددة للطرق والحدود ، وما إلى ذلك) في الطريقة التي يمكنني بسهولة تناوب على نطاق كامل الخريطة ؟
  • تجعل حياتي كلها الخريطة على شكل سلسلة من "البلاط" لذلك فقط الميزات/الخطوط ضمن مساحة العرض هي حالتها ؟

Ex.النمر البيانات المقدمة كما عرض الخريطة:
alt text

أي شخص لديه بعض الخبرة والبصيرة إلى ما هي أفضل طريقة بالنسبة لي أن أقرأ في هذه الملفات ، كيف يجب أن تمثل لهم (قاعدة البيانات في الذاكرة datastructure) في البرنامج, و كيف يجب أن تجعل (مع تدوير/القياس) الخريطة-بيانات على الشاشة سيكون موضع تقدير.

تحرير:للتوضيح أنا لا ترغب في استخدام أي من Google أو Yahoo maps API.وبالمثل لا تريد استخدام خريطة الشارع المفتوح.انا ابحث عن المزيد من الصفر النهج من الاستفادة من تلك واجهات برمجة التطبيقات/البرامج.وسوف يكون هذا سطح المكتب التطبيق.

هل كانت مفيدة؟

المحلول

أولا أنصحك باستخدام ملفات النمر 2008.

ثانيًا، كما أشار آخرون، هناك الكثير من المشاريع الموجودة الآن والتي تقوم بالفعل بقراءة البيانات وتفسيرها وتحويلها واستخدامها.يعد إنشاء المحلل اللغوي الخاص بك لهذه البيانات أمرًا تافهًا تقريبًا، لذلك لا يوجد سبب لمراجعة كود مشروع آخر ومحاولة استخراج ما تحتاجه إلا إذا كنت تخطط لاستخدام مشروعهم ككل.

إذا كنت تريد أن تبدأ من المستوى الأدنى

تفسير

سيكون إنشاء محلل TIGER الخاص بك (سهلًا إلى حد معقول - مجرد قاعدة بيانات لأجزاء الخط)، وإنشاء عرض بسيط فوق ذلك (الخطوط والمضلعات والحروف/الأسماء) أمرًا سهلاً إلى حد ما.سوف ترغب في إلقاء نظرة على مختلف أنواع إسقاط الخريطة لمرحلة التقديم.الأكثر استخدامًا (وبالتالي الأكثر شهرة للمستخدمين) هو إسقاط مركاتور - إنها بسيطة وسريعة إلى حد ما.قد ترغب في اللعب بدعم التوقعات الأخرى.

سيوفر هذا القليل من "المرح" فيما يتعلق برؤية كيفية عرض الخريطة، وكيفية عكس هذا الإسقاط (على سبيل المثال، ينقر المستخدم على الخريطة، وتريد رؤية خط العرض/الطول الذي نقر عليه - يتطلب عكس الإسقاط الحالي معادلة).

استدعاء

عندما قمت بتطوير العارض الخاص بي، قررت أن أبني نافذتي على حجم ثابت (جهاز مضمن)، وتكبير ثابت.هذا يعني أنه يمكنني توسيط الخريطة عند خط العرض/الخط، ومع البكسل المركزي = خط العرض/الخط المركزي عند تكبير معين، ونظرًا لإسقاط مركاتور، يمكنني حساب البكسل الذي يمثل كل خط عرض/خط، والعكس صحيح.

تسمح بعض البرامج بتغيير النافذة، وبدلاً من استخدام التكبير ونقطة ثابتة، فإنها تستخدم نقطتين ثابتتين (غالبًا الزاويتين العلويتين اليسرى والسفلى اليمنى لمستطيل يحدد النافذة).في هذه الحالة، يصبح من السهل تحديد البكسل لنقل خطوط العرض/خطوط الطول - إنها مجرد عدد قليل من حسابات الاستيفاء.يؤدي التدوير والقياس إلى جعل وظيفة النقل هذه أكثر تعقيدًا بعض الشيء، ولكن لا ينبغي أن تكون كذلك إلى حد كبير - فهي لا تزال نافذة مستطيلة مع استكمال داخلي، لكن زوايا النافذة لا تحتاج إلى أن تكون في أي اتجاه معين فيما يتعلق بالشمال.يضيف هذا بعض حالات الزاوية (يمكنك قلب الخريطة رأسًا على عقب ومشاهدتها كما لو كنت من داخل الأرض، على سبيل المثال) ولكنها ليست مرهقة، ويمكن التعامل معها أثناء العمل عليها.

بمجرد الانتهاء من نقل خطوط العرض/الطول إلى البكسل، يصبح عرض الخطوط والمضلعات بسيطًا إلى حد ما باستثناء مشكلات الرسومات العادية (مثل تداخل حواف الخطوط أو المضلعات بشكل غير مناسب، أو الصقل، وما إلى ذلك).لكن عرض خريطة قبيحة أساسية كما يفعل العديد من العارضين مفتوحي المصدر هو أمر بسيط إلى حد ما.

ستتمكن أيضًا من اللعب بحسابات المسافة والدوائر الكبرى - على سبيل المثال، هناك قاعدة جيدة تتمثل في أن كل درجة من خطوط العرض أو الطول عند خط الاستواء تبلغ حوالي 111.1 كيلومترًا - ولكن درجة واحدة تتغير كلما اقتربت من أي من القطبين، بينما الآخر يستمر في البقاء عند 111.1 كم.

التخزين والهياكل

ومع ذلك، فإن كيفية تخزين البيانات والرجوع إليها تعتمد بشكل كبير على ما تخطط للقيام به بها.تنشأ الكثير من المشكلات الصعبة إذا كنت تريد استخدام نفس بنية قاعدة البيانات للتركيبة السكانية مقابل التوجيه - ستكون بنية قاعدة البيانات المعينة والفهرسة سريعة بالنسبة لأحدهما، وبطيئة بالنسبة للآخر.

إن استخدام الرموز البريدية وتحميل الرموز البريدية القريبة فقط يعمل مع مشاريع عرض الخرائط الصغيرة، ولكن إذا كنت بحاجة إلى طريق عبر البلد، فستحتاج إلى بنية مختلفة.تحتوي بعض التطبيقات على قواعد بيانات "متراكبة" تحتوي فقط على الطرق الرئيسية وتلتقط المسارات المؤدية إلى التراكب (أو من خلال تراكبات متعددة - محلية، أو مترو، أو مقاطعة، أو ولاية، أو بلد).وينتج عن هذا توجيه سريع، ولكنه غير فعال في بعض الأحيان.

تبليط

إن تبليط خريطتك ليس بالأمر السهل في الواقع.عند التكبير الأقل، يمكنك عرض خريطة كاملة وتقطيعها.عند مستويات التكبير الأعلى، لا يمكنك عرض كل شيء مرة واحدة (بسبب قيود الذاكرة/المساحة)، لذا يتعين عليك تقسيمه إلى شرائح.

يؤدي قطع الخطوط عند حدود المربعات حتى تتمكن من عرض المربعات الفردية إلى نتائج أقل من مثالية - غالبًا ما يتم عرض الخطوط خارج حدود المربع (أو، على الأقل، يتم الاحتفاظ ببيانات نهاية السطر، على الرغم من توقف العرض بمجرد ذلك يجد أنها سقطت من الحافة) - يؤدي هذا إلى تقليل الخطأ الذي يحدث عندما تبدو الخطوط وكأنها غير متطابقة تمامًا أثناء انتقالها عبر المربعات.

سترى ما أتحدث عنه أثناء عملك على هذه المشكلة.

ليس من السهل العثور على البيانات التي تدخل إلى بلاطة معينة أيضًا - قد يكون للخط طرفين خارج بلاطة معينة، ولكنه ينتقل عبر البلاطة.ستحتاج إلى استشارة كتب الرسومات حول هذا (كتاب مايكل أبراش هو المرجع الأساسي, ، متاح مجانًا الآن على الرابط السابق).بينما يتحدث في الغالب عن الألعاب، فإن النوافذ، والقص، والحواف المضلعة، والاصطدام، وما إلى ذلك كلها تنطبق هنا.

ومع ذلك، قد ترغب في اللعب على مستوى أعلى.

بمجرد الانتهاء من تنفيذ ما سبق (إما عن طريق تكييف مشروع موجود، أو القيام بما سبق بنفسك) قد ترغب في اللعب بسيناريوهات وخوارزميات أخرى.

يعد الترميز الجغرافي العكسي أمرًا سهلاً إلى حد معقول. أدخل خطوط العرض/الخط (أو انقر على الخريطة) واحصل على أقرب عنوان.يعلمك هذا كيفية تفسير العناوين على طول مقاطع الخط في بيانات TIGER.

يعد الترميز الجغرافي الأساسي مشكلة صعبة. تعد كتابة محلل العناوين مشروعًا مفيدًا ومثيرًا للاهتمام، ثم تحويل ذلك إلى خطوط العرض/خطوط الطول باستخدام بيانات TIGER وهو أمر غير تافه، ولكنه ممتع للغاية.ابدأ بطريقة بسيطة وصغيرة من خلال طلب المطابقة الدقيقة للاسم والتنسيق، ثم ابدأ في النظر في المطابقة "الإعجابية" والمطابقة الصوتية.هناك الكثير من الأبحاث في هذا المجال - قم بإلقاء نظرة على مشاريع محركات البحث للحصول على بعض المساعدة هنا.

العثور على أقصر طريق بين نقطتين هو مشكلة ليست تافهة. هناك العديد والعديد من الخوارزميات للقيام بذلك، ومعظمها حاصل على براءة اختراع.أوصي إذا حاولت ذلك، استخدم خوارزمية سهلة لتصميمك الخاص، ثم قم بإجراء بعض الأبحاث وقارن تصميمك بأحدث ما توصلت إليه التكنولوجيا.إنه أمر ممتع للغاية إذا كنت مهتمًا بنظرية الرسم البياني.

اتباع المسار وإعطاء التعليمات بشكل استباقي ليس سهلاً كما يبدو للوهلة الأولى.بالنظر إلى مجموعة من التعليمات مع مجموعة مرتبطة من أزواج خطوط العرض/الخط، "اتبع" المسار باستخدام مدخلات خارجية (نظام تحديد المواقع العالمي (GPS)، أو نظام تحديد المواقع العالمي (GPS) المحاكي) وقم بتطوير خوارزمية تعطي تعليمات المستخدم عند اقترابه من كل تقاطع حقيقي.لاحظ أن هناك أزواج خطوط العرض/الطول أكثر من التعليمات بسبب انحناء الطرق، وما إلى ذلك، وستحتاج إلى اكتشاف اتجاه السفر وما إلى ذلك.الكثير من الحالات الزاوية التي لن تراها حتى تحاول تنفيذها.

نقطة البحث المثيرة للاهتمام. هذا مثير للاهتمام - تحتاج إلى العثور على الموقع الحالي، وجميع النقاط المثيرة للاهتمام (ليست جزءًا من TIGER، أو اصنعها بنفسك أو احصل على مصدر آخر) ضمن مسافة معينة (كما يطير الغراب، أو مسافة القيادة الأصعب) الأصل.هذا مثير للاهتمام لأنه يتعين عليك تحويل قاعدة بيانات النقاط المهمة إلى تنسيق يسهل البحث عنه في هذه الظروف.لا يمكنك تخصيص الوقت لمراجعة ملايين الإدخالات وإجراء حساب المسافة (sqrt(x^2 + y^2)) وإرجاع النتائج.يجب أن يكون لديك طريقة أو خوارزمية ما لتقليل كمية البيانات أولاً.

بائع متجول. التوجيه مع وجهات متعددة.مجرد نسخة أصعب من التوجيه العادي.

يمكنك العثور على عدد من الروابط للعديد من المشاريع ومصادر المعلومات حول هذا الموضوع هنا.

حظاً سعيداً، ويرجى نشر كل ما تفعله، مهما كان بدائياً أو قبيحاً، حتى يستفيد الآخرون!

-آدم

نصائح أخرى

SharpMap هو محرك رسم خرائط مفتوح المصدر .NET 2.0 لـ WinForms وASP.NET.قد يوفر هذا جميع الوظائف التي تحتاجها.إنه يتعامل مع تنسيقات البيانات النقطية وناقلات نظم المعلومات الجغرافية الأكثر شيوعًا بما في ذلك ملفات أشكال ESRI.

الحل هو :

  • خادم جغرافي مكاني مثل خادم الخرائط والخادم الجغرافي والدرجة (مفتوح المصدر).

يمكنهم قراءة ملفات الأشكال وتقديمها (وأشياء أخرى كثيرة).على سبيل المثال، يقدم الخادم الجغرافي (عند تثبيته) البيانات من ملفات أشكال TIGER لمكتب الإحصاء الأمريكي كعرض توضيحي

  • مكتبة خرائط جافا سكريبت مثل الطبقات المفتوحة (راجع الأمثلة في نص الرابط

هناك الكثير من الأمثلة على الويب باستخدام هذا الحل

سؤال مضحك.هنا هو كيف نفعل ذلك.

اعتقد مهما الهندسة أحتاج في أي صيغ أنها تأتي في.لقد تم سحب البيانات من هيئة المسح الجيولوجي الامريكية ، بحيث يرقى إلى مجموعة من:

ثم كتب برنامج "يجمع" أولئك شكل التعاريف إلى نموذج فعال لتقديم.وهذا يعني القيام بأي توقعات تنسيق البيانات التحويلات اللازمة بكفاءة عرض البيانات.بعض التفاصيل:

  • بالنسبة 2D التطبيق ، يمكنك استخدام أيا كان الإسقاط تريد: خريطة التوقعات.
  • 3D, تحتاج إلى تحويل هؤلاء العرض/الطول في الإحداثيات 3D.هنا بعض الرياضيات على كيفية القيام بذلك: التحول من كروية الإحداثيات إلى إحداثيات مستطيلة الشكل العادي.
  • كسر كل الأوليات في quadtree/octree (2D/3D).ورقة العقد في هذه الشجرة تحتوي على إشارات إلى جميع الهندسة التي يتقاطع أن ورقة عقدة (محور الانحياز) إحاطة مربع.(وهذا يعني أن قطعة من الهندسة يمكن الرجوع إليها أكثر من مرة.)
  • الهندسة ثم تنقسم إلى طاولة القمم وطاولة الرسم الأوامر.هذا هو الشكل المثالي OpenGL.يمكن إصدار أوامر عبر glDrawArrays باستخدام vertex مخازن (قمة العازلة الكائنات).
  • عام الزائر يستخدم نمط المشي quadtree/octree.المشي ينطوي على اختبار ما إذا كان الزائر يتقاطع معين العقد من الشجرة حتى ورقة العقدة التي واجهتها.زائر يشمل:رسم كشف التصادم و الاختيار.(لأن أوراق شجرة يمكن أن تحتوي على تكرار إشارات إلى الهندسة ، وكر علامات العقد كما يجري زار يتجاهل لهم بعد ذلك.هذه العلامات يجب أن تكون إعادة تعيين أو تحديث قبل القيام القادم السير.)
  • باستخدام التقسيم المكاني النظام (من الأشجار) و الرسم كفاءة التمثيل هو أمر حاسم لتحقيق عالية فراميراتس.لقد وجدت أن في هذه الأنواع من التطبيقات تريد معدل الإطار الخاص بك على أعلى مستوى ممكن 20 إطارا في الثانية كحد أدنى.ناهيك عن حقيقة أن الكثير من الأداء سوف تعطيك الكثير من الفرص لخلق أفضل يبحث الخريطة.(الألغام هو أبعد من أن تبحث جيدا, ولكن سيكون هناك بعض يوم.)
  • المكاني التقسيم يساعد على تقديم الأداء من خلال تقليل عدد الأوامر التعادل إرسالها إلى المعالج.ومع ذلك ، هناك قد يأتي وقت عندما يقوم المستخدم يريد فعلا أن عرض كامل البيانات (ربما بهدف التأكد).في هذه الحالة أنت بحاجة مستوى من التفصيل نظام التحكم.منذ تطبيق يتعامل مع الشوارع أعطي الأولوية الطرق السريعة أكبر الطرق.رسم بلدي رمز يعرف كيف العديد من الأوليات يمكنني رسم قبل فراميراتي يذهب إلى أسفل.الأوليات هي أيضا مرتبة حسب الأولوية.أود أن ألفت الأولى فقط x البنود حيث x هو عدد من الأوليات يمكنني رسم في المطلوب فراميراتي.

والباقي هو كاميرا مراقبة و الرسوم المتحركة من أي البيانات التي تريد عرضها.

وهنا بعض الأمثلة من القائمة التنفيذ:

الصورة http://seabusmap.com/assets/Picture%205.png الصورة http://seabusmap.com/assets/Picture%207.png

لتخزين بيانات النمر محليا، سأختار Postgresql مع ال postgis أدوات.

لديهم مجموعة رائعة من الأدوات، خاصة بالنسبة لك النمر الجغرافي يقدم طريقة جيدة لاستيراد واستخدام بيانات النمر.

ستحتاج إلى إلقاء نظرة على الأدوات التي تتفاعل مع postgis، على الأرجح نوعًا ما خادم الخرائط

من http://postgis.refactions.net/documentation/:

يوجد الآن العديد من الأدوات مفتوحة المصدر التي تعمل مع PostGIS.يعمل مشروع uDig على بيئة سطح مكتب كاملة للقراءة/الكتابة يمكنها العمل مع PostGIS مباشرة.لرسم خرائط الإنترنت، يمكن لجامعة مينيسوتا Mapserver استخدام PostGIS كمصدر للبيانات.تحتوي مجموعة أدوات GeoTools Java GIS على دعم PostGIS، كما هو الحال مع GeoServer Web Features Server.يدعم GRASS PostGIS كمصدر للبيانات.يحتوي عارض GIS لسطح المكتب JUMP Java على مكون إضافي بسيط لقراءة بيانات PostGIS، ويتمتع سطح مكتب QGIS بدعم جيد لـ PostGIS.يمكن تصدير بيانات PostGIS إلى العديد من تنسيقات GIS الناتجة باستخدام مكتبة OGR C++ وأدوات سطر الأوامر (وبالطبع مع أداة تفريغ ملفات الأشكال المجمعة).وبالطبع فإن أي لغة يمكنها العمل مع PostgreSQL يمكنها العمل مع PostGIS - تتضمن القائمة Perl وPHP وPython وTCL وC وC++ وJava وC# والمزيد.

يحرر:على الرغم من أن خادم الخرائط يحتوي على كلمة SERVER في اسمه، فسيكون هذا قابلاً للاستخدام في بيئة سطح المكتب.

على الرغم من أنك قررت بالفعل استخدام بيانات TIGER، فقد تكون مهتمًا بها OSM (خريطة الشارع المفتوحة), ، لأن OSM لديه استيراد كامل لبيانات TIGER، معززة بالبيانات التي يساهم بها المستخدم.إذا التزمت بتنسيق TIGER، فسيكون تطبيقك عديم الفائدة للمستخدمين الدوليين، مع OSM ستحصل على TIGER وكل شيء آخر مرة واحدة.

OSM هو مشروع مفتوح يعرض خريطة العالم المجانية التي تم تحريرها بشكل تعاوني.يمكنك الحصول على كل هذه البيانات بالإضافة إلى ملف XML منظم جيدًا، إما بالاستعلام عن منطقة ما، أو تنزيل العالم بأكمله في ملف كبير.

تتوفر بعض برامج عرض الخرائط لـ OSM بلغات برمجة مختلفة، ومعظمها مفتوح المصدر، ولكن لا يزال هناك الكثير مما يتعين القيام به.

هناك أيضا خدمة توجيه OSM متوافرة.يحتوي على واجهة ويب وقد يكون أيضًا قابلاً للاستعلام عبر واجهة برمجة تطبيقات خدمة الويب.مرة أخرى، لم ينته كل شيء.يمكن للمستخدمين بالتأكيد استخدام تطبيق توجيه سطح المكتب أو الهاتف المحمول المبني على هذا.

حتى لو لم تقرر المضي في هذا المشروع، يمكنك الحصول على الكثير من الإلهام منه.مجرد إلقاء نظرة على مشروع ويكي وعلى مصادر المشاريع البرمجية المختلفة المعنية (ستجد روابط لها داخل الويكي).

يمكنك أيضًا العمل مع تطبيق رسم خرائط الأرض المرئي من Microsoft وواجهة برمجة التطبيقات أو استخدام واجهة برمجة تطبيقات Google.لقد قمت دائمًا بالبرمجة تجاريًا باستخدام منتجات ESRI ولم ألعب بواجهة برمجة التطبيقات المفتوحة كثيرًا.

قد ترغب أيضًا في إلقاء نظرة على Maker!و مكتشف!إنها برامج جديدة نسبيًا ولكن أعتقد أنها مجانية.قد يقتصر على تضمين البيانات.صانع يمكن العثور عليها هنا.

المشكلة هي أن المعالجة المكانية جديدة إلى حد ما على النطاق غير التجاري.

إذا كنت لا تمانع في الدفع مقابل الحل البرامج الآمنة تنتج منتجًا يسمى FME.ستساعدك هذه الأداة على ترجمة البيانات من أي تنسيق إلى أي تنسيق آخر.بما في ذلك KML وتنسيق Google Earth أو تقديمه بتنسيق JPEG (أو سلسلة من ملفات JPEG).بعد تحويل البيانات، يمكنك تضمين برنامج Google Earth في تطبيقك باستخدام واجهة برمجة التطبيقات أو مجرد عرض الصور المتجانبة.

بالإضافة إلى ذلك، فإن FME عبارة عن منصة قوية جدًا، لذلك أثناء إجراء ترجماتك، يمكنك إضافة أو إزالة أجزاء من البيانات التي لا تحتاج إليها بالضرورة.دمج المصادر إذا كان لديك أكثر من مصدر.تحويل الإحداثيات (لا أتذكر بالضبط ما يستخدمه برنامج Google Earth).تخزين النسخ الاحتياطية في قاعدة بيانات.ولكن على محمل الجد، إذا كنت ترغب في صرف بضعة دولارات، فيجب عليك النظر في هذا الأمر.

يمكنك أيضًا إنشاء علامات (كما هو الحال في نموذج الخريطة الخاص بك) والتي تحتوي على موقع (مكان وضعه) وبيانات/تعليقات أخرى حول الموقع.هذه الأعلام تأتي في العديد من الأشكال والأحجام.

أحد التبسيطات على مركاتور أو أي إسقاط آخر هو افتراض عامل تحويل ثابت لخط العرض وخط الطول.اضرب درجات خط العرض بـ 69.172 ميلاً؛بالنسبة لخط الطول، اختر خط العرض الأوسط لمنطقة خريطتك واضرب (خط الطول 180) في جيب التمام (middle_latitude)*69.172.بمجرد التحويل إلى أميال، يمكنك استخدام مجموعة أخرى من التحويلات للوصول إلى إحداثيات الشاشة.

هذا ما نجح معي في عام 1979.

مصدري لعدد الأميال لكل درجة.

عندما أعطى إجابة السؤال كان المسمى

"ما يمكن أن يكون أفضل طريقة لتقديم الشكلي (خريطة البيانات) مع الخطوط المتعددة في .الشبكة؟"

الآن هو مسألة مختلفة ولكن أترك جوابي على السؤال الأصلي.

كتبت .صافي الإصدار الذي يمكن أن يوجه ناقلات البيانات (مثل الهندسة من وهو ملف shp) استخدام عادي+ GDI في c#.ذلك كان ممتعا جدا.

وكان السبب في أننا بحاجة إلى التعامل مع إصدارات مختلفة من هندستها مع سمات الكثير معلومات إضافية حتى نتمكن عدم استخدام تجاري مكون الخريطة أو مفتوح المصدر واحد.

الشيء الرئيسي عند القيام بهذا إنشاء منفذ العرض ترجمة/تحويل الإحداثيات WGIS84 إلى مستوي و GDI+ x,y الإحداثيات الانتظار مع الإسقاط حتى إذا كنت تحتاج إلى reproject على الإطلاق.

أحد الحلول هو استخدام MapXtreme.لديهم واجهات برمجة التطبيقات (API) لـ Java وC#.واجهة برمجة التطبيقات (API) قادرة على تحميل هذه الملفات وعرضها.

لجافا:

http://www.mapinfo.com/products/developer-tools/desktop%2c-mobile-%26-internet-offering/mapxtreme-Java

بالنسبة إلى .NET:

http://www.mapinfo.com/products/developer-tools/desktop%2c-mobile-%26-internet-offering/mapxtreme-2008

لقد استخدمت هذا الحل في تطبيق سطح المكتب وعمل بشكل جيد.إنه يقدم الكثير أكثر من تقديم المعلومات فقط.

الآن قد يستغرق القيام بذلك من الصفر بعض الوقت.لديهم نسخة تقييمية يمكنك تنزيلها.أعتقد أنه يطبع فقط "MAPXTREME" على الخريطة كعلامة مائية، ولكنه قابل للاستخدام تمامًا بخلاف ذلك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top