Форматирование GeoJSON MapboxJquery

Программирование на jquery
Ответить
Anonymous
 Форматирование GeoJSON Mapbox

Сообщение Anonymous »

Я пытаюсь создать интерактивную карту с помощью MapBox.

Основная идея заключается в том, что люди будут наводить курсор на определенные регионы, и они загорятся, и произойдет событие. показывает некоторый контент.

Я настроил карту с помощью Mapbox, а затем сначала получил некоторые данные для точек.

Идем сюда, чтобы создать шейп-файл — http://www.gadm.org/country

А затем перейдите сюда, чтобы преобразовать этот файл в файл json - http://www.mapshaper.org/< /p>

Затем я загружаю данные на карту через Mapbox и вот мой результат! (код ниже) - http://dev.touch-akl.com/nzmap/

Как видите, благодаря загруженным мной данным, это почти идеально след страны, единственная проблема в том, что все регионы при наведении кажутся ОДНИМ объектом.

Код: Выделить всё

        $.ajax({
url: '/nzmap/js/nzmap.json',
dataType: 'json',
success: function load(data) {

// set up the regions based on the JSON data and then call the styles and the hovers
var regions = L.geoJson(data, {
style: getStyle,
onEachFeature: onEachFeature
}).addTo(map);

// selects used to style the regionsLayer
function getStyle(feature) {
return {
weight: 2,
opacity: 0.1,
color: 'black',
fillOpacity: 0.7,
fillColor: 'red'
};
}

// combine the mouse in and mouse out?
function onEachFeature(feature, layer) {
layer.on({
mousemove: mousemove,
mouseout: mouseout
});
}

// mouse over change the layer styles
function mousemove(e) {
var layer = e.target;

// highlight feature
layer.setStyle({
weight: 3,
opacity: 0.3,
fillOpacity: 0.9
});

if (!L.Browser.ie && !L.Browser.opera) {
layer.bringToFront();
}
}

//mouse out reset the style
function mouseout(e) {
regions.resetStyle(e.target);
}

}
});
Вот ссылка на файл json, если это поможет понять, что происходит — http://dev.touch-akl.com/nzmap//js/nzmap .json

Похоже, что некоторые полигоны являются «мультиполигонами», а некоторые — отдельными. Мне удалось создать новую версию карты, используя всего один регион, и выглядит она так - http://dev.touch-akl.com/nzmap2/

Мой Функция для этого практически такая же, за исключением того, что я разделил регион и использовал файл JSON, содержащий только координаты этого региона.

Это файл JSON для этот пример - http://dev.touch-akl.com/nzmap2/js/waikato.json

Итак, где я застрял, так это... Есть ли способ отформатировать исходный файл JSON таким образом, чтобы каждый регион оставался отдельным объектом для наведения? И если да, то как я могу изменить способ настройки карты, чтобы получить желаемый результат?

Похоже, я мог бы создать отдельный json-файл для каждого региона как я делаю со вторым примером, но это не похоже на правильный способ сделать это, застрял на несколько дней, поэтому буду благодарен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/269 ... formatting
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»