1
심포니 2.8에서 Openlayers 3 스크립트를 사용하여 나뭇 가지에 이미지를 포함시키는 방법은 무엇입니까?심포니 2.8에서 Openlayers 3 스크립트를 사용하여 나뭇 가지에 이미지를 포함시키는 방법?
자산이 아니거나 루트에서 참조하거나 현재 디렉토리에서 참조하는 기능이 작동하지 않습니다. 작동하지 않는 다른 좌표와 점, 그렇지 않은 - http://openlayers.org/en/v3.2.1/examples/drag-features.html
난 그냥 하나의 기능을 사용하여 작동 표시됩니다 다른지도를 사용했다 :
src: "{{ asset('bundles/meeting/images/google-map-pointer-grey.svg') }}" // does not work
src: "{{ asset('/bundles/meeting/images/google-map-pointer-grey.svg') }}" // does not work
src: "/bundles/meeting/images/google-map-pointer-grey.svg" // from root directory also does no work
src: "../../../images/google-map-pointer-grey.svg" // referencing from the current directory also does no work
코드의 예제입니다 지도에 표시됩니다.
// 나뭇 가지 템플릿
<script>
window.onload = function() {
var lat = document.getElementById('edit_form.latitude').value;
var lon = document.getElementById('edit_form.longitude').value;
var pointM = [ parseFloat(lon), parseFloat(lat) ];
var pointMWebMercator = ol.proj.fromLonLat(pointM, 'EPSG:3857');
console.log(' pointMWebMercator m= '+ pointMWebMercator);
var pointFeature = new ol.Feature(new ol.geom.Point(pointMWebMercator));
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([new app.Drag()]),
target: 'Openmap', // The DOM element that will contains the map
renderer: 'canvas', // Force the renderer to be used
size: [200, 200],
layers: [
new ol.layer.Tile({ source: new ol.source.OSM() }),
new ol.layer.Vector({
source: new ol.source.Vector({
features: [pointFeature]
}),
style: new ol.style.Style({
image: new ol.style.Icon(({
// @type {olx.style.IconOptions}
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.95,
src: "{{ asset('bundles/meeting/images/google-map-pointer-grey.svg') }}" // does not work
// src: "{{ asset('/bundles/meeting/images/google-map-pointer-grey.svg') }}" // does not work
// src: "/bundles/meeting/images/google-map-pointer-grey.svg" // from root directory also does no work
// src: "../../../images/google-map-pointer-grey.svg" // referencing from the current directory also does no work
})),
// A leading slash tells the browser to start at the root directory.
//// i can get the root directory from//print_r("SERVER[DOCUMENT_ROOT]".$_SERVER['DOCUMENT_ROOT']);
//// for symfony it is project/web
// If you don't have the leading slash, you're referencing from the current directory.
// If you add two dots before the leading slash, it means you're referencing the parent of the current directory.
stroke: new ol.style.Stroke({
width: 3,
color: [255, 0, 0, 1]
}),
fill: new ol.style.Fill({
color: [0, 0, 255, 0.6]
})
})
})
],
view: new ol.View({
center: pointMWebMercator,
zoom: 14
})
});
간단한 자체 스크립트 (및 간단한 MVC)를 사용하면 이미지를 포함 할 수 있습니다. OpenLayers에서 src를 구현하는 방법을 이해하고 있지만 Symfony에서는 이것이 작동하지 않는다는 것을 의미합니다. Symfony 2.8에서 이것을 만드는 방법은 무엇입니까? – olga
또한 OpenLayer 3 자바 스크립트를 소유하고있는 Symfony 프로젝트 뷰 나뭇 가지 템플릿의 본문에 이미지를 포함 할 수 있습니다. 하지만 스크립트 자체에서 이미지를 src에 할당 할 수는 없습니다. – olga
내가 PHP로 만들면 OpenLayer 3에 이미지를 포함 할 수 있다는 것을 의미하거나 간단한 MVC를 소유 할 수 있습니다. 그럼에도 불구하고 나는 Symfony 2 프로젝트에서 이것을 만들 수 없다. 하지만 템플릿의 OpenLayer 3 스크립트에는 포함되어 있지 않지만 Symfony 2 프로젝트 템플릿의 이미지는 포함 할 수 없습니다. OpenLayer 스크립트가 포함 된 동일한 템플릿에 이미지를 포함하려고했습니다. 이미지는 설명 된 세 가지 방법 중 하나를 사용하여 템플릿에 포함됩니다. 하지만 OpenLayer 객체로 스크립트를 작성하려고하면 작동하지 않습니다. – olga