نحن نربط الخرائط عبر الإنترنت مع المستكشف على الهاتف الذكي. الجزء 1 - خرائط خطوط المسح القياسية

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


المحتويات:


1 - مقدمة. الخرائط النقطية القياسية
2 - استمرار. كتابة أداة تنقيط بسيطة لخرائط المتجهات
3 - حالة خاصة. نقوم بتوصيل بطاقة OverpassTurbo


دخول


من بين تطبيقات الملاحة للهواتف الذكية ، هناك تلك التطبيقات المصممة للسياحة وجميع أنواع أنشطة الضواحي. من أشهرها OsmAnd و Locus و GuruMaps. تتميز جميعها بعدد كبير من الوظائف المتخصصة التي يمكن أن تكون في متناول اليد على طول الطريق. وأيضا عدد أكبر من جميع أنواع الإعدادات (في بعض الأحيان مربكة للغاية). ولكن الآن نحن مهتمون بشيء واحد: القدرة على إضافة بطاقات إضافية والتبديل بينها بسرعة.


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


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


ألاحظ أنه بالنسبة لجميع التطبيقات ، تكون الإعدادات المسبقة متشابهة إلى حد ما. لذلك ، على سبيل المثال ، سننظر في GuruMaps ، لأنه مخصص لنظامي Android و iOS. لذلك ، دعونا نتخيل أننا ذهبنا إلى المجلد مع إعداداته المسبقة ، ووجدنا ملفًا يسمى openstreetmaps.ms ، ثم افتحه باستخدام محرر نصوص منتظم.


<?xml version="1.0" encoding="UTF-8"?> <customMapSource> <name>OpenStreetMaps</name> <minZoom>0</minZoom> <maxZoom>18</maxZoom> <url>http://{$serverpart}.tile.openstreetmap.org/{$z}/{$x}/{$y}.png</url> <serverParts>ab c</serverParts> </customMapSource> 

في الواقع ، لدينا فقط قائمة من عدة قيم. لننظر فيها بالترتيب:


اسم - اسم الخريطة التي سيتم عرضها في التطبيق
minZoom - من مستوى التكبير / التصغير سيتم عرض هذه الخريطة
maxZoom - حتى مستوى التكبير / التصغير سيتم عرض هذه الخريطة
عنوان url - قالب للوصول إلى ملفات الخرائط
serverParts - إذا كان للخادم الذي يتم تخزين ملفات الخريطة عليه عدة مرايا ، فأنت بحاجة إلى سرد أسمائهم


قبل الانتقال ، ألاحظ أنه بالنسبة للتخزين على الخوادم ، يتم تقسيم البطاقات الكبيرة إلى قطع صغيرة. عادة ما تكون هذه صور بتنسيق png بحجم 256 × 256 بكسل. وتسمى هذه الشظايا البلاط .



الآن دعونا نلقي نظرة فاحصة على قالب url.


http://{$serverpart}.tile.openstreetmap.org /{$z}/{$x}/{$y}.png


يستبدل المستكشف تلقائيًا الكلمات الموجودة في الأقواس بـ "إحداثيات" جزء الخريطة المطلوب حاليًا. إليك ما سيتم استبداله بالتحديد بذرات الروتين:


{$ serverpart} - سيتم استبدال إحدى قيم serverParts هنا.
{$ z} - مستوى التكبير الذي تريد تنزيل جزء خريطة له
{$ x} - الرقم الأفقي لجزء الخريطة
{$ y} - رقم جزء الخريطة عموديًا


بعد استبدال القيم ، سيتلقى المستكشف رابطًا ، يقوم بتنزيل الملف بعد ذلك باستخدام جزء الخريطة المطلوب. على سبيل المثال ، هذا:


http://a.tile.openstreetmap.org /12/2478/1265.png


عند اكتمال التنزيل ، سيتم عرض البلاط الذي تم تنزيله على شاشة الهاتف الذكي.


أضف بطاقتك


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



افتح اللوحة باستخدام أدوات المطور (Ctrl + Alt + I لـ Google Chrome)


في اللوحة التي تفتح ، انتقل إلى علامة التبويب مصادر.


نفتح جميع المجلدات بالترتيب حتى نعثر على المجلد الذي يحتوي على صور لشرائح الخريطة المعروضة.


انقر بزر الماوس الأيمن على اسم الملف. في القائمة التي تفتح ، حدد نسخ عنوان الرابط



على سبيل المثال ، حصلنا على مثل هذا الرابط
http://anygis.herokuapp.com/Combo_Best_Genshtab/1242/639/11


تحتاج إلى فهم ما تعنيه هذه الأرقام بالضبط. نتحقق من بطاقة المرجع الخاصة بنا - خريطة الشارع المفتوح.


http://a.tile.openstreetmap.org/1242/639/11.png


لا تحميل. دعنا نحاول مبادلة الأرقام.
http://a.tile.openstreetmap.org/11/1242/639.png


تحميل! قارن الآن البلاط الذي حصلت عليه الروابط الأولى والثانية:



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


حسنًا ، والآن ، ومعرفة ترتيب ترتيب إحداثيات OpenStreetMaps - z ، x ، y - يمكننا أن نقول بثقة أين يذهبون على خريطتنا.


http://anygis.herokuapp.com/Combo_Best_Genshtab/{$x}/{$y}/{$z}


يمكنك الآن التكبير والتصغير على الخريطة في إطار العرض. لذلك اكتشفنا أن البطاقة يتم تحميلها فقط من الزوم 0 و 15.


علاوة على ذلك ، إذا بدأ عنوان url بحرف أو رقم واحد ، فسيكون من الممكن استبدال القيم الأخرى هناك. ولكن عادة ما يكون هناك إما a أو b أو c أو 0،1،2،3 .


لذلك ، لقد اكتشفنا الآن جميع المعلمات الضرورية ويمكننا إعداد إعداد مسبق لخريطتنا الجديدة.


 <?xml version="1.0" encoding="UTF-8"?> <customMapSource> <name>.   </name> <minZoom>0</minZoom> <maxZoom>15</maxZoom> <url>http://anygis.herokuapp.com/Combo_Best_Genshtab/{$x}/{$y}/{$z}</url> </customMapSource> 

يبقى حفظ الملف تحت اسم جديد وإضافته إلى تطبيق الملاحة الخاص بك. لنظام iOS - ما عليك سوى سحب وإفلات الملف في مجلد التطبيق (عبر iTunes). لنظام Android - انسخ الملف إلى الدليل التالي:


Android\data\com.bodunov.GalileoPro\files\Imported


الآن ، عند فتح المستكشف ، يظهر ما قمت به في قائمة الخرائط. تهانينا!



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


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


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


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

Source: https://habr.com/ru/post/ar461031/


All Articles