AddGeoJson не работает в карте Google для моего файла

Пожалуйста, проверьте ниже код, который я использую в JavaScript

//create the map
map = new google.maps.Map(document.getElementById('map-canvas'), {
   zoom: 6,
   center: {lat:49.79, lng: -8.82}
});

// Load GeoJSON.
var promise = $.getJSON("Sensitive_Areas_Nitrates_Rivers.json"); //same as map.data.loadGeoJson();
promise.then(function(data){
    cachedGeoJson = data; //save the geojson in case we want to update its values
    console.log(cachedGeoJson);
    map.data.addGeoJson(cachedGeoJson,{idPropertyName:"id"});  
});

Я загрузил этот файл с здесь

Вы можете проверить мой файл JSON Sensitive_Areas_Nitrates_Rivers.json

Также вы можете проверить эту ссылку с полигоном

Я использовал формат JSON ниже, чтобы вы могли его проверить

{"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "EPSG: 27700"}}, "features": [{"type": " Feature »,« id »: 1,« geometry »: {« type »:« MultiLineString »,« координаты »: [[[500051.6875, 224280.03130000085], [500047.2812999999, 224277.6875], [499977.5937999999, 224242.625], [499976.6875, 224242.625], [499976.6875, 22800 ]]]}, "свойства": {"OBJECTID": 8, "type_of_sa": "SA_N", "datedesign": 1025136000000, "name": "Rivers Itchen", "length_km": 12, "uwwtd_code": "UKENRI134", "shape_Length": 12172.080443901654}}]}

[500051.6875, 224280.03130000085] - Координаты [X, Y] могут быть в EPSG: 27700 - EPSG: 4326, Теперь нам нужно отобразить эти координаты на карте Google. Есть ли какое-то решение для этого?

6
Jaydeep Dhameliya 27 Дек 2019 в 17:44

3 ответа

Лучший ответ

Так как Google Maps ожидает, что GeoJSON будет в EPSG:4326, Sensitive_Areas_Nitrates_Rivers.json необходимо перепроецировать. QGIS, например, может использоваться в этом отношении (см. документы для получения подробной информации)

enter image description here

enter image description here

Перепроецированный слой Sensitive_Areas_Nitrates_Rivers.json будет отображаться так:

enter image description here

1
Vadim Gremyachev 2 Янв 2020 в 16:02

вы можете сослаться на эту страницу:

Перейдите по адресу: https://developers.google.com/maps/documentation/javascript/datalayer

0
Parth prajapati 27 Дек 2019 в 15:33

Вы получаете координаты в метрах. Для отображения на карте Google вам необходимо конвертировать ее в [Lng, Lat].

Для преобразования метров в [Lng, Lat] вам нужно изменить проекцию с EPSG: 27700 на 4326, тогда только вы можете получить этот геоджон в [Lng, Lat]

Инструмент, который вы можете использовать: QGIS Desktop 3.4.14 Ссылка: https://qgis.org/en/site/forusers/download.html

После конвертации вам нужно экспортировать этот файл как функцию.

1
shivam mishra 8 Янв 2020 в 09:35