2016-11-07 4 views
0

Ich versuche, einen Kreis mit einem Zentrum wie diesem var center = {lat: 12.972876848034, lng: 77.589721116026} (ich hebe diesen Punkt auf Google Maps) in einer Bildschicht aus einer JPG-Datei. Aber der Kreis wird nicht angezeigt.Zeichnen Kreis mit EPSG: 4326 Koordinatenmittelpunkt in Bildschicht OpenLayers 2

Hier ist mein Code.

<!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> 

Wie wird diese verursacht und wie kann ich sie lösen? Vielen Dank im Voraus für Anregungen.

+0

Bitte veröffentlichen Sie eine vollständige, reproduzierbare Version Ihres Codes. – scai

+0

@scai Ich habe den Quellcode aktualisiert, tut mir leid! – dauruy

Antwort

0

Ich habe die Antwort gefunden, weil ich EPSG: 4326 koordiniere, muss die Einheit des Radius in Grad sein. Ich habe radius = 0.1 eingestellt und jetzt hat es funktioniert.

+0

Hast du das geändert? circle = OpenLayers.Geometry.Polygon.createRegularPolygon (pCenter, 0.1, 70, 0); –

+0

Ja, das ist es. – dauruy

Verwandte Themen