বেস ওএসএম এবং জিওসারবার ডাব্লুএমএস স্তরগুলি সহ আমি ওপেনলেয়ারগুলি কীভাবে মুদ্রণ করতে পারি?


9

ব্যবহারকারী কিছু স্তর খুললে আমি মুদ্রণ করতে চাই এমন একটি মানচিত্র আমার কাছে আছে। স্তরগুলি জিওসরবার ডাব্লুএমএস এবং বেস স্তরটি ওএসএম।

আমি জানি জিওসিভারের মুদ্রণ মডিউল রয়েছে (যা ইনস্টল করা হয়েছে এবং কাজ করছে কারণ আমি জিওসিভার / পিডিএফ / ইনফরমেশন থেকে উত্তর পেয়েছি? ভার = মুদ্রণযোগ্যতা

আমি যা বুঝতে পারি না তা হ'ল আমি কীভাবে এটি দৃশ্যমান স্তর সহ বর্তমান মানচিত্রটি মুদ্রণ করতে ব্যবহার করি।

আমি জিওএক্সেক্সট উদাহরণ (ম্যাপফিশ) দেখেছি কিন্তু এটি আমাকে বুঝতে সহায়তা করে নি।

আপডেট 1: আমি কোড দ্বারা নিম্নলিখিত URL টি তৈরি করেছি:

http://77.235.53.170/geoserver/pdf/print.pdf?spec={%22units%22:%22degrees%22,%22srs%22:%22EPSG:4326%22,%22layout%22:%22A4%22,%22dpi%22:%22300%22,%22mapTitle%22:%22This%20is%20the%20map%20title%22,%22comment%22:%22This%20is%20the%20map%20comment%22,%22resourcesUrl%22:%20%22http://77.235.53.170/img%22,%22layers%22:[{%22baseURL%22:%22http://77.235.53.170/geoserver/Lehavim/wms%22,%22opacity%22:1,%22singleTile%22:true,%22type%22:%22WMS%22,%22layers%22:[%22%D7%A7%D7%95%20%D7%9E%D7%99%D7%9D%22],%22format%22:%22image/jpeg%22,%22styles%22:[%22%22]}],%22pages%22:[{%22center%22:[3875254.1134954,3680894.557955],%22scale%22:32000,%22rotation%22:0}]}

এবং আমি খালি পিডিএফ পাচ্ছি (কেবল শিরোনাম সহ) ... ভুল কী হতে পারে?


1
আপনার একটি "অনলাইন মুদ্রণ সরঞ্জাম" দরকার , বা একটি "অফলাইন পিডিএফ জেনারেটর" আরও ভাল? (ভাল নিয়ন্ত্রণ এবং মানের নিশ্চয়তার জন্য কেবল পিডিএফ নিরাপদ)
পিটার ক্রাউস

দয়া করে dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/… দেখুন i আমি আশা করি এটি সাহায্য করবে।
ফরহাত আব্বাস

আপনি ঠিক কী অর্জন করতে চাইছেন তা আমি বুঝতে পারি না। আপনি কি চান যে ব্যবহারকারী মুদ্রণ করতে সক্ষম হবেন (ওয়েবে) অথবা আপনি কী কোনও মানচিত্র (পিডিএফ বলুন) ওসাম স্তরগুলি + জিওসরবার ডাব্লুএমএস থেকে মুদ্রণ করতে চান?
tudorbarascu

@ অ্যালোফাইন্ড: পিপিএল মন্তব্যে যে প্রশ্নগুলি করেছে সেগুলির আপনাকে উত্তর দিতে হবে। এটি আপনার উত্তরগুলি নির্ধারণ করবে।
দেবদত্ত টেংশে

আমি দূরে ছিলাম, @ পিটারক্রস - আমি কোনও প্রদত্ত ব্রাউজারে মানচিত্রের বিভাগটি প্রিন্ট করার ক্ষমতা চাই, পিডিএফটিও ভাল।
23:43 এ 12

উত্তর:


7

জিওসিভার মুদ্রণ প্রক্রিয়া দুটি ধাপ জড়িত।

সার্ভার সাইডে প্রথমে , আপনাকে আপনার yaml ফাইলটি কনফিগার করতে হবে, যাকে কনফিগার.আইএমএল বলে। ম্যাপফিশ মুদ্রণ মডিউল ডকুমেন্টেশন পৃষ্ঠাতে বিশদ ডকুমেন্টেশনের মাধ্যমে যান ।

এটি হয়ে গেলে, দ্বিতীয় ধাপটি ক্লায়েন্টের পক্ষে । আপনি আপনার সম্মুখ-প্রান্তের জন্য ওপেনলেয়ারগুলি ব্যবহার করছেন তা বিবেচনা করে, দৃশ্যমান স্তরগুলির তালিকা পেতে আপনার দৃশ্যমানতার চেক সহ একটি সাধারণ লুপের প্রয়োজন হবে, যেমন

var layers = "";
for (var i = 0; i < map.layers.length; i++) {
    if(map.layers[i].visibility == true){
        //get a string of visible layers
        layers = layers + map.layers[i].name + ','
    }
}
//remove the trailing ','
layers = layers.slice(0, -1);

এখন আপনাকে এটি আপনার প্রিন্ট url এ দিতে হবে। যেমন

var maptitle= "This is the map title";
var mapcomment= "This is the map comment"
var printurl = "http://host:post/geoserver/pdf/print.pdf?spec={"units":"degrees","srs":"EPSG:4326","layout":"A4","dpi":"300","maptitle":"This is the map title","comment":"This is the map comment","resourcesUrl": "http://host:port/img","layers":[{"baseURL":"http://host:port/geoserver/workspace/wms","opacity":1,"singleTile":true,"type":"WMS","layers":["' + layers + '"],"format":"image/jpeg","styles":[""]}],"pages":[{"center":[' + map.getCenter().lon + ',' + map.getCenter().lat + '],"scale":' + getMapScale(Math.ceil(map.getScale())) + ',"rotation":0}]}'

অবশ্যই আপনাকে ইউআরএলে প্রাসঙ্গিক পরিবর্তন করতে হবে। এরপরে আপনার মুদ্রণ বোতামে এই URL টি বরাদ্দ করুন এবং তারপরে একটি ক্লিক ফাংশনকে ব্যবহারিকভাবে কল করুন।

$("#btnprint").attr("href", printUrl);
$('#btnprint')[0].click();

এবং সম্পন্ন !!!


আমি ত্রুটি পাচ্ছি: পিডিএফ তৈরির সময় ত্রুটি: org.mapfish.print.JsonMissingException: অ্যাট্রিবিউট [spec.mapTitle] অনুপস্থিত
অ্যালোফিন্ড

আমি ইউআরএল এবং ব্যতিক্রমের জন্য উদাহরণ যুক্ত করেছি, আপনি কি ভুল করতে চান তা বলতে পারেন?
'14

1
GetMapScale ফাংশনের সামগ্রী কী?
এলোফিন্ড

1
এটি কী ওএসএম বা গুগল বেস স্তর সহ কাজ করে?
আলফহিন্ড

1
@ অ্যালোফাইন্ড আমি গুগল ম্যাপ স্তরটির জন্য এটি চেক করিনি, কারণ এএফএআইপি গুগল মানচিত্র বাদে এপিআইয়ের মাধ্যমে গুগল ম্যাপ স্তর ব্যবহার করা অবৈধ। যদিও এই নির্দিষ্ট ওয়েবসাইটটিতে ওএসএম স্তর নেই তবে আমি মুদ্রণের সুবিধা সহ অন্যান্য অ্যাপ্লিকেশনগুলিতে ওএসএম ব্যবহার করেছি।
thelastray

1

আপনি যদি কোনও ক্রোম ব্যবহারকারী হন তবে দ্রুত এবং সহজ উপায় হ'ল গুগল ক্লাউড মুদ্রণ , তবে এটি পুরো ওয়েব পৃষ্ঠাটি মুদ্রণের জন্য ডিজাইন করা হয়েছে তবে আপনি একটি সম্পূর্ণ স্ক্রিন প্রদর্শন ব্যবহার করতে পারেন এবং এটি মুদ্রণ করতে পারেন।

আর একটি সুবিধা হ'ল আপনি যে কোনও সংযুক্ত প্রিন্টারে আপনার অ্যাকাউন্টে নিবন্ধকৃত প্রিন্টারে মুদ্রণ করতে পারেন, তাই আপনার ডেস্কটপ পিসিতে কোনও সংযুক্ত প্রিন্টারের সাথে মোবাইল মুদ্রণ পাওয়া যায়, বা আপনার Google অ্যাকাউন্টের বিপরীতে নিবন্ধিত কোনও পিসি এবং প্রিন্টার পাওয়া যায়। এটি গুগল ক্লাউড প্রিন্টের সাথে কাজ করার জন্য বিশেষত ডিজাইন করা লিগ্যাসি প্রিন্টার এবং নেটওয়ার্ক প্রিন্টারগুলিকে সমর্থন করে।


1
আমাকে কেবল
ক্রোমই

1

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

এটি বলার পরে আমি আপনাকে জিওস্ভারে ম্যাপফিশ প্লাগইন দিয়ে কীভাবে মুদ্রণ কাজ করতে পারি তার একটি দ্রুত পাল্টানো দেব।

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

এই পৃষ্ঠাটি জিওসিভারের কাছ থেকে কীভাবে প্লাগইন ইনস্টল করতে হবে এবং কীভাবে ব্যবহার করবে সে সম্পর্কে নির্দেশাবলী দেখায়। মূলত এটি ভেঙে যায়:

  • এই পৃষ্ঠায় যান এবং জিওসিভার 2-2.1-SNAPSHOT-printing-plugin.zip ফাইলটি ডাউনলোড করুন।
  • জিও সার্ভার ওয়েব অ্যাপে জিপ সংরক্ষণাগারটির সামগ্রীগুলি / WEB-INF / lib / এ সরিয়ে ফেলুন
  • জিওসারবার পুনরায় চালু করুন

ঠিক আছে এখন প্লাগইনটি ইনস্টল হওয়ার পরে আপনাকে প্লাগইনটি কনফিগার করতে হবে যা কনফিগার.আইএমএল ফাইলটি পরিবর্তন করে যা করা হবে যা 'lastাল্যস্ত্রে' উপরে তাদের উত্তরে কথা বলে। জিও সার্ভার পুনরায় চালু করার সময় এবং নিম্নলিখিত অবস্থানে পাওয়া গেলে ফাইলটি তৈরি করা উচিত:

GEOSERVER_DATA_DIR / মুদ্রণ / config.yaml

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

পরবর্তী পদক্ষেপটি এমন একটি অ্যাপ্লিকেশন তৈরি করা যা মুদ্রণ করতে এই প্লাগইনটি ব্যবহার করে। GeoEXT ব্যবহার মুদ্রণের জন্য এই সেটআপ ব্যবহার করে কোনো অ্যাপ্লিকেশন একটি উদাহরণ পাওয়া যাবে এখানে । আপনি যদি আরও কিছু উদাহরণ দেখতে চান তবে এই পৃষ্ঠায় দেখুন।

আশা করি এটি আপনার শুরু হবে।


শীঘ্র বন্ধ / বিষয় প্রশ্ন, আপনার ডাটাবেস থেকে ওএসএম প্রিন্ট করার সময়, আপনি ওএসএম শৈলীর সাথে মেলে আপনার ডাব্লুএমএস সার্ভারে স্টাইলটি কীভাবে পেয়েছেন? (অথবা আপনি বিভিন্ন স্টাইল করেছেন এবং এর 100% মিল নেই)
25:30

আমি আমার নিজস্ব স্টাইল তৈরি করেছি। আমি এটি ওএসএমের চেয়ে গুগল ম্যাপস স্টাইলে বন্ধ করে দিয়েছি।
ডার্কসিল্ডে

2
আপনি দয়া করে ভাগ করতে পারেন?
অ্যালোফিন্ড


0

"পৃষ্ঠায় চিত্রটি ফিট করুন" "ম্যাপে কাগজে থাকা" আরও সহজ হতে পারে ... কার্টোগ্রাফির ইতিহাস কাগজে লেখা ছিল এবং আজও কিছু কার্টোগ্রাফিক পণ্য কাগজের দাবি করে।

আজ, কাগজ পিডিএফ - ভুলবেন EPUB বা "ব্রাউজার দ্বারা মুদ্রণ", তারা মান অপেক্ষা করছে, সিএসএস 3, ইত্যাদি ভবিষ্যতের জন্য ... এবং ভাল মানের (কাগজ) মানচিত্রবৎ পণ্য প্রয়োজন XSLT-এফ ও বা CSS 2 । (এক্স) এইচটিএমএল + সিএসএস 2 দিয়ে আপনি ভাল পিডিএফ তৈরি করতে পারেন (!) ... এইচটিএমএল "ব্রাউজারের জন্য" নয়, এটি একটি "পিডিএফ জেনারেশন" সরঞ্জামের জন্য (যা পিডিএফ অন-ফ্লাই বা অফলাইনে উত্পন্ন করে)।

শুধুমাত্র পেশাদারী "টুল জেনারেট করতে ভাল পিডিএফ যে আমি জানি সঙ্গে এইচটিএমএল + + CSS 2", হয় PrinceXML : আমি "অন মাছি চিত্র" (করা SVG, JPG, এবং PNG) থেকে সাথে পরীক্ষিত WFS এবং জন্য WMS প্রোটোকল, এবং OpenLayers , এবং এটি এত ভাল কাজ করে (!)।


0

আমি সবেমাত্র এটি করেছি:

ডাউনলোড করা html2canvas.js ( https://github.com/niklasvh/html2canvas/reLives )

এইচটিএমএল 2 ক্যানভাস-প্রক্সি.এফপি ডাউনলোড করেছেন ( https://github.com/adjdred/html2canvas-proxy-php )

এগুলি উভয়ই আমার সার্ভারে ইনস্টল করেছেন + ট্যাগে এবং আমার জেএস-এ .js রেফ করুন:

html2canvas(document.getElementById("map"), {
    proxy: "../lib/html2canvasproxy.php",
    logging : true,
    onrendered: function (canvas) {
        var img = canvas.toDataURL("image/png");
        window.open(img);
    }
});

আমাকে বর্তমান মানচিত্রের একটি .png দেয় - যা দিয়ে আমি যা করতে পারি - আমার পিসিতে এক সেকেন্ডেরও কম সময় লাগে।

ক্ষুদ্র


-2

আপনার কাছে যে সরঞ্জামগুলি রয়েছে সেগুলি দিয়ে ওয়েবে সরাসরি মুদ্রণ করা সম্ভব তবে এর জন্য এমন কিছু দক্ষতার প্রয়োজন হবে যা আপনার কাছে নেই।

আপনার জন্য আমার সমাধানটি কিউজিআইএস ব্যবহার করা হবে । কিউজিআইএস-এ ওপেনলায়ার্স প্লাগইন ইনস্টল করে আপনি যে ওএসএম স্তরটি চান সেটি অ্যাক্সেস করতে এবং জিওসারবার ডাব্লুএমএস স্তরটি যুক্ত করতে পারেন (একটি ডাব্লুএমএস স্তর যুক্ত করে)।

তারপরে আপনি এই শক্তিশালী সরঞ্জামটির সাহায্যে আপনি যে চেহারাটি চান সেটি দিয়ে আরও মুদ্রণ করতে পারেন। সব ভাল, টিউডর

পুনশ্চ. আমি জানি যে আমার উত্তর সম্ভবত আপনি যা প্রত্যাশা করেছিলেন তা নয় তবে এটি কার্যকর হবে এবং কোনও ওয়েব সমাধানের চেয়ে আরও বেশি মুদ্রণ কাস্টমাইজিং সরবরাহ করে।


1
এটি একটি ওয়েব অ্যাপ্লিকেশন, ব্রাউজারগুলি ব্যবহার করে ... কিউজিআইএস এই সমাধানের জন্য প্রাসঙ্গিক নয়।
23:53
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.