|
53 | 53 |
|
54 | 54 | var map = L.map('map', { |
55 | 55 | maxBounds: [ |
56 | | - [-90, -180], |
57 | | - [90, 180] |
| 56 | + [-90, -200], |
| 57 | + [90, 200] |
58 | 58 | ], |
59 | 59 | center: [50, 0], |
60 | 60 | zoom: 4 |
|
90 | 90 |
|
91 | 91 | // method that we will use to update the control based on feature properties passed |
92 | 92 | info.update = function (stats) { |
93 | | - const circumfenceString = (stats.totalDistance ? (stats.totalDistance>10000)?(stats.totalDistance/1000).toFixed(0)+' km':(stats.totalDistance).toFixed(0)+' m' : 'invalid') |
94 | | - const radiusString = (geodesiccircle.radius ? (geodesiccircle.radius>10000)?(geodesiccircle.radius/1000).toFixed(0)+' km':(geodesiccircle.radius).toFixed(0)+' m' : 'invalid') |
95 | | - this._div.innerHTML = '<h4>Statistics</h4><b>Radius</b><br/>' + radiusString + |
96 | | - '<br/><br/><b>Circumfence</b><br/>' + circumfenceString + |
| 93 | + const circumfenceString = (stats.totalDistance ? (stats.totalDistance > 10000) ? (stats.totalDistance / 1000).toFixed(0) + ' km' : (stats.totalDistance).toFixed(0) + ' m' : 'invalid') |
| 94 | + const radiusString = (geodesiccircle.radius ? (geodesiccircle.radius > 10000) ? (geodesiccircle.radius / 1000).toFixed(0) + ' km' : (geodesiccircle.radius).toFixed(0) + ' m' : 'invalid') |
| 95 | + this._div.innerHTML = '<h4>Statistics</h4><b>Radius</b><br/>' + radiusString + |
| 96 | + '<br/><br/><b>Circumfence</b><br/>' + circumfenceString + |
97 | 97 | '<br/><br/><b>Vertices</b><br/>' + stats.vertices; |
98 | | - }; |
| 98 | + }; |
99 | 99 |
|
100 | 100 | info.update(geodesiccircle.statistics); |
101 | 101 |
|
102 | | - var diff = {lat:0, lng:0}; |
| 102 | + var diff = { lat: 0, lng: 0 }; |
103 | 103 | A.on('dragstart', function () { |
104 | 104 | diff = { lat: A.getLatLng().lat - B.getLatLng().lat, lng: A.getLatLng().lng - B.getLatLng().lng }; // remember difference between A and B |
105 | 105 | }); |
|
110 | 110 | lat: Math.max(-90, Math.min(90, A.getLatLng().lat - diff.lat)), |
111 | 111 | lng: A.getLatLng().lng - diff.lng |
112 | 112 | }); // move B parallel to A |
113 | | - geodesiccircle.setLatLng(e.latlng); |
114 | | - geodesiccircle.setRadius(geodesiccircle.distanceTo(B.getLatLng())); |
| 113 | + |
| 114 | + const radius = geodesiccircle.geom.distance(e.latlng, B.getLatLng()); |
| 115 | + geodesiccircle.setLatLng(e.latlng, radius); |
115 | 116 | info.update(geodesiccircle.statistics); |
116 | 117 | }); |
117 | 118 | B.on('drag', (e) => { |
|
0 commit comments