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.