Я пытаюсь сделать интерактивную карту, используя MapBox.Mapbox geoJSON форматирование
Основная идея заключается в том, что люди будут нависнуть над определенными регионами, и они загорятся, и событие вызовет показ некоторого контента.
я получил набор карт с использованием MapBox, а затем пошел вперед и получил некоторые данные для точек первым
Отправляясь сюда, чтобы создать шейп - http://www.gadm.org/country
И тогда происходит здесь, чтобы преобразовать этот файл в a json file - http://www.mapshaper.org/
Затем я загружаю данные на карту через карточку, и вот мой результат! (код ниже) - 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
Похоже, некоторые из полигонов «multipolygons», а некоторые являются самостоятельными. Мне удалось создать новую версию карты, используя только один регион, и это выглядит так: http://dev.touch-akl.com/nzmap2/
Моя функция для этого почти такая же, за исключением того, что я отключил область и использовал json-файл, координаты для этого региона.
Это файл в формате JSON для этого примера - http://dev.touch-akl.com/nzmap2/js/waikato.json
Так где я застрял в ... Есть ли способ форматирования исходного файла JSON таким образом, что будет держать каждый регион, как его собственного отдельный объект для зависаний? И если да, то как я могу изменить способ создания карты, получить желаемый результат?
Похоже, что я мог бы сделать отдельный файл json для каждого региона, как я делаю со вторым примером, но это просто не похоже на правильный способ сделать это, застряли в течение нескольких дней, поэтому любая помощь была бы оценена!
Спасибо человеку, что этот пост и ссылки, которые вы отправили, помогли кучам, и мне удалось получить карту, как и планировалось! –
Нет проблем, приятно слышать :) При работе с Mapbox вы должны иметь в виду, что mapbox.js на самом деле является расширенной версией Листовки. По моему опыту, когда вы ищете общие ответы, вам лучше обратиться к справочному руководству по лифлету, чем к картографическим апикалам, если только это не относится к расширению картографического листа Листовки. – iH8
Большое спасибо за подсказку ...Единственная проблема, с которой я столкнулся сейчас с моей картой, заключается в том, что я получаю parseerror при загрузке geoJSON через ajax, как я делал с предыдущими данными! –