আমি আইআরসি দিয়ে গিয়ে চেষ্টা করেছি যে লোকেরা আমাকে এটির জন্য সাহায্য করতে পারে কিনা তা দেখার চেষ্টা করেছি, তবে কোনও উত্তর পরিষ্কার করার জন্য মাধ্যমটি কিছুটা আনাড়ি বলে মনে হচ্ছে, তাই আমি পরিবর্তে এটি চেষ্টা করে যাচ্ছি।
আমি ইতিমধ্যে আরকিপি ব্যবহার করে স্ট্যান্ডএলোন অ্যাপ্লিকেশনগুলি যেভাবে প্রোগ্রাম করতে পারি সেইভাবে পাইকিজিআইএস ব্যবহার করে একটি স্বতন্ত্র অ্যাপ্লিকেশনটি প্রোগ্রাম করতে চাই।
পাইকিজিআইএস নিজেই সোজা। কিউজিআইএস কনসোল সম্পাদকের মধ্যে পাইথন স্ক্রিপ্টগুলি চালাতে আমার কোনও অসুবিধা হয়নি। তবে, স্ট্যান্ডেলোন স্ক্রিপ্টে পাইথন বাইন্ডিংগুলি ব্যবহার করার জন্য, আমাকে পরামর্শ দেওয়া হচ্ছে আমাকে অবশ্যই একটি ব্যাচের স্ক্রিপ্ট ব্যবহার করে পরিবেশের সেটিংসটি পরিবর্তন করতে হবে (আমি বাড়িতে উইন্ডোজ ভিস্তা ব্যবহার করছি, তাই আমরা উইন্ডোজের জন্য ব্যাচ স্ক্রিপ্টিংয়ের কথা বলছি)। এটি আমার শেষের দিকে বিশৃঙ্খলা সৃষ্টি করেছিল, কারণ আমি সত্যিই ব্যাচের স্ক্রিপ্টিংটি বুঝতে পারি না এবং আমি এমন ধারণাটি পছন্দ করি না যে আমি এমন একটি পরিবেশ পুনরায় সেট করছি যা আমার চালিত অন্যান্য অ্যাপ্লিকেশনগুলির জন্য একটি নির্দিষ্ট উপায় হতে হবে।
কেন এই সেটিংস তৈরির জন্য নির্দেশাবলী এত অযথা জটিল, এবং কেন "বাইন্ডিংগুলি সেখানে যান, এই প্রোগ্রামটির জন্য আমি যে লাইব্রেরিগুলি ব্যবহার করতে চাই তার জন্য যে লাইব্রেরিগুলি ব্যবহার করতে চাই সেগুলি তৈরি করে কেন এই কোড কোডের এক লাইনের মতো নয় কেন তা বুঝতে আমার সমস্যা হচ্ছে having )। অবশ্যই আর্কপাই কম্পিউটারের পরিবেশগত সেটিংগুলির সাথে লোকজনকে গোলযোগের প্রয়োজন হয় না, তাই পাইকিজিআইএস কেন হয় তা বুঝতে আমার অসুবিধা হচ্ছে It আমার কাছে মনে হয় লোকেরা নিজেকে উইন্ডোজ ব্যাচের স্ক্রিপ্টিং ল্যাঙ্গুয়েজ শেখানোর চেয়ে নিজেকে ছেড়ে দেবে।
এখন, আমি লক্ষ্য করেছি যে আমি যখন QGIS এর কনসোল সম্পাদকটিতে একটি স্ক্রিপ্ট রান করি তখন এটি কার্যকর হয়। মঞ্জুর, এটি স্ক্রিপ্টটি চলার পরে বাকী কিউজিআইএসকে ব্যবহারযোগ্য করে তোলে না, সুতরাং আমাকে আবারও কিউজিআইএস পুনরায় চালু করতে হবে, তবে স্ক্রিপ্টটি ঠিক তেমন কাজ করে যা আমি এটি কাজ করার জন্য প্রোগ্রাম করেছিলাম। তবে আমি যখন কিউজিআইএস অ্যাপ্লিকেশনটির বাইরে করি তখন তা হয় না। সমস্যাটি মনে হচ্ছে না যে আমি QGIS অ্যাপ্লিকেশন (qgis.core এবং qgis.utils) দ্বারা স্বয়ংক্রিয়ভাবে আমদানিকৃত কিছু পাইথন প্যাকেজ আমদানি করতে ব্যর্থ হয়েছি - অন্য সমস্ত প্যাকেজ আমদানির সাথে আমার স্ট্যান্ডলোন স্ক্রিপ্টে আমার সেগুলি আমদানি বিবরণী রয়েছে স্ক্রিপ্ট প্রয়োজন। এটি আমাকে বিশ্বাস করতে পরিচালিত করে যে পার্থক্যটি হ'ল কিউজিআইএস অ্যাপ্লিকেশন সঠিকভাবে বাহ্যিক পরিবেশের ভেরিয়েবলগুলি সেট করে, তবে আমি যখন স্ট্যান্ড্যালোন স্ক্রিপ্ট হিসাবে চালনা করি তখন সেই পরিবর্তনগুলি সঠিকভাবে সেট করা হয় না।
অতিরিক্ত হিসাবে, যখন আমি স্ক্রিপ্টটি স্বতন্ত্র স্ক্রিপ্ট হিসাবে চালিত করি তখন এটি কোনও ত্রুটি না ছড়িয়ে সমস্ত কোডের মধ্যে দিয়ে যায়; কোডটি যা আদেশ করে তা কেবল তা করে না। আমি যখন কনসোল সম্পাদকটিতে স্ক্রিপ্টটি চালিত করি তখন এটি সমস্ত সঠিকভাবে করে। আমি যখন এটি স্ট্যান্ডেলোন হিসাবে চালিত করি তখন এটি একটি উইন্ডো তৈরি করে, ততক্ষণে ত্রুটি না ছড়িয়ে দিয়ে তা ধ্বংস করে দেয়। স্ক্রিপ্টটি করতে বলার জন্য দোভাষী সমস্ত কিছু বুঝতে পারে - এটি কেবল এটি করবে না।
লিপিটি এখানে:
from PyQt4 import *
from PyQt4 import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *
from qgis.utils import *
import Tkinter
from Tkinter import *
import sys
import os
qgishome = "c:/OSGeo4W/apps/qgis/"
app = QgsApplication([], True)
QgsApplication.setPrefixPath(qgishome, True)
QgsApplication.initQgis()
canvas = QgsMapCanvas()
canvas.setCanvasColor(Qt.yellow)
canvas.enableAntiAliasing(True)
canvas.show()
layer = QgsVectorLayer(r"c:/GIS Data/fed308/cpc.shp", "Ridings", "ogr")
reg = QgsMapLayerRegistry.instance()
reg.addMapLayer(layer)
canvas.setExtent(layer.extent())
canvas.setLayerSet([QgsMapCanvasLayer(layer)])
QgsApplication.exitQgis()
দয়া করে ... কিউজিআইএস-এর বাইরে এই স্ক্রিপ্টটি চালানোর কোনও উপায় আছে এবং কিউজিআইএস-এর অভ্যন্তরে যেমন এটি কাজ করা যায় (আদর্শভাবে জিনিসগুলি একেবারে শেষ না করে বন্ধ করে দেওয়া হয়)?
কিউজিআইএস একটি দুর্দান্ত প্রোগ্রাম, এবং পাইকিজিআইএস আর্কপাইয়ের মতো স্বজ্ঞাত হিসাবে মনে হয় এবং এটি একটি মুক্ত উত্স সফ্টওয়্যারটি পাওয়ার জন্য সত্যিকারের সুবিধা হবে - তবে লোকেরা যদি ইতিমধ্যে আমি ইতিমধ্যে যে সমস্ত হুপগুলি পেরিয়েছি, এবং এখনও স্ট্যান্ডেলোন অ্যাপ্লিকেশন না পেয়ে থাকে পাইকিজিআইএস লাইব্রেরিগুলিতে অ্যাক্সেস যেমনভাবে তারা অর্পপাইতে অ্যাক্সেস করে থাকে, আমার কাছে মনে হয় পাইকিজিআইএস লোকজনের খুব বেশি কাজে আসবে না। আমি আশা করি আমি ভুল এবং এটি এতদূর থেকে সহজ এটি। কারো কাছে কি কোন সমাধান আছে?