OpenLayers Map Проекции с помощью Proj4JS

Я пытаюсь наложить данные о водоразделе Чесапикского залива на карту OpenLayers. Проблема в том, как бы я ни пытался спроецировать данные, водораздел (нарисованный с помощью d3) не в правильном положении. Код, который я использую для увеличения масштаба, находится здесь:

zoomToWatershed: function() {
  // Remove any svg currently on the map
  CP.MapFunctions.reset();
  // Fetch data from Flask
  CP.RequestHandler.get(
     "/get_data/watershed_topo", 
     function(json) {  
        ws = JSON.parse(json);
        watershed_coords = ws.features[0].geometry.coordinates[0];
        CP.map.setCenter(CP.cumberland, CP.watershed_zoom);
        watershed_coords.forEach(function(pair) {
           // Transform from NAD83 to Web Mercator
           var t = proj4(proj4.defs["EPSG:4269"], proj4.defs["SR-ORG:7483"], pair);
           // Get the pixel values
           px = CP.map.getViewPortPxFromLonLat(
              new OpenLayers.LonLat(t[0], t[1])
              );
           pair[0] = px.x;
           pair[1] = px.y;
        });
        // console.log(watershed_coords);
        CP.canvas.append("path")
           .datum(watershed_coords)
           .attr("d", d3.svg.line())
           .attr("class", "watershed");
     }
  );
}

Файл формы, который я использую для водораздела, не имел файла.prj, но в метаданных на ftp-сервере указывалось, что используется проекция NAD83 (EPSG4269), отсюда и преобразование. SR-ORG:7483 является эквивалентом EPSG:900913 или стандартной картографической проекции в сети.

Части Proj4js определены в отдельном js-файле следующим образом:

proj4.defs["EPSG:4269"] = "+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs"; 
proj4.defs["SR-ORG:6864"] = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637813 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs";
proj4.defs["SR-ORG:7483"] = "+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";

Мой вопрос: где я иду не так? Я протестировал как картографические проекции веб-стандарта (то есть EPSG:900913 и EPSG:3857, которые, я уверен, на самом деле одно и то же), так и стандарт EPSG:4326.

0 ответов

Другие вопросы по тегам