2016-11-07 5 views
0

JPGファイルの画像レイヤーに、このような中心の円を作成しようとしています(私はこの点をGoogle Mapsで拾います)。しかし、サークルは表示されません。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

関連する問題