ওজিআর এবং পাইথন ব্যবহার করে বহুভুজের সমস্ত শিখুন পান


18

পাইথন ওজিআর এপিআই নিয়ে আমার একটু সমস্যা হচ্ছে। আমি যা করার চেষ্টা করছি তা হ'ল একটি বহুভুজের বাইরের রিংয়ের প্রতিটি ভার্টেক্সের সমস্ত স্থানাঙ্ক।

আমার এ পর্যন্ত যা আছে:

import osgeo.ogr
import glob

path = "/home/woo/maps/"
out = path + 'output.txt'

file = open(out,'w')
for filename in glob.glob(path + "*.shp"):
    ds = osgeo.ogr.Open(filename)
    layer1 = ds.GetLayer(0)
    print layer1.GetExtent()    
    for feat in layer1:
        geom = feat.GetGeometryRef()
        ring = geom.GetGeometryRef(0)
        points = ring.GetPointCount()
        #Not sure what to do here


file.close()

আমি শুনেছি আপনি কেবল forঅঞ্চলটি পেরিয়ে যেতে পারেন তবে এটি কেবল বহুভুতে রিংগুলি দেয়, নোডগুলি নয়।

যে কেউ সহায়তা করতে সক্ষম।

উত্তর:


15

এটি আপনার ফাইলের ফর্ম্যাট এবং জ্যামিতির উপর কিছুটা নির্ভর করে, তবে নীতিগতভাবে ধারাবাহিকতা এটির মতো দেখাতে পারে।

  for p in xrange(points):
        lon, lat, z = ring.GetPoint(p)

এটি আউটপুটগুলির মধ্যে একটি: (1.8565347032449642e-313, 7.1913896573768921e-305, 6.3952653423603306e-305) এর সাথে কোনও ধারণা কী?
নাথান ডব্লিউ

ঠিক নয়, এটি একটি ত্রিগল স্থানাঙ্ক, যদি কিছুটা ক্ষুদ্র হয়;) - আপনার ইনপুট ডেটা এবং প্রজেকশন কেমন দেখাচ্ছে? যেমন কি ogrinfo -alবলে?
রিলেট

এটি আমার কাছে দেখে মনে হচ্ছে এটি ভাসমানকে দ্বৈত বা অনুরূপ হিসাবে ব্যাখ্যা করছে।
MerseyViking

5
এই লাইনটি পড়া উচিত: lon, lat, z = ring.GetPoint(p)যা আমার পক্ষে কাজ করে।
MerseyViking

ধন্যবাদ মের্সিভিকিং, এটি এটি করেছে .c বিশ্বাস করতে পারি না যে আমি এটি দেখেছি।
নাথান ডব্লিউ


5

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

import json
...
ring_dict = json.loads(ring.ExportToJson())
ring_dict

{'coordinates': [[-4.94237, 55.725449],
  [-4.941922, 55.725585],
  [-4.9420024, 55.7252119],
  [-4.9422001, 55.7250997],
  [-4.9423197, 55.7251789],
  [-4.9425472, 55.7253089],
  [-4.94237, 55.725449]],
 'type': 'LineString'}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.