Брошюра - Преобразование широты и долготы в стандартную проекцию

Как преобразовать координаты из системы координат Leaflet в систему координат, которую использует Google (WGS-84?), Если данные находятся во внешнем файле (geojson)? В примере с внешним файлом geojson я определил координаты для Парижа и Загреба и я ' м ищу решение для преобразования этих координат в точное местоположение :)

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "id": "par",
            "properties": {
                "name": "Paris"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    48.858093,
                    2.294694
                ]
            }
        },
        {
            "type": "Feature",
            "id": "zg",
            "properties": {
                "name": "Zagreb"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    45.815399, 
                    15.966568
                ]
            }
        }
    ]
}

Есть библиотека JavaScript Proj4js, но я не могу найти аналогичный пример для этого случая (с внешним файлом).


person corry    schedule 02.09.2015    source источник


Ответы (1)


Ваш GeoJSon можно использовать напрямую в Leaflet без преобразования широты / долготы.

Я использую карты Google, чтобы получить широту / долготу GPS в какой-то точке и использовать их в Leaflet без преобразования.

// Редактировать Для меня в листовке и картах Google используется одна и та же проекция.

введите здесь описание изображения

// РЕДАКТИРОВАТЬ 2

HTML:

   <div id="map" class="leaflet-container leaflet-fade-anim"></div>

JS :

  var map=L.map( "map" ,{
     center:[0,0],
     zoom:1, minZoom: 1 , maxZoom:18
  });
  var base_maps = [];
  var layer_OSM = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    noWrap: true,
    // continuousWorld: true,
    attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
    unloadInvisibleTiles: true
  });
  base_maps['OpenStreetMap'] = layer_OSM;
  map.addLayer(layer_OSM);



  var markersLayer = new L.FeatureGroup();

  var marker = L.marker([p_lat, p_lon]);

  markersLayer.addLayer(marker);
  map.addLayer(markersLayer);
person AlainIb    schedule 02.09.2015
comment
Если я хорошо понял, вы используете комбинацию Google Maps и Leaflet? Есть ли примеры использования такой комбинации? - person corry; 02.09.2015
comment
Нет, я использую буклет с широтой и долгим, который я получаю с карт Google без преобразования. проверьте загруженное изображение ниже - person AlainIb; 02.09.2015
comment
Хм, в моем случае не работает :( Подскажите, пожалуйста, какую версию Leaflet используете? Спасибо. - person corry; 02.09.2015
comment
Я редактирую свой ответ с помощью некоторого кода (не тестировался, потому что я копирую его из своего проекта). Что ты хотел сделать? лучше отредактировать свой вопрос, поместив код и ошибку - person AlainIb; 02.09.2015
comment
Если вы посмотрите на плунжер, вы увидите координаты Загреба и Парижа. не правы. Из вашего примера нет никакой разницы в проекции между Google Maps (где были взяты координаты) и Leaflet, и теперь я не знаю, что я делаю не так. Я постараюсь показать маркеры без директивы angular и сообщу, если что-то изменилось. Спасибо. - person corry; 02.09.2015
comment
Я нашел это. директива листовки инвертирует лат / долг, я не знаю почему. попробуйте эти координаты: [2.294694,48.858093] координаты: [15.966568,45.815399] - person AlainIb; 02.09.2015
comment
этот пример подходит для широты и долготы tombatossals.github.io/angular-leaflet-directive/examples/ - person AlainIb; 02.09.2015
comment
OMG, это немного смешно: D Правильно, большое спасибо. Попробую выяснить, почему директива инвертирует координаты. - person corry; 02.09.2015