İçeriğe geç
getnextpdf.com

Pro sürüm

Geo

NextPDF Pro, PDF sayfa koordinatlarını coğrafi koordinatlara eşler ve GEO alt türüyle bir PDF ölçü sözlüğü üretir; böylece bir görüntüleyici, sayfa üzerindeki bir noktadan gerçek dünya konumunu raporlayabilir.

Bu yetenek NextPDF Pro (nextpdf/pro) ile sunulur ve Pro katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.

Geo’nun ayrı bir özellik başına lisans bayrağı yoktur; Pro katmanı zarfı onu doğrudan etkinleştirir.

Terminal window
composer require nextpdf/pro:^3

Coğrafi mekânsal bir PDF, ISO 32000-2 §12.8.2’de tanımlanan ve aygıt uzayı noktalarını coğrafi bir koordinat başvuru sistemine bağlayan bir ölçü sözlüğü taşır. NextPDF Pro, bu veriyi değişmez değer nesnelerinden oluşturur:

  • GeoCoordinate — bir enlem/boylam/yükseklik üçlüsü. Oluşturma, enlemi [-90, 90] ve boylamı [-180, 180] aralığında doğrular ve derece-dakika-saniye ile ondalık dize biçimlendirmesi sunar.
  • GeoControlPoint — bir PDF uzayı noktasının bir GeoCoordinate ile eşleştirilmesi.
  • ProjectionType — her biri bir EPSG koduna eşlenen yaygın izdüşümlerin (coğrafi, UTM, enine Mercator, Lambert konformal konik) bir enum’u.
  • GeoRegistration — kontrol noktaları ile izdüşüm ve jeodezik datum (varsayılan WGS84). isValid(), en az düzeyde bir afin dönüşüm için en az iki kontrol noktası gerektirir; toPdfMeasureDictionary(), /Subtype /GEO ve kontrol noktası dizileriyle /Measure sözlüğünü yayar.

NextPDF, ölçü sözlüğünü, çağıranın sağladığı ham bir sözlükten değil, doğrulanmış, değişmez değer nesnelerinden oluşturur. GeoCoordinate, oluşturma sırasında aralık dışı bir enlemi veya boylamı reddeder. GeoRegistration::isValid(), ikiden az kontrol noktasını reddeder; böylece bozuk bir kayıt, bozulmuş bir /GEO sözlüğü yaymak yerine hızlıca başarısız olur. İzdüşümler, koordinat başvuru sistemini tahmin edilen değil açık tutan ProjectionType aracılığıyla standart EPSG kodlarına çözümlenir. Datum, varsayılan olarak WGS84’tür ancak adlandırılmış bir alan olarak kalır; böylece varsayılan olmayan bir başvuru sistemi bilinçli bir seçimdir. Bu fail-closed duruşu önemlidir çünkü yanlış bir coğrafi başvuru, hiç olmamasından daha kötüdür; bir görüntüleyici, güvenle yanlış bir gerçek dünya konumu raporlardı. Tasarım arka planı: Tahmin etmeyi reddeden bir API.

SınıfSorumluluk
GeoCoordinateBiçimlendirmeyle doğrulanmış enlem/boylam/yükseklik.
GeoControlPointPDF noktası ↔ coğrafi nokta eşleştirmesi.
ProjectionTypeEPSG kodlarıyla izdüşüm enum’u.
GeoRegistration/Measure /GEO sözlüğünü oluşturur.
use NextPDF\Pro\Geo\{GeoRegistration, GeoControlPoint, GeoCoordinate, ProjectionType};
$reg = new GeoRegistration(
controlPoints: [
new GeoControlPoint(0.0, 0.0, new GeoCoordinate(40.0, -74.0, 0.0)),
new GeoControlPoint(600.0, 800.0, new GeoCoordinate(41.0, -73.0, 0.0)),
],
projection: ProjectionType::Geographic,
);
$dict = $reg->toPdfMeasureDictionary();
if (! $reg->isValid()) {
throw new RuntimeException('Geo registration needs at least two control points.');
}
$logger->info('geo.registered', [
'projection' => $reg->projection->value,
'datum' => $reg->datum,
]);
  • GeoCoordinate oluşturma, aralık dışı bir enlemi veya boylamı reddeder.
  • İkiden az kontrol noktası, geçersiz bir kayıt üretir.
  • Varsayılan datum WGS84’tür; diğer başvuru sistemleri için onu açıkça ayarlayın.

Sözlük üretimi, kontrol noktalarının sayısında doğrusaldır.

Geo girdisi, sayısal koordinat verisidir. Kayıttan önce güvenilmeyen girdiden gelen kontrol noktalarını doğrulayın.

DavranışBaşvuruDurum
Coğrafi mekânsal ölçü sözlüğü (GEO alt türü)ISO 32000-2 §12.8.2Hizalanmış (yorumlanarak)
  • GeoCoordinate, oluşturma sırasında enlemi [-90, 90] ve boylamı [-180, 180] aralığında doğrular ve DMS ile ondalık dize biçimlendirmesi sunar.
  • GeoControlPoint, bir PDF uzayı noktasını bir GeoCoordinate ile eşleştirir.
  • GeoRegistration, kontrol noktaları ile bir ProjectionType (bir EPSG koduna eşlenmiş) ve varsayılan olarak WGS84 olan bir jeodezik datum taşır. isValid(), en az iki kontrol noktası gerektirir; toPdfMeasureDictionary(), /Subtype /GEO ve kontrol noktası dizileriyle bir /Measure sözlüğü yayar.
  • Aralık dışı koordinatlar veya ikiden az kontrol noktası, sessizce bozulmuş çıktı yerine geçersiz bir kayıt üretir.

Enterprise, Geo davranışını değiştirmez. Enterprise, ayrı olarak belgelenen üst katman özellikleri ekler; bunlar bir GeoPDF ölçü sözlüğü üretmek için gerekli değildir.

GeoPDF ölçü sözlüğü üretimi için hiçbir Core eşdeğeri yoktur. Bu bir Pro eklentisidir.

Bu sayfa yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.