2016-11-07 3 views
0

JPG 파일의 이미지 레이어에서 var center = {lat: 12.972876848034, lng: 77.589721116026} (이 점을 Google지도에서 선택)과 같은 중심으로 원을 만들려고합니다. 그러나 원은 나타나지 않습니다. EPSG로 원 그리기 : 이미지 레이어에 4326 좌표 중심 설정 OpenLayers 2

다음은 내 코드입니다.
<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://openlayers.org/api/OpenLayers.js"></script> 
    <script type="text/javascript"> 
     var map; 
     function init() { 
      var imgWidth = 1864; 
      var imgHeight = 1070; 
      var extend = new OpenLayers.Bounds(77.58356602859499, 12.965959702159019, 77.6046633014679, 12.976413580812167); 
      var layer = new OpenLayers.Layer.Image(
       'Image layer', 
       'images/view.jpg', 
       extend, 
       new OpenLayers.Size(imgWidth, imgHeight), 
       {numZoomLevels: 6} 
      ); 

      map = new OpenLayers.Map(
      { 
       div: "mapdiv", 
       maxExtent: extend, 
       maxResolution: 156543, 
       numZoomLevels: 6 
      } 
      ); 

      map.addLayers([layer]); 
      map.zoomToMaxExtent(); 

      var center = {lat: 12.972876848034, lng: 77.589721116026} 
      var lonLat = new OpenLayers.LonLat(center.lng, center.lat) 
      var pCenter = new OpenLayers.Geometry.Point(lonLat.lon, lonLat.lat); 

      var circle = OpenLayers.Geometry.Polygon.createRegularPolygon(pCenter, 50, 70, 0); 
      var circleFeature = new OpenLayers.Feature.Vector(circle); 
      var circleStyle = new OpenLayers.StyleMap({'strokeColor': '#1E88E5', 'strokeWidth': 2}); 
      var circleLayer = new OpenLayers.Layer.Vector("Route Layer", {styleMap: circleStyle}); 
      circleLayer.addFeatures([circleFeature]); 
     } 
     init(); 
    </script> 
</head> 
<body onload="init()"> 
    <div style="height: 100vh" id="mapdiv"></div> 
</body> 

는 어떻게 이런 일이 발생하고 어떻게 그것을 해결할 수 있습니까? 미리 제안 해 주셔서 감사합니다.

+0

코드를 완전하고 재현 가능한 버전으로 게시하십시오. – scai

+0

@scai 소스 코드를 업데이트했습니다. 죄송합니다! – dauruy

답변

0

EPSG : 4326 좌표를 사용하기 때문에 반경 단위가 학위 여야합니다. 나는 radius = 0.1을 설정했고 이제는 효과가있었습니다.

+0

그게 당신이 바꿨습니까? circle = OpenLayers.Geometry.Polygon.createRegularPolygon (pCenter, 0.1, 70, 0); –

+0

예, 그게 전부입니다. – dauruy