Aracılığıyla paylaş


GeoJSON verilerini coğrafi olarak sınırlama

Azure Haritalar GET Geofence ve POST Geofence API'si, sağlanan bir bölge veya çit kümesine göre bir koordinatın yakınlığını almanıza olanak sağlar. Bu makalede, Azure Haritalar GET ve POST API'sinde kullanılabilecek coğrafi konum verilerinin nasıl hazırlandığının ayrıntıları verilmektedir.

Nesne ve FeatureCollection Nesne biçiminde temsil edilen coğrafi bölge veya bölge sınırı kümesine ilişkin Feature veriler rfc7946'daGeoJSON tanımlanır. Buna ek olarak:

  • GeoJSON Nesnesi türü bir Feature Nesne veya FeatureCollection Nesne olabilir.
  • Geometri Nesnesi türü , Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygonve GeometryCollectionolabilir.
  • Tüm özellik özellikleri, coğrafi konumu tanımlamak için kullanılan bir geometryIdiçermelidir.
  • , , MultiPoint, LineStringMultiLineString radius özelliği Pointözellikleri içermelidir. radius değeri metre cinsinden ölçülür, radius değer 1 ile 10000 arasında değişir.
  • ve multipolygon geometri türüne sahip polygon özelliğin radius özelliği yoktur.
  • validityTime , kullanıcının coğrafi konum verileri için süresi dolan zamanı ve geçerlilik süresini ayarlamasına olanak tanıyan isteğe bağlı bir özelliktir. Belirtilmezse, verilerin süresi hiçbir zaman dolmaz ve her zaman geçerlidir.
  • expiredTime, coğrafi sınırlama verilerinin son kullanma tarihi ve saatidir. İstekteki değeri userTime bu değerden sonraysa, ilgili coğrafi konum verileri süresi dolmuş veriler olarak kabul edilir ve sorgulanmaz. Bunun üzerine, bu coğrafi verinin geometryId değeri, coğrafi konum yanıtı içindeki diziye dahil expiredGeofenceGeometryId edilir.
  • validityPeriod, coğrafi konumun geçerlilik süresi aralığının listesidir. İstekteki değerinin userTime geçerlilik süresinin dışında olması durumunda ilgili coğrafi konum verileri geçersiz olarak kabul edilir ve sorgulanmaz. Bu coğrafi konum verilerinin geometryId değeri, coğrafi konum yanıtı içindeki diziye invalidPeriodGeofenceGeometryId dahil edilir. Aşağıdaki tabloda validityPeriod öğesinin özellikleri gösterilmektedir.
Adı Tür Zorunlu Açıklama
startTime Datetime true Geçerlilik döneminin başlangıç tarihi saati.
endTime Datetime true Geçerlilik döneminin bitiş tarihi saati.
recurrenceType Dize yanlış Dönemin yinelenme türü. Değer , , WeeklyMonthlyveya YearlyolabilirDaily. Varsayılan değer Daily olarak belirlenmiştir.
businessDayOnly Boolean yanlış Verilerin yalnızca iş günlerinde geçerli olup olmadığını belirtin. Varsayılan değer false olarak belirlenmiştir.
  • Tüm koordinat değerleri içinde tanımlanan WGS84[boylam, enlem] olarak temsil edilir.
  • , , MultiLineStringMultiPolygon veya GeometryCollectioniçeren MultiPointher Özellik için özellikler tüm öğelere uygulanır. örneğin: içindeki MultiPoint tüm noktalar aynı yarıçapı kullanarak birden çok daire coğrafi bölge oluşturur.
  • Nokta daire senaryosunda, GeoJSON geometrilerini genişletme konusunda ayrıntılı olarak açıklanan özelliklere sahip bir Point geometri nesnesi kullanılarak daire geometrisi temsil edilebilir.

Aşağıda, merkez noktası ve yarıçap kullanarak içinde daire jeofence geometrisi GeoJSON olarak temsil edilen bir coğrafi bölge için örnek istek gövdesi verilmiştir. Coğrafi bölge verilerinin geçerli süresi, hafta sonu dışında her gün tekrarlanan, 09:00 ile 17:00 arasında başlar 2018-10-22. expiredTime , istekte değerinden sonraysa userTime 2019-01-01bu coğrafi konum verilerinin süresinin dolduğu kabul edildiğini gösterir.

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-122.126986, 47.639754]
    },
    "properties": {
        "geometryId" : "1",
        "subType": "Circle",
        "radius": 500,
        "validityTime": 
        {
            "expiredTime": "2019-01-01T00:00:00",
            "validityPeriod": [
                {
                    "startTime": "2018-10-22T09:00:00",
                    "endTime": "2018-10-22T17:00:00",
                    "recurrenceType": "Daily",
                    "recurrenceFrequency": 1,
                    "businessDayOnly": true
                }
            ]
        }
    }
}