Визуализировать GeoTiff в браузере с листовкой

У меня есть большое изображение GeoTiff со следующим gdalinfo:

Driver: GTiff/GeoTIFF 
Files: ImageNew.tif
Size is 8501, 8544
Coordinate System is:
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,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.0174532925199433,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4326"]],
    PROJECTION["Mercator_1SP"],
    PARAMETER["central_meridian",0],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AXIS["X",EAST],
    AXIS["Y",NORTH],
    EXTENSION["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 +units=m +nadgrids=@null +wktext +no_defs"],
    AUTHORITY["EPSG","3857"]]
Origin = (8267060.670175411738455,3458242.195657447911799)
Pixel Size = (0.583831698389895,-0.583831698389895)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  ( 8267060.670, 3458242.196) ( 74d15'51.37"E, 29d38'48.83"N)
Lower Left  ( 8267060.670, 3453253.938) ( 74d15'51.37"E, 29d36'28.61"N)
Upper Right ( 8272023.823, 3458242.196) ( 74d18'31.88"E, 29d38'48.83"N)
Lower Right ( 8272023.823, 3453253.938) ( 74d18'31.88"E, 29d36'28.61"N)
Center      ( 8269542.247, 3455748.067) ( 74d17'11.62"E, 29d37'38.73"N)
Band 1 Block=8501x1 Type=Byte, ColorInterp=Palette

Что я хотел сделать, так это отобразить изображение в браузере и получить фактические координаты широты и долготы (как указывает карта Google)

Я использовал следующую библиотеку для преобразования изображения в плитки: https://github.com/commenthol/gdal2tiles-leaflet

И https://github.com/commenthol/leaflet-rastercoords

для рендеринга мозаики в веб-браузере.

Вроде все нормально работает. Но когда я нажимаю на него, возвращаются неправильные координаты latlong по сравнению с фактическим latlong google и отображаемым изображением latlng.

Я где-то ошибаюсь?


person Prajyot Khandeparkar    schedule 21.06.2018    source источник
comment
Как эти координаты неправильные? Вы можете привести примеры?   -  person IvanSanchez    schedule 21.06.2018
comment
Я обнаружил координаты, которые мы получаем из пикселя браузера. Сделал использовать proj4js.   -  person Prajyot Khandeparkar    schedule 30.06.2018
comment
Какой код javascript вы используете для получения координат при нажатии?   -  person IvanSanchez    schedule 30.06.2018
comment
[github.com/commenthol/leaflet-rastercoords] // назначить размеры карты и изображения var rc = new L.RasterCoords(map, img); // устанавливаем маркеры на события клика на карте `map.on ('click', function (event) {var coords = rc.project (event.latlng)`   -  person Prajyot Khandeparkar    schedule 30.06.2018


Ответы (1)


Используя буклет gdal2tiles, я визуализирую растровое изображение GeoTiff в браузере. https://github.com/commenthol/gdal2tiles-leaflet

Что я делаю, чтобы преобразовать из проецируемой карты, чтобы получить фактические координаты (широта, долгота)

// Данные GeoTransform

var xoff = 424562.64403639885,
        a   = 0.5064676564009486,
        b   = 0,
        yoff = 3285265.740653501,
        d   = 0,
        e   = -0.5064676564009355;


var X_proj = a * coords.x + b * coords.y + xoff
var Y_proj = d * coords.x + e * coords.y + yoff

Где coords.x и coords.y - это ({x: 15336, y: 14088}) пиксельная точка карты браузера. Возвращено из события щелчка, как из примера: https://commenthol.github.io/leaflet-rastercoords/ < / а>.

Затем преобразование растровых точек (X_proj и Y_proj) с использованием proj4js для получения lat, lng

person Prajyot Khandeparkar    schedule 30.06.2018