יותר

הפניה גיאוגרפית לתמונה ממפות Google באמצעות gdal_translate?


אני מנסה להפנות גיאוגרפית לתמונה באמצעות gdal_translate בשורת הפקודה. כרגע יש לי את הדברים הבאים

gdal_translate.exe -of GTiff -a_nodata 0 --config GDAL_DATA "מיקום תצורה" -a_ullr -77.057275 38.872024 -77.054672 38.869986 -a_srs EPSG: 3857 "Input.tif" "Output.tif"

היכן שמיקום התצורה הוא המיקום של קבצי הנתונים gdal.

הבעיה שיש לי היא כשאני פותח את התמונה הוא איבד את יחס הגובה-רוחב. אני מאמין שזה קשור להקרנה אבל אני לא בטוח.

gdalinfo.exe מספק את המידע הבא.

מנהל התקן: קבצי GTiff / GeoTIFF: גודל Output.tif הוא 1950, מערכת הקואורדינטות היא 1950: PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTHORITY ["EPSG", "7030"]], AUTHORITY ["EPSG", "6326"]], PRIMEM ["Greenwich", 0], UNIT ["degree", 0.0174532925199433], AUTHORITY ["EPSG "," 4326 "]], PROJECTION [" Mercator_1SP "], PARAMETER [" central_meridian ", 0], PARAMETER [" scale_factor ", 1], PARAMETER [" false_easting ", 0], PARAMETER [" false_northing ", 0] , UNIT ["מטר", 1, AUTHORITY ["EPSG", "9001"]], הרחבה ["PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + יחידות = m + nadgrids = @ null + wktext + no_defs "], AUTHORITY [" EPSG "," 3857 "]] מקור = (-77.057275000000004,38.872024000000003) גודל פיקסל = (0.000001334871795 , -0.000001045128205) מטא נתונים: AREA_OR_POINT = אזור TIFFTAG_RESOLUTIONUNIT = 2 (פיקסלים / אינץ ') TIFFTAG_SOFTWARE = ​​TwelveMonkeys סופר ImageIO TIFF DEV TIFFTAG_XRESOLUTION = 72 TIFFTAG_YRESOLUTION = 72 מבנה תמונה: מבנה תמונה: 72 E = קואורדינטות פינה של PIXEL: שמאל עליון (-77.0572750, 38.8720240) (0d 0 '2.49 "W, 0d 0' 1.26" N) שמאל תחתון (-77.0572750, 38.8699860) (0d 0 '2.49 "W, 0d 0' 1.26" N) ימין עליון (-77.0546720, 38.8720240) (0d 0 '2.49 "W, 0d 0' 1.26" N) ימין תחתון (-77.0546720, 38.8699860) (0d 0 '2.49 "W, 0d 0' 1.26" N) מרכז ( -77.0559735, 38.8710050) (0d 0 '2.49 "W, 0d 0' 1.26" N) רצועה 1 בלוק = 1950x1 סוג = בייט, ColorInterp = אדום NoData ערך = 0 רצועה 2 Block = 1950x1 סוג = Byte, ColorInterp = ירוק NoData ערך = 0 בלוק 3 רצועה = 1950x1 סוג = בתים, ColorInterp = כחול NoData ערך = 0

כפי שכבר צוין בתגובות,-a_ullrהפרמטרים צריכים להיות בהקרנת הסוחר של גוגל.

אז הכנס את שני זוגות התיאום שלך לקובץ טקסט בשם wgs84.txt, וצור קובץ אצווה עם תוכן זה:

cs2cs + init = epsg: 4326 + to + init = epsg: 3857 -f "%%. 2f" merc.txt

הפעל אצווה זו בתוך מעטפת OSGeo4W (או מסוף לינוקס), ותקבל:

-8577976.61 4703356.65 0.00 -8577686.85 4703065.26 0.00

העמודה השלישית היא הגובה מעל אליפסואיד, אתה לא צריך את זה כאן. הכנס את שני הערכים הראשונים לשורת הפקודה שלך gdal_translate, ועליך לקבל את ההפניה הנכונה.

gdal_translate -of GTiff -a_nodata 0 -a_ullr -8577977 4703357 -8577687 4703065 -a_srs EPSG: 3857 Input.tif Output.tif

אם אתה מפעיל את הפקודה בתוך מעטפת OSGeo4W, אין צורך במיקום תצורה. ייתכן שיהיה עליך להוסיף את הנתיב המלא לקובץ המקור והיעד שלך במרכאות, או לעבור לתיקיה עםCD. הפעלה על לינוקס עשויה להזדקק לטיפול אחר בנושא זה.


צפו בסרטון: איך להשתמש ב: Google maps API (אוֹקְטוֹבֶּר 2021).