annotate src/djol/DistanceMeasureTool.js @ 10:8705103f074f

Слияние
author cin
date Mon, 21 Aug 2017 18:03:00 +0300
parents f0035923ff3e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
1 define([
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
2 "dojo/_base/declare",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
3 "implab/safe",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
4 "./MeasureToolBase",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
5 "implab/text/format",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
6 "dojo/i18n!./format/nls/units",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
7 "ol" ],
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
8
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
9 function(declare, safe, MeasureToolBase, format, units, ol) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
10 return declare([ MeasureToolBase ], {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
11
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
12 isGeodesic : true,
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
13
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
14 units : 'metric',
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
15
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
16 constructor : function(opts) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
17 if (opts)
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
18 safe.mixin(this,opts,["isGeodesic", "units"]);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
19 },
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
20
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
21 _createDraw : function(source) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
22 return new ol.interaction.Draw(
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
23 {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
24 source : source,
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
25 type : "LineString",
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
26 style : this.drawStyle
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
27 });
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
28 },
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
29
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
30 _formatTooltip : function(sketch, proj) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
31 var length = 0;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
32 if (this.isGeodesic) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
33 var points = sketch.getGeometry().getCoordinates();
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
34 var t = ol.proj.getTransform(proj, "EPSG:4326");
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
35 for (var i = 0; i < points.length - 1; i++) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
36 length += this.wgs84Sphere.haversineDistance(
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
37 t(points[i]),
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
38 t(points[i + 1]));
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
39 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
40 } else {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
41 length = sketch.getGeometry().getLength();
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
42 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
43
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
44 var mpu, unitName;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
45 switch (this.units) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
46 case "nautical":
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
47 mpu = 1852;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
48 unitName = units.nmiles;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
49 break;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
50 default:
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
51 mpu = 1000;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
52 unitName = units.kilometers;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
53 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
54
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
55 if (length >= mpu) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
56 return format("{0:#.0#}{1}", length / mpu, unitName);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
57 } else {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
58 return format("{0:#0.0#}{1}", length, units.meters);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
59 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
60 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
61
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
62 });
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
63 });