অফলাইন ওয়েব অ্যাপ্লিকেশনের জন্য চিত্র ডেটা সংরক্ষণ করা (ক্লায়েন্ট-পার্শ্ব স্টোরেজ ডাটাবেস)


105

আমার অ্যাপ্লিকেশন ব্যবহার করে একটি অফলাইন ওয়েব অ্যাপ্লিকেশন রয়েছে। আমার এটি প্রায় 10MB - 20MB ডেটা সরবরাহ করতে হবে যা এটি প্রধানত পিএনজি চিত্র ফাইলগুলির সমন্বয়ে (ক্লায়েন্ট-সাইড) সংরক্ষণ করবে। অপারেশনটি নিম্নরূপ:

  1. অ্যাপ্লিকেশন ওয়েব অ্যাপ্লিকেশন ডাউনলোড এবং ইনস্টল করে (ম্যানিফেস্ট ব্যবহার করে)
  2. সার্ভার পিএনজি ডেটা ফাইল থেকে ওয়েব অ্যাপ্লিকেশন অনুরোধ (কীভাবে? - নীচের বিকল্পগুলি দেখুন)
  3. মাঝেমধ্যে ওয়েব অ্যাপ্লিকেশন সার্ভারের সাথে পুনরায় সংযোগ স্থাপন করে এবং পিএনজি ডাটাবেসে ছোট আংশিক আপডেট / মুছে ফেলা / সংযোজন করে
  4. এফওয়াইআই: সার্ভারটি একটি জাসন রেস্ট সার্ভার, এটি পিকআপের জন্য ফাইলগুলিকে wwwroot এ রাখতে পারে

এখানে ক্লায়েন্ট ভিত্তিক "ডাটাবেসগুলি" সম্পর্কে আমার বর্তমান বিশ্লেষণ যা বাইনারি ব্লব স্টোরেজ পরিচালনা করে

নীচে আপডেট দেখুন

  • অ্যাপক্যাচে (ম্যানিফেস্টের মাধ্যমে সমস্ত পিএনজি যোগ করুন এবং তারপরে চাহিদার উপরে আপডেট করুন)
    • কন: পিএনজি ডাটাবেস আইটেমের যে কোনও পরিবর্তনের অর্থ ম্যানিফেস্টে সমস্ত আইটেমের সম্পূর্ণ ডাউনলোড হবে (সত্যিই খারাপ খবর!)
  • WebStorage
    • কন: জেএসএন স্টোরেজের জন্য ডিজাইন করা
    • কন: কেবল বেস 64৪ টি এনকোডিংয়ের মাধ্যমে ব্লবগুলি সঞ্চয় করতে পারে (ডি-এনকোডিংয়ের ব্যয়ের কারণে সম্ভবত মারাত্মক ত্রুটি)
    • , CON জন্য 5MB এর হার্ড সীমা webStorage http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html
  • ফোনগ্যাপ এবং এসকিউএলাইট
    • কন: পৃষ্ঠপোষক শংসাপত্রের প্রয়োজন এমন একটি স্থানীয় অ্যাপ হিসাবে এটি প্রত্যাখ্যান করবে
  • জিপ ফাইল
    • সার্ভার একটি জিপ ফাইল তৈরি করে, এটি wwwroot এ রাখে এবং ক্লায়েন্টকে জানিয়ে দেয়
    • ব্যবহারকারীকে ম্যানুয়ালি আনজিপ করতে হবে (কমপক্ষে এটি আমি এটি দেখতে পাই) এবং ক্লায়েন্ট ফাইল সিস্টেমে সংরক্ষণ করতে হবে
    • ওয়েব অ্যাপ্লিকেশন ফাইলগুলি রেফারেন্স করতে ফাইলসিস্টেম এপিআই ব্যবহার করে
    • কন: জিপটি তৈরির জন্য দীর্ঘ সময় হতে পারে (জিপ 6464?)
    • কন: ফাইলসাইটিএম এপিআই সর্বদা স্যান্ডবক্সের বাইরে পড়তে পারে কিনা তা নিশ্চিত নয় (আমার মনে হয়)
  • ইউএসবি বা এসডি কার্ড (পাথরের যুগে ফিরে ....)
    • ব্যবহারকারী অফলাইনে যাওয়ার আগে সার্ভারে স্থানীয় হবে
    • সুতরাং আমরা তাকে একটি এসডি কার্ড সন্নিবেশ করিয়ে দিতে পারি, সার্ভারকে এটি পিএনজি ফাইল দিয়ে পূর্ণ করতে দিন
    • তারপরে ব্যবহারকারী এটি ল্যাপটপ, ট্যাবলেটে প্লাগ করবেন
    • ওয়েব অ্যাপ্লিকেশন ফাইলগুলি পড়ার জন্য ফাইল সিস্টেম এপিআই ব্যবহার করবে
    • কন: ফাইলসাইটিএম এপিআই সর্বদা স্যান্ডবক্সের বাইরে পড়তে পারে কিনা তা নিশ্চিত নয় (আমার মনে হয়)
  • WebSQL
    • কন: ডাব্লু 3 সি এটিকে পরিত্যাগ করেছে (বেশ খারাপ)
    • আমি জাভাস্ক্রিপ্টের মোড়কটিকে বিবেচনা করতে পারি যা সূচিপত্র এবং ওয়েবএসকিউএলকে ফ্যাল-ব্যাক হিসাবে ব্যবহার করে
  • ফাইল-সিস্টেম এপিআই
    • ক্রোম ব্লবগুলি পড়ার / লেখার সমর্থন করে
    • কন: আইই এবং ফায়ারফক্স সম্পর্কে পরিষ্কার নয় (আইই 10, এর মানহীন এমএসস্যাভ রয়েছে)
    • caniuse.com আইওএস এবং অ্যান্ড্রয়েড সমর্থনটির প্রতিবেদন করেছে (তবে আবার, এটি কি জেএসওনের কেবল r / ডাব্লু, বা এটির জন্য লেখার জন্য পূর্ণ ব্লব এপিআই অন্তর্ভুক্ত রয়েছে?
    • কন: ফায়ারফক্স লোকেরা ফাইল সিস্টেম এপিআই অপছন্দ করছে এবং তারা ব্লব সংরক্ষণে সমর্থন করছে কিনা তা পরিষ্কার নয়: https://hacks.mozilla.org/2012/07/why-no-files system-api-in-firefox/
    • প্রো: জেএসপিফারফ অনুসারে ব্লবগুলির জন্য সূচকযুক্ত ডিবি থেকে অনেক দ্রুত http://jsperf.com/indexeddb-vs-localstores/15 (পৃষ্ঠা 2)
  • IndexedDB
    • আইই 10, ফায়ারফক্সে ভাল সমর্থন (ব্লবগুলি সংরক্ষণ করুন, পড়ুন)
    • একটি ফাইল সিস্টেমের চেয়ে ভাল গতি এবং সহজ পরিচালনা (মুছে ফেলা, আপডেট)
    • প্রো: গতির পরীক্ষা দেখুন: http://jsperf.com/indexeddb-vs-localstorage/15
    • ইনডেক্সডডিবিতে চিত্রগুলি সংরক্ষণ এবং প্রদর্শন সম্পর্কিত এই নিবন্ধটি দেখুন: https://hacks.mozilla.org/2012/02/store-images-and-files-in-indexeddb/
    • কন: আমি নিশ্চিত করেছি যে ক্রোম এখনও ব্লব লেখা সমর্থন করে না (বর্তমান বাগ, তবে কখন ঠিক হবে তা পরিষ্কার নয়)
    • আপডেট: ক্রোম বিকাশকারীরা নিশ্চিত করে যে তারা ডেস্কটপ এবং অ্যান্ড্রয়েড উভয়ের জন্যই এটিতে কাজ করছে! এখনও কোন সময়রেখা নেই।
  • লনচায়ার জাভাস্ক্রিপ্ট র‍্যাপার http://brian.io/lawnchair/
    • প্রো: ইনডেক্সডডিবি, ওয়েবএসকিউএল বা আপনার যে কোনও ডাটাবেস (পলিফিল ভাবেন) এর জন্য খুব পরিষ্কার আবরণী
    • কন: কেবল বাইনারি ব্লব সংরক্ষণ করতে পারে না, কেবলমাত্র ডেটা: ইউরি (বেস 64 এনকোডিং) (ডি-এনকোডিংয়ের ব্যয়ের কারণে সম্ভবত মারাত্মক ত্রুটি)
  • ইনডেক্সডডিবি জ্যাকিউরি পলিফিল https://github.com/axemclion/jquery-indexeddb
    • পরশুরাম কাঁচা ইনডেক্সডডিবি ইন্টারফেসের জন্য একটি দুর্দান্ত জ্যাকুয়েরি র‍্যাপার লিখেছেন
    • প্রো: ইনডেক্সডডিবি ব্যবহার করে ব্যাপকভাবে সরল করে, আমি ক্রোম ফাইলসিসটেমিপিআইয়ের জন্য একটি শিম / পলিফিল যুক্ত করার আশা করছিলাম
    • কন: এটি ব্লবগুলি পরিচালনা করতে পারে তবে আমি এটি কাজ করতে পারিনি
  • idb.files systemm.js http://ericbidelman.tumblr.com/post/21649963613/idb-files systemm-js-bringing-th-html5-files system-api
    • এরিক বিডেলম্যান @ গুগল একটি ভাল পরীক্ষিত পলিফিল ফাইলসিস্টি এপিআই লিখেছেন যা ইনডেক্সড ডিবিকে পতনের হিসাবে ব্যবহার করে
    • প্রো: ফাইলসাস্টেম এপিআই ব্লবগুলি সংরক্ষণের জন্য উপযুক্ত suited
    • প্রো: ফায়ারফক্স এবং ক্রোমে দুর্দান্ত কাজ করে
      • প্রো: ক্লাউড ভিত্তিক কাউচডিবিয়ের সাথে সিঙ্ক্রোনাইজ করার জন্য দুর্দান্ত
    • কন: কোন কারণ তা পরিষ্কার নয়, তবে এটি আইই 10 তে কাজ করছে না
  • পাউচডিবি জাভাস্ক্রিপ্ট লাইব্রেরি http://pouchdb.com/
    • স্থানীয় ডিবির সাথে কাউচডিবি সিঙ্ক করার জন্য দুর্দান্ত (ওয়েবএসকিউএল বা ইনডেক্সডডিবি ব্যবহার করে (যদিও আমার সমস্যা নয়)
    • কন: কোন কনস, পাউচডিবি এখন সাম্প্রতিক সমস্ত ব্রাউজারগুলির জন্য (আই, ক্রোম, ফায়ারফক্স, ক্রোম মোবাইল, ইত্যাদি) পাশাপাশি বহু পুরানো ব্রাউজারগুলির জন্য বাইনারি ব্লব সমর্থন করে। আমি প্রথম এই পোস্টটি করার সময় এমনটি ছিল না।

দ্রষ্টব্য: একটি ডেটা দেখতে: পিএনজি-র ইউরি এনকোডিং আমি এখানে একটি উদাহরণ তৈরি করেছি: http://jsbin.com/ivefak/1/edit

পছন্দসই / ইউজফুল / অব্যবহৃত বৈশিষ্ট্যগুলি

  • ক্লায়েন্টে কোনও নেটিভ (এক্সই, ফোনগ্যাপ, অবজেক্টিভি ইত্যাদি) অ্যাপ নেই (খাঁটি ওয়েব অ্যাপ্লিকেশন)
  • ল্যাপটপের জন্য কেবলমাত্র সর্বশেষতম ক্রোম, ফায়ারফক্স, আই 10 10 এ চালানো দরকার
  • অ্যান্ড্রয়েড ট্যাবলেটটির জন্য দৃ solution়ভাবে একই সমাধান চান (আইওএস খুব ভাল হবে) তবে কেবলমাত্র কাজ করার জন্য একটি ব্রাউজারের প্রয়োজন (এফএফ, ক্রোম, ইত্যাদি)
  • দ্রুত প্রাথমিক ডিবি জনসংখ্যা
  • প্রয়োজনীয়তা: স্টোরেজ থেকে ওয়েব অ্যাপ্লিকেশন দ্বারা চিত্রগুলির খুব দ্রুত পুনরুদ্ধার (ডিবি, ফাইল)
  • গ্রাহকদের জন্য নয় আমরা ব্রাউজারগুলিকে সীমাবদ্ধ করতে পারি, এবং ব্যবহারকারীকে বিশেষ সেটআপ এবং কার্যগুলি করতে বলি, তবে আসুন এটি হ্রাস করুন

ইনডেক্সডডিবি বাস্তবায়ন

  • আইই, এফএফ এবং ক্রোম কীভাবে অভ্যন্তরীণভাবে এটি প্রয়োগ করে সে সম্পর্কে একটি চমৎকার নিবন্ধ রয়েছে: http://www.aaron-powell.com/web/indexeddb-stores
  • সংক্ষেপে:
    • আইই সূচকডিবির জন্য এক্সচেঞ্জ এবং অ্যাক্টিভ ডিরেক্টরি হিসাবে একই ডাটাবেস ফর্ম্যাট ব্যবহার করে
    • ফায়ারফক্স এসকিউএলাইট ব্যবহার করছে তাই এসকিউএল ডাটাবেসে কোনও নুএসকিউএল ডাটাবেস প্রয়োগ করে
    • ক্রোম (এবং ওয়েবকিট) একটি কী / মান স্টোর ব্যবহার করছে যা বিগ টেবলে heritageতিহ্য রয়েছে

আমার বর্তমান ফলাফল

  • আমি একটি ইনডেক্সডডিবি পদ্ধতির (এবং ক্রোমের জন্য ফাইলসিসটেমাপি দিয়ে পলফিল ব্যবহার করা পছন্দ করি যতক্ষণ না তারা ব্লব সাপোর্ট না পাঠায়)
  • টাইলস আনার জন্য, আমার কাছে একটি দ্বিধাদ্বন্দ্ব ছিল যেহেতু জ্যাকিউরির লোকেরা এজেএক্সে এটি যুক্ত করার বিষয়ে আগ্রহী
  • আমি XHR2-প্রচ্ছদ ফিল পারসন্স, যা খুব jQuery .ajax মত হল দ্বারা () সঙ্গে গিয়েছিলাম https://github.com/pmp/xhr2-lib
  • 100 এমবি ডাউনলোডের জন্য পারফরম্যান্স (আইই 10 4 এস, ক্রোম 6 এস, ফায়ারফক্স 7 এস)।
  • ব্লবসের জন্য কাজ করার জন্য আমি কোনও সূচক ডিবি র‌্যাপার পেতে পারি না (লনচেয়ার, পাউচডিবি, জ্যাকোয়ারি-ইন্ডেক্সডডিবি, ইত্যাদি)
  • আমি আমার নিজের র‍্যাপারটি ঘূর্ণিত করেছি, এবং সম্পাদনাটি হল (IE10 2s, ক্রোম 3 এস, ফায়ারফক্স 10 এস)
  • এফএফ দিয়ে, আমি ধরে নিচ্ছি যে আমরা একটি স্কোর-অবিহীন স্টোরেজের জন্য একটি রিলেশনাল ডিবি (স্ক্লাইট) ব্যবহারের পারফরম্যান্স ইস্যুটি দেখছি
  • দ্রষ্টব্য, ক্রোমের সূচকযুক্ত ডিবি'র অবস্থা পরিদর্শন করার জন্য অসামান্য ডিবাগ সরঞ্জাম (বিকাশকারী ট্যাব, সংস্থানসমূহ) রয়েছে।

উত্তর হিসাবে নিচে পোস্ট শেষ ফলাফল

হালনাগাদ

পাউচডিবি এখন সাম্প্রতিক সমস্ত ব্রাউজারগুলির (আই, ক্রোম, ফায়ারফক্স, ক্রোম মোবাইলে) পাশাপাশি অনেক পুরানো ব্রাউজারগুলির জন্য বাইনারি ব্লব সমর্থন করে। আমি প্রথম এই পোস্টটি করার সময় এমনটি ছিল না।


1
ওয়েব স্টোরেজ জসনকে সমর্থন করে না তবে স্ট্রিংগুলি স্ট্রিং করে, তাই আপনি আপনার ইমেজজেড এনকোড করতে পারেন এবং এগুলি ডেটাআর্লস হিসাবে ফিরে পরিবেশন করতে পারেন।
এমএমএম

ঠিক আছে, তবে সম্ভবত 20 এমবি চিত্রের জন্য অনুকূল (বা কোটার মধ্যে) নয়, এটি প্রকৃতপক্ষে পিচ্ছিল মানচিত্রের টাইলস z
ডাঃ ওয়াইএসজি

আপনি যে গবেষণাটি করেছেন তা বেশ সহায়ক।
বোগদান কুলিনিচ

আমার কথা হ'ল আপনি যদি পিএনজি ইমেজ ব্যবহার করেন তবে বাইনারি ব্লবগুলি নিয়ে কাজ করার দরকার নেই।
এমএমএম

আপনি ঠিক বলেছেন, আমি কি আপনার ইনপুট প্রতিবিম্বিত করার জন্য ডকুমেন্টটি আপডেট করলে আপনি আপত্তি করবেন?
ডাঃ ওয়াইএসজি

উত্তর:


25

পিএনজি স্লিপ ম্যাপের জন্য ফলাফল অফলাইন ব্লব ক্যাশে

পরীক্ষামূলক

  • ১1১ পিএনজি ফাইল (মোট ৩.২ এমবি)
  • প্ল্যাটফর্মগুলি পরীক্ষিত: ক্রোম ভি 24, ফায়ারফক্স 18, আইই 10
  • অ্যান্ড্রয়েডের জন্য ক্রোম এবং এফএফের সাথেও কাজ করা উচিত

ওয়েব সার্ভার থেকে আনুন

  • ওয়েব সার্ভার থেকে ব্লব ডাউনলোডের জন্য এক্সএইচআর 2 (প্রায় সব ব্রাউজারে সমর্থিত) ব্যবহার করা
  • আমি ফিল পার্সনস দ্বারা এক্সএইচআর 2-লিবের সাথে গিয়েছিলাম, যা জ্যাকুয়েরির মতো অনেকটা .জ্যাক্স ()

সংগ্রহস্থল

  • আইই এবং ফায়ারফক্সের জন্য সূচীবিডি
  • ক্রোম: পলিফিল (ফাইলসিস্টেম এপিআই ব্যবহার করে সঞ্চিত ব্লব, সূচক ডিবিতে রেফারেন্স রাখা হয়েছে) পলিফিল
  • "ব্রাউজারগুলি কীভাবে ইনডেক্সডডিবি ডেটা সঞ্চয় করে" শীর্ষক একটি নিবন্ধ পড়তে হবে
  • দ্রষ্টব্য: ফায়ারফক্স NOSQL ইনডেক্সডডিবি-এর জন্য এসকিউএলাইট ব্যবহার করে। এটি ধীর পারফরম্যান্সের কারণ হতে পারে। (ব্লব পৃথকভাবে সঞ্চিত)
  • দ্রষ্টব্য: মাইক্রোসফ্ট আইই এক্সটেনসিবল স্টোরেজ ইঞ্জিন ব্যবহার করে:
  • দ্রষ্টব্য: ক্রোম লেভেলডিবি ব্যবহার করে http://code.google.com/p/leveldb/

প্রদর্শন

  • আমি মানচিত্রের টাইলগুলি দেখানোর জন্য লিফলেটটি http://leafletjs.com/ ব্যবহার করছি
  • আমি ডিবি থেকে টাইল স্তর আনার জন্য ইসমাইল স্মার্নো দ্বারা কার্যকরী টাইল স্তর প্লাগইন ব্যবহার করেছি
  • আমি ডিবি ভিত্তিক টাইলস স্তরটিকে একটি সম্পূর্ণ স্থানীয় (লোকালহোস্ট: //) স্টোরেজের সাথে তুলনা করেছি
  • পারফরম্যান্সে কোনও লক্ষণীয় পার্থক্য নেই! ইনডেক্সডডিবি এবং লোকাল ফাইল ব্যবহারের মধ্যে!

ফলাফল

  • ক্রোম: আনুন (6.551s), স্টোর (8.247 গুলি), মোট অতিবাহিত সময়: (13.714 সে)
  • ফায়ারফক্স: আনুন (0.422 এস), স্টোর (31.519 সে), মোট অতিবাহিত সময়: (32.836 সে)
  • আইই 10: আনুন (0.668s), স্টোর: (0.896 এস), মোট অতিবাহিত সময়: (3.758 এস)

4

আপনার প্রয়োজনীয়তার জন্য আমি পরামর্শ দিচ্ছি যে অন্য দু'এর উপর ভিত্তি করে একটি নতুন পলিফিল বিকাশ করা: ফাইলসিস্টেম এপিআই থেকে ইনডেক্সডডিবি এবং ইনডেক্সডডিবি ওয়েবএসকিউএল - সেরা বিকল্প।

পূর্ববর্তীটি ক্রোম (ফাইলসিস্টেম এপিআই) এবং ফায়ারফক্স (ইনডেক্সডডিবি) এ ব্লবগুলি সঞ্চয় করার জন্য সমর্থন সক্ষম করবে, তবে পরেরটি অ্যান্ড্রয়েড এবং আইওএস ( ওয়েবএসকিউএল ) এর জন্য সমর্থন সরবরাহ করবে । যা প্রয়োজন তা কেবল এই পলিফিলগুলি একসাথে কাজ করা এবং আমি মনে করি এটি কঠিন নয় not

এনবি: যেহেতু আমি ওয়েবে এই বিষয়ে কোনও তথ্য খুঁজে পাইনি, তাই আপনাকে পরীক্ষা করে নেওয়া উচিত যে ওয়েবএসকিউএল পলিফিল ব্যবহার করে ব্লবগুলি সংরক্ষণ করা আইওএস এবং অ্যান্ড্রয়েডে কাজ করে কিনা। দেখে মনে হচ্ছে এটি কাজ করা উচিত:

var sql = ["CREATE TABLE", idbModules.util.quote(storeName), "(key BLOB", createOptions.autoIncrement ? ", inc INTEGER PRIMARY KEY AUTOINCREMENT" : "PRIMARY KEY", ", value BLOB)"].join(" ")

উৎস


আমি আপনার পরামর্শের দিকে ঝুঁকছি, তবে আমি অন্যের কাছ থেকে শোনার জন্য অপেক্ষা করছি। আমার হাতে অ্যান্ড্রয়েড নেই, তবে একটি জেএসবিন বা জেএসফিডেল তৈরি করা এবং অ্যান্ড্রয়েডে কী কাজ করে তা দেখতে ভাল হবে।
ডাঃ ওয়াইএসজি

1
এই দুটি ব্লব আলাদা। স্ক্লাইট ব্লবটি জাভাস্ক্রিপ্টে অ্যারেবুফার, যখন জেএস ব্লব স্ক্লাইটে কোনও সমতুল্য নয়। ব্লব অ্যারেবুফারে রূপান্তর করতে পারে না, যদিও এটি কাঠামোগতভাবে ক্লোন করা যেতে পারে।
কিউ টুন

2

আমার কাছে মানচিত্রের ক্যাশিংয়ের উদাহরণ রয়েছে (মুক্ত উদাহরণ, অঞ্চল এবং জুমগুলি আবিষ্কার করুন, অফলাইনে স্যুইচ করুন এবং আবিষ্কার করা অঞ্চলগুলি উপলভ্য হবে)।

রয়েছে map.js- অফলাইন টাইলগুলির জন্য মানচিত্র স্তর, storage.js- ইনডেক্সডডিবি এবং ওয়েবএসকিউএলের উপর ভিত্তি করে স্টোরেজ বাস্তবায়ন (তবে এটি কেবল দুর্বল পারফরম্যান্সের মাধ্যমে পরীক্ষামূলক বাস্তবায়ন পরীক্ষা করে)।

  • সাইটের ফাইলগুলির জন্য (এইচটিএমএল, সিএসএস, জেএস এবং অন্যান্য) আমি অ্যাপ্লিকেশন ক্যাশে ব্যবহার পছন্দ করি।
  • স্টোরেজের জন্য আমি ইনডেক্সড ডিবি (সমর্থন ব্লব), ওয়েব এসকিউএল (কেবলমাত্র বেস 64), ফাইল রাইটার (সমর্থন ব্লব, তবে কেবল ক্রোম) ব্যবহার পছন্দ করি। স্পষ্টভাবে স্টোরেজ এর জন্য বড় সমস্যা issue আপনার দ্রুততম কী মান সমাধান দরকার যা সেগুলি সবগুলিকে মিশ্রিত করে। আমি মনে করি অস্তিত্ব সমাধান ব্যবহার করার জন্য ভাল সিদ্ধান্ত।
  • আনার জন্য আমি সিওআরএস দিয়ে ক্যানভাস ব্যবহার করেছি। তবে আমি ওয়েব ওয়ার্কার্স এবং এক্সএইচআর 2 সম্পর্কে ভাবছি এবং এটি পরিবর্তে ক্যানভাসের থেকে ভাল হতে পারে কারণ ক্যানভাসের বিভিন্ন ব্রাউজারে এবং অন্যান্যতে CORS এর সাথে কিছু সমস্যা হয় (উদাহরণস্বরূপ এই শিরোনামটি অপেরাতে খারাপভাবে সঞ্চিত ছিল )।

2 বিলিয়ন শহর ( মিনস্ক ) এর জন্য মাপগুলি সম্পর্কে অতিরিক্ত তথ্য :

  • জুম - 9, টাইলস - 2, আকার - 52 কেবি, পূর্ববর্তী - 52 কেবি;
  • জুম - 10, টাইলস - 3, আকার - 72 কেবি, পূর্ববর্তী - 124 কেবি;
  • জুম - 11, টাইলস - 7, আকার - 204 কেবি, পূর্ববর্তী - 328 কেবি;
  • জুম - 12, টাইলস - 17, আকার - 348 কেবি, পূর্ববর্তী - 676 ​​কেবি;
  • জুম - 13, টাইলস - 48, আকার - 820 কেবি, পূর্ববর্তী - 1.5 এমবি;
  • জুম - 14, টাইলস - 158, আকার - 2.2 এমবি, পূর্ববর্তী - 3.7 এমবি;
  • জুম - 15, টাইলস - 586, আকার - 5.5 এমবি, পূর্ববর্তী - 9.3 এমবি;
  • জুম - 16, টাইলস - 2264, আকার - 15 এমবি, পূর্ববর্তী - 24.3 এমবি;

আমি ধরে নিলাম নিখরচায় EGPS3857 ফর্ম্যাটে এগুলি JPG টাইলস? যেহেতু আমি লিফলেটটি ব্যবহার করছি এবং রাস্টার ওভারলিগুলি করছি আমাকে পিএনজির সাথে যেতে হয়েছিল। আমার পাউচডিবি ব্যবহারের ডেমোটিও দেখুন (যা নীচে আইডিবি ব্যবহার করে)। stackoverflow.com/questions/16721312/...
Dr.YSG

ওহ হ্যাঁ, আপনি ফ্লাইতে ক্যাশে করছেন, তবে আপনি কি জানেন যে আমি 10 বা 11 বা 12 জুম নেওয়ার জন্য প্রাক-বিল্ট ওএসএম মানচিত্র (বিশ্বব্যাপী) পেতে কোথায় যেতে পারি? আমরা এটি আমাদের অফলাইন সার্ভারে রাখব।
ডাঃ ওয়াইএসজি

না, ব্যবহৃত PNGডিফল্ট অভিক্ষেপ (EGPS: 3857) সঙ্গে কিন্তু কোন ব্যাপার JPEGবা PNGকারণ এগুলি এটিকে ব্যবহার imgট্যাগ বা canvas। আমার উদাহরণ দিয়ে আপনি টাইলগুলি কী ( storage.add('x_y_z', 'data:image/png;base64,...')প্রতিটি সঞ্চিত টাইলের জন্য) জানেন তবে কেবল টাইলগুলি প্রিললোড করতে পারেন , তবে কেবল সীমা (বহুভুজ) এবং জুমগুলি জানা থাকলে আপনি সর্বদা সেগুলি পেতে পারেন।
tbicr

আমি নিশ্চিত করতে চাই যে আমাদের কোনও ভাষার সমস্যা নেই। আপনি কি এমন কোনও জায়গা পেয়েছেন যে আমরা জুম লেভেল 10 এ স্লিপ টাইলসের (পিএনজি বা জেপিজি) বিশ্বব্যাপী ওএসএম সেট পেতে পারি?
ডাঃ ওয়াইএসজি

আপনি টাইলস ফর্ম tile.osm.org(ম্যাপনিক জেন্ডার) পেতে পারেন । উদাহরণস্বরূপ http://tile.openstreetmap.org/10/590/329.png( zoom/ x/ y.png)। এই টাইলগুলির Access-Control-Allow-Origin: *শিরোনাম রয়েছে যাতে আপনি এজ্যাক্সের মাধ্যমে সেগুলি পেতে বা ক্যানভাসের মাধ্যমে ডেটা ইউরি (বেস 64) পেতে পারেন। আপনি ইতিমধ্যে আপনার সঙ্গে টাইল ডাউনলোড করতে পারেন manifest.json {id: 0-0-0}, কিন্তু আপনি নিশ্চিত করতে হবে যে অধিকার zoom, x, yঅনুক্রম।
tbicr

1

কয়েক বছর আগে (ঠিক পাথরের যুগে নয়), আমি একটি স্বাক্ষরিত জাভা অ্যাপলেট ব্যবহার করছিলাম যা এর সার্ভারটি প্রয়োজনীয়তা সিঙ্ক / আপডেট করার জন্য অনুসন্ধান করবে, সার্ভার থেকে উপযুক্ত ফাইলগুলি ডাউনলোড করবে এবং সেগুলি ব্যবহারকারীর ফাইল সিস্টেমে সংরক্ষণ করবে (কোনও ডাটাবেস নয়)। এই সমাধানটি আপনার পক্ষে কার্যকর হতে পারে, যদিও আপনার অ্যাপলেট লিখতে এবং সাইন করতে আপনার প্রয়োজন হবে। ডাটাবেস সমাধানের জন্য, এই জাতীয় অ্যাপলেট একটি উপযুক্ত পোর্টে লোকালহোস্ট ব্যবহার করে বেশিরভাগ ডাটাবেসের জন্য উপলব্ধ জেডিবিসি ব্যবহার করতে পারে (যেমন, মাইএসকিউএলের জন্য 3306)। আমি বিশ্বাস করি অ্যাপলেট ট্যাগটি এইচটিএমএল 5 এ অবমূল্যায়ন করা হয়েছে তবে এটি এখনও কার্যকর হয়। অ্যান্ড্রয়েড ট্যাবলেটগুলিতে কোনও অভিজ্ঞতা নেই, সুতরাং সেই অংশে মন্তব্য করতে পারবেন না।


1
আমি কার্ড-পাঞ্চ ব্যবহার করে 1968 সালে ফরটারনে প্রোগ্রামিং শুরু করি। সুতরাং পাথর-যুগের সমাধানগুলি আমার কাছে নতুন নয়।
ডাঃ ওয়াইএসজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.