WKB থেকে WKT জাভাস্ক্রিপ্ট ফাংশন


10

দেখা যাচ্ছে জিনসাইন বাইনারি ডেটা পরিবহনে এত ভাল নয় । তবে এইচটিএমএল 5 এর সাথে এক্সএইচআর 2 এখন ব্লবগুলি পরিষ্কার করে স্থানান্তর করতে সক্ষম । আমি বাইনারি জ্যামিতি স্থানান্তর করতে খুঁজছি (ব্যান্ডউইথ সংরক্ষণ করতে) এবং ক্লায়েন্টে এটি ডিকোড করুন।

কোনও উপকারে আসে না, আমি জাভাস্ক্রিপ্ট-ভিত্তিক ডাব্লুবিবি (সুপরিচিত বাইনারি) থেকে ডব্লুকেটি (সুপরিচিত পাঠ্য) ফাংশনের জন্য ওয়েবটি স্ক্রোল করেছি । আমি চাকাটি পুনরায় উদ্ভাবনের আগে - কেউ কি কোনও মুক্ত-উত্স সমাধান সম্পর্কে সচেতন?


বিটিডব্লিউ, আপনি ব্লবগুলি ব্যবহার না করে অ্যারেবফার ব্যবহার করবেন।
নিক্লাস অ্যাভন

উত্তর:


11

দেখে মনে হচ্ছে এটি একটি নতুন এবং আরও ভাল সমর্থিত জেএস ডাব্লু কেবি পার্সিং লাইব্রেরি প্রকাশিত হয়েছে since

https://github.com/cschwarz/wkx

ব্রাউজারে ম্যাপ করা যায় এমন পোস্টগ্রিজ থেকে সরাসরি ডাব্লুকেবি রূপান্তর করতে আমি এটি ব্যবহার করতে সক্ষম হয়েছি। এটি কাজ করার জন্য আপনার ওয়েবপৃষ্ঠায় https://github.com/cschwarz/wkx/blob/master/dist/wkx.js অন্তর্ভুক্ত করতে হবে।

// Required imports (works in browser, too)
var wkx = require('wkx');
var buffer = require('buffer');

// Sample data to convert
var wkbLonlat = '010100000072675909D36C52C0E151BB43B05E4440';

// Split WKB into array of integers (necessary to turn it into buffer)
var hexAry = wkbLonlat.match(/.{2}/g);
var intAry = [];
for (var i in hexAry) {
  intAry.push(parseInt(hexAry[i], 16));
}

// Generate the buffer
var buf = new buffer.Buffer(intAry);

// Parse buffer into geometric object
var geom = wkx.Geometry.parse(buf);

// Should log '-73.700380647'
console.log(geom.x)

// Should log '40.739754168'
console.log(geom.y)

1
ওহে, এখানে। এই প্রশ্নটি 1.5 বছর আগে। অসাধারণ!
জর্দান আর্সেনো

7

একমাত্র সমাধান বিশুদ্ধ জাভাস্ক্রিপ্ট সমাধান আমি এতদূর পাওয়া করেছি (এবং আমি চেষ্টা করা হয়নি) হল https://github.com/thejefflarson/wkb.js । এটি কেবলমাত্র অসম্পূর্ণ ডাব্লুবিবি পার্সার (এটি ডাব্লুকেবিকে কোনও জেএস বস্তুতে রূপান্তর করতে পারে যা আপনি ডব্লিউকেটিতে রূপান্তর করতে পারেন)

জাভাস্ক্রিপ্ট সাইডে ডাব্লুবিবি বিকল্প বিকল্প হতে পারে পরীক্ষামূলকভাবে শুরু হওয়া (এই মুহুর্তের কোনও মান নয়) http://blog.jordogskog.no/2013/05/05/mapservice-from-websocket-with-twkb/ তবে এটির প্রয়োজন একটি কাস্টম পোস্টজিআইএস বিল্ডের সাথে খেলতে (তাই সত্যিই নতুনদের জন্য নয়)


3

আর একটি সম্ভাবনা হ'ল প্লে জিওএসসনের পরিবর্তে টোপসোন ব্যবহার করা :

টপোজেসন জিওজেসনের একটি এক্সটেনশন যা টপোলজি এনকোড করে। বিযুক্তভাবে জ্যামিতি প্রতিনিধিত্বমূলক পরিবর্তে, TopoJSON ফাইলের মধ্যে জ্যামিতি ভাগ রেখাংশ নামক থেকে একত্রিত হয় পরিধির মধ্যে । টোপোজসন জিওজেএসনের চেয়ে জ্যামিতির অনেক বেশি সংক্ষিপ্ত প্রতিনিধিত্ব করে, রিন্ডানডেন্সি দূর করে; সাধারণ টোপোজেসন ফাইলগুলি তাদের জিওজেএসওন সমতুল্যের চেয়ে 80% ছোট।


3

থমাস জি by77 দ্বারা উল্লিখিত হিসাবে আমি এই "টুইঙ্কবি" ফর্ম্যাটে বাইনারি ডেটা নিয়ে খেলছি।

আপনি এটিকে এখানে কর্মে দেখতে পাচ্ছেন (একটি ওয়েবসকেটের উদাহরণ)

বা এখানে , একটি পিএইচপি বাস্তবায়ন।

আপনি যদি পার্সিং অধ্যয়ন করতে চান তবে ফাইলটি চেক করুন twkb.js. আমার মনে হয় এটি twkb_ নোডের উদাহরণে একটু পরিচ্ছন্ন।

ইন এই ব্লগ পোস্টে আপনি PostGIS অংশের সোর্স কোড এবং বিন্যাস কিছু বিবরণ লিঙ্ক খুঁজে পেতে পারেন।

আমি তখন থেকে কিছু পুনর্নির্মাণ করেছি এবং শীঘ্রই গিথুবের উপর একটি নতুন বিবরণ রাখব। আমার টুইকবিতে বিশ্বাস আছে, তবে ভাল হওয়ার জন্য এটি আরও বেশি মস্তিষ্কের প্রয়োজন।

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


0

এই উত্তরটি wkb থেকে wkt ফাংশন সম্পর্কে নয়।

আমি বলব যে আপনি ব্যান্ডউইথ সংরক্ষণ করতে wkt থেকে wkb তে রূপান্তরটি ব্যবহার করবেন না - সার্ভারে gzip wkt (বা অন্য যে ফর্ম্যাটটি রয়েছে) যথেষ্ট পরিমাণে হওয়া উচিত (এবং সম্ভবত - আরও দক্ষ) এবং ব্রাউজারগুলি আনজিপিং করতে পারে উড়ে এবং বাক্সের বাইরে।

এছাড়াও দেখুন ব্রাউজার সমর্থনের টেবিল XHTMLRequest2 জন্য, যেমন কিছু পুরাতন, এখনো এখনও ব্যবহৃত ব্রাউজার সমর্থিত না।


0

জিওস্ক্রিপ্টে একটি জাভাস্ক্রিপ্ট এপিআই রয়েছে যা ডাব্লুকেটি এবং ডব্লিউকেবি পড়তে এবং লেখায়। পদ্ধতিগুলি geom.io এর অংশ are


1
কেবল জাভা নির্ভরতা (সিএফ pom.xML এ github.com/tschaub/geoscript-js এ ) শেল পরিবেশে ব্রাউজারে নেই
টমাস জি 77
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.