2009-03-08 6 views
0

Her girişin enlem/boylam koordinatlarına sahip bir nokta olarak işaretlendiği ilişkisel bir veritabanım var. Kullanıcıya, bir harita üzerinde rastgele bir çokgeni işaretleme ve çokgen şekildeki tüm girdileri geri döndürme yeteneği veriyorum.Rasgele bir çokgen alan için bir koordinatla ilişkili veri veritabanı arama

Bunu başarmanın en iyi yolu ne olurdu? Ayrıca, küçük hataların iyi olduğuna dikkat edin (ör. Poligonu bir dizi dikdörtgen içine döndürmenin etkili bir yolu varsa, o zaman bu iyidir).

+0

BTW-- Neden bunun için topluluk wiki? İyi tanımlanmış teknik cevaplarla iyi bir teknik soru gibi görünüyor. – dmckee

+0

İçindeki zararı göremiyorum, en kötü ihtimalle dokunulmadan bırakacağım. –

cevap

-1

Eski kesmek:

<point in question> için <point far away> bağlayan bir çizgi çokgenin sınırlayıcı bölümlerinin herhangi sahasına kez sayın.

  • Hatta sayılar nokta
  • Tek sayılar o çokgen içinde
+0

Evet, ancak bunu bir SQL sorgusunda nasıl yapıyorsunuz? –

+0

Hiçbir fikrim yok. – dmckee

+0

Diğer bir deyişle: Buna indirgenirseniz, kendi kodunuzda yapmanız gerekebilir. Bu durumda, Jason'ın fikri * SQL'de uygulanabilir * ve düşük veri setinde emmeye imkan verir ... – dmckee

2

bir yolu, hızlı bir şekilde dikkate noktalarının sayısı azaltmak için poligon sınırlayıcı dikdörtgen (yani sadece dak x min-y, maks-X, max-y hesaplamak için çokgendeki noktaları) ve sonra sınırlayıcı dikdörtgenin içindeki noktaları (örneğin x'in min-x ve max-x arasında ve y için de aynı olduğunu) seçin.

Tabii ki tüm bu noktalar mutlaka çokgen içinde değil, ama şimdi kodla bileyiniz.

İlgili konular