У меня есть многоугольник FeatureCollection geojson, сгенерированный / json_encode с PHP, сохраненный / проанализированный в Jquery. Все устраивает, ошибок нет, у geojsonLint с этим проблем не было, за исключением того, что полигоны фактически не загружаются на мою карту.
Маркеры из одной и той же коллекции объектов прекрасно загружаются, и console.log как для объекта geojson, так и для объекта гео имеет координаты и выглядит счастливым.
Геойсон хранится в UTF-8 и имеет акценты на иностранных языках и экранирует одинарные кавычки.
Ключевые строки кода:
//PHP
$MapPoly = str_replace("'", "\'", json_encode($db['MapPoly'],JSON_NUMERIC_CHECK));
//JQuery
var geojson = <?=$MapPoly?>;
if(geojson){
geojson = $.parseJSON(geojson);
//tried both of these methods w/ v2.2.3/mapbox.js
var geo = L.mapbox.featureLayer(geojson).addTo(map);
//not at the same time, of couse
var geo = L.mapbox.featureLayer().addTo(map);
geo.setGeoJSON(geojson);
}
Любые мысли будут оценены, … это официально поставило меня в тупик.
вам нужно echo
это, чтобы получить данные PHP в javascript/jquery/html
:
var geojson = <?php echo $MapPoly?>;
Избегайте использования коротких тегов.
хорошо, … я новичок здесь и не уверен, что лучше делать, удаляя это или нет. Решение, вероятно, не очень полезно, за исключением урока о том, как быть более осторожным с огромным количеством CSS.
У меня есть глобальная таблица стилей с этой строкой:
svg{width:100%;height:100%}
Полигоны являются SVG. Я хотел бы, чтобы эти 20 часов обновления экрана вернулись, пожалуйста.