PostGIS kullanarak yeni bir nokta almak için bir lat / lon'a nasıl ofset eklerim


9

PostGIS kullanarak lat / lon noktam var ve yeni bir nokta elde etmek için metre cinsinden bir doğu / batı ve kuzey / güney ofseti eklemek istiyorum. Mümkün mü?

Yanıtlar:


8

ST_Translate'i kullanabilirsiniz:

ST_Translate işlevi herhangi bir geometriyi alır (linestring, çok satırlı vb.), X, Y, Z tarafından tanımlanan bir vektör tarafından taşınan orijinal geometri olan yeni bir geometri döndürür. Ölçüm birimlerinin her zaman geometri argümanının uzamsal referans sisteminin birimlerinde olduğunu unutmayın. Bunun iki şekli vardır ST_Translate. ST_Translate (geometri, X, Y, Z) ve ST_Translate (geometri, X, Y).

Kaynak: http://www.bostongis.com/postgis_translate.snippet

Önce lat / lon'u metreye çevirmeniz gerekir. Bunu başarmak için ST_Transform'u kullanabilirsiniz:

ST_Transform - Koordinatları, integer parametresi tarafından başvurulan SRID'ye dönüştürülmüş yeni bir geometri döndürür.

Kaynak: http://postgis.net/docs/ST_Transform.html


Sorun yaşadığım lat / lon - metreler arası kısım. Bununla ilgili herhangi bir öneriniz var mı?
Dave Jennings

Cevaba karşılık gelen fonksiyonu ekledim. Hangi hedef SRID'yi seçeceğinizi bilmiyorsanız, verilerinizin coğrafi kapsamını kullanmayı söylemeniz gerekir.
underdark

Teşekkürler. Diğer araştırmam sonunda bana aynı şeyi söyledi. Safça daha basit olabileceğini düşündüm ve kullanabileceğim tek bir SRID olurdu, ancak bulunduğunuz yere göre bir tane seçmek zorundasınız gibi görünüyor.
Dave Jennings
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.