2016-09-29 1 views
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 
    }) 
}); 

답변

0

나뭇 가지가 openlayers을 내장과는 아무 상관이 없습니다. 그것은 자바 스크립트 라이브러리입니다.

나뭇 가지가 실행되어 서버 측에 HTML을 생성합니다. OpenLayer 스크립트는 클라이언트 측에서 실행되어야합니다.

또한 openlayers document은 설명이 필요 없습니다.

+0

간단한 자체 스크립트 (및 간단한 MVC)를 사용하면 이미지를 포함 할 수 있습니다. OpenLayers에서 src를 구현하는 방법을 이해하고 있지만 Symfony에서는 이것이 작동하지 않는다는 것을 의미합니다. Symfony 2.8에서 이것을 만드는 방법은 무엇입니까? – olga

+0

또한 OpenLayer 3 자바 스크립트를 소유하고있는 Symfony 프로젝트 뷰 나뭇 가지 템플릿의 본문에 이미지를 포함 할 수 있습니다. 하지만 스크립트 자체에서 이미지를 src에 할당 할 수는 없습니다. – olga

+0

내가 PHP로 만들면 OpenLayer 3에 이미지를 포함 할 수 있다는 것을 의미하거나 간단한 MVC를 소유 할 수 있습니다. 그럼에도 불구하고 나는 Symfony 2 프로젝트에서 이것을 만들 수 없다. 하지만 템플릿의 OpenLayer 3 스크립트에는 포함되어 있지 않지만 Symfony 2 프로젝트 템플릿의 이미지는 포함 할 수 없습니다. OpenLayer 스크립트가 포함 된 동일한 템플릿에 이미지를 포함하려고했습니다. 이미지는 설명 된 세 가지 방법 중 하나를 사용하여 템플릿에 포함됩니다. 하지만 OpenLayer 객체로 스크립트를 작성하려고하면 작동하지 않습니다. – olga

관련 문제