SORU
11 Mart 2010, PERŞEMBE


Kriterler SpatialRestrictions.İsWithinDistance Arabiriminin.Mekansal

Herkes bu hayata, ya da eğer uygulamak için zor olacağını biliyor bu/herhangi bir işaretçiler var mı?

public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance)
{
    // TODO: Implement
    throw new NotImplementedException();
}

Arabiriminin.Mekansal.Kriter.SpatialRestrictions

"Nerede NHSP.kullanabilirim(,: ÖZELLİK noktası) mesafe" hql. Ama benim mevcut Kriterler ile bu sorguyu sorgu birleştirmek istiyorum.

şu an için zor bir çokgen oluşturma ve kullanıyorum

criteria.Add(SpatialRestrictions.Intersects("PROPERTY", myPolygon));

EDİT Bir prototip SpatialRelationCriterion üzerinde aşırı yapıcı tarafından, yeni SpatialRelation ekleyerek çalışıyor.Mesafe

public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance)
        {
            return new SpatialRelationCriterion(propertyName, SpatialRelation.Distance, anotherGeometry, distance);
        }

SpatialRelationCriterion için yeni bir alan eklendi

private readonly double? distance;

public SpatialRelationCriterion(string propertyName, SpatialRelation relation, object anotherGeometry, double distance)
            : this(propertyName, relation, anotherGeometry)
        {
            this.distance = distance;
        }

ToSqlString Düzenlenmiş

object secondGeometry = Parameter.Placeholder;
                if (!(this.anotherGeometry is IGeometry))
                {
                    secondGeometry = columns2[i];
                }

                if (distance.HasValue)
                {
                    builder.Add(spatialDialect.GetSpatialRelationString(columns1[i], this.relation, secondGeometry, distance.Value, true));
                }
                else
                {
                    builder.Add(spatialDialect.GetSpatialRelationString(columns1[i], this.relation, secondGeometry, true));
                }

İSpatialDialect aşırı yüklü.GetSpatialRelationString

MsSql2008SpatialDialect uygulanan aşırı yük

public SqlString GetSpatialRelationString(object geometry, SpatialRelation relation, object anotherGeometry, double distance, bool criterion)
        {
            var x = new SqlStringBuilder(8)
                           .AddObject(geometry)
                           .Add(".ST")
                           .Add(relation.ToString())
                           .Add("(")
                           .AddObject(anotherGeometry)
                           .Add(")");

            if (criterion)
            {
                x.Add(" < ");
                x.AddObject(distance.ToString());
            }

            return x.ToSqlString();
        }

Emin neden AddParameter kullanılmayan değil mi?

CEVAP
17 HAZİRAN 2010, PERŞEMBE


İlginç Bir Soru. Android kendi içinde bu desen Rehber-App kullanır. Kaynak git kullanarak alabilirsiniz:

git clone git://android.git.kernel.org/platform/packages/apps/Contacts.git

Bunu ben yaptım ve hızlı bir şekilde grepped, ama kesin bir sonuç alamadım. Bendüşünüyorumbitiyor "Contacts/src/com/android/contacts/ui/QuickContactWindow.java" ama ben tamamen emin değilim.

Ben istediğiniz tam olarak menü türünü gösteren resimler var QuickContact android için google, bu bağlamda gerçekten denilen QuickContact olduğunu Olası görünüyor.

** 15, ben bakarak birşeyler kişiler dışında bunu yapmak için kullanabileceğiniz herhangi bir miras sınıfları görmüyor.

Yani, birkaç Başlangıç noktaları, ama bana hiçbir çözüm ;-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • itfigueres

    itfigueres

    12 EKİM 2013
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013
  • RyanXLT

    RyanXLT

    22 Ocak 2011