mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 05:30:35 +02:00
@@ -373,6 +373,7 @@ en:
|
||||
line: line
|
||||
area: area
|
||||
relation: relation
|
||||
note: note
|
||||
geocoder:
|
||||
search: Search worldwide...
|
||||
no_results_visible: No results in visible map area
|
||||
|
||||
Vendored
+2
-1
@@ -460,7 +460,8 @@
|
||||
"vertex": "vertex",
|
||||
"line": "line",
|
||||
"area": "area",
|
||||
"relation": "relation"
|
||||
"relation": "relation",
|
||||
"note": "note"
|
||||
},
|
||||
"geocoder": {
|
||||
"search": "Search worldwide...",
|
||||
|
||||
@@ -11,7 +11,7 @@ import { t } from '../../util/locale';
|
||||
import { displayArea, displayLength, decimalCoordinatePair, dmsCoordinatePair } from '../../util/units';
|
||||
import { geoExtent } from '../../geo';
|
||||
import { utilDetect } from '../../util/detect';
|
||||
|
||||
import { services } from '../../services';
|
||||
|
||||
|
||||
export function uiPanelMeasurement(context) {
|
||||
@@ -43,21 +43,40 @@ export function uiPanelMeasurement(context) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
function nodeCount(feature) {
|
||||
if (feature.type === 'LineString') return feature.coordinates.length;
|
||||
|
||||
if (feature.type === 'Polygon') {
|
||||
return feature.coordinates[0].length - 1;
|
||||
}
|
||||
if (feature.type === 'Polygon') return feature.coordinates[0].length - 1;
|
||||
}
|
||||
|
||||
|
||||
function redraw(selection) {
|
||||
var resolver = context.graph();
|
||||
var selected = _filter(context.selectedIDs(), function(e) { return context.hasEntity(e); });
|
||||
var selectedNoteID = context.selectedNoteID();
|
||||
var osm = services.osm;
|
||||
|
||||
var selected, center, entity, note, geometry;
|
||||
|
||||
if (selectedNoteID && osm) { // selected 1 note
|
||||
selected = [ t('note.note') + ' ' + selectedNoteID ];
|
||||
note = osm.getNote(selectedNoteID);
|
||||
center = note.loc;
|
||||
geometry = 'note';
|
||||
|
||||
} else { // selected 1..n entities
|
||||
var extent = geoExtent();
|
||||
selected = _filter(context.selectedIDs(), function(e) { return context.hasEntity(e); });
|
||||
if (selected.length) {
|
||||
for (var i = 0; i < selected.length; i++) {
|
||||
entity = context.entity(selected[i]);
|
||||
extent._extend(entity.extent(resolver));
|
||||
}
|
||||
center = extent.center();
|
||||
geometry = entity.geometry(resolver);
|
||||
}
|
||||
}
|
||||
|
||||
var singular = selected.length === 1 ? selected[0] : null;
|
||||
var extent = geoExtent();
|
||||
var entity;
|
||||
|
||||
selection.html('');
|
||||
|
||||
@@ -68,19 +87,12 @@ export function uiPanelMeasurement(context) {
|
||||
|
||||
if (!selected.length) return;
|
||||
|
||||
var center;
|
||||
for (var i = 0; i < selected.length; i++) {
|
||||
entity = context.entity(selected[i]);
|
||||
extent._extend(entity.extent(resolver));
|
||||
}
|
||||
center = extent.center();
|
||||
|
||||
|
||||
var list = selection
|
||||
.append('ul');
|
||||
var coordItem;
|
||||
|
||||
// multiple features, just display extent center..
|
||||
// multiple selected features, just display extent center..
|
||||
if (!singular) {
|
||||
coordItem = list
|
||||
.append('li')
|
||||
@@ -92,16 +104,13 @@ export function uiPanelMeasurement(context) {
|
||||
return;
|
||||
}
|
||||
|
||||
// single feature, display details..
|
||||
if (!entity) return;
|
||||
var geometry = entity.geometry(resolver);
|
||||
|
||||
// single selected feature, display details..
|
||||
if (geometry === 'line' || geometry === 'area') {
|
||||
var closed = (entity.type === 'relation') || (entity.isClosed() && !entity.isDegenerate()),
|
||||
feature = entity.asGeoJSON(resolver),
|
||||
length = radiansToMeters(d3_geoLength(toLineString(feature))),
|
||||
lengthLabel = t('info_panels.measurement.' + (closed ? 'perimeter' : 'length')),
|
||||
centroid = d3_geoCentroid(feature);
|
||||
var closed = (entity.type === 'relation') || (entity.isClosed() && !entity.isDegenerate());
|
||||
var feature = entity.asGeoJSON(resolver);
|
||||
var length = radiansToMeters(d3_geoLength(toLineString(feature)));
|
||||
var lengthLabel = t('info_panels.measurement.' + (closed ? 'perimeter' : 'length'));
|
||||
var centroid = d3_geoCentroid(feature);
|
||||
|
||||
list
|
||||
.append('li')
|
||||
@@ -157,7 +166,8 @@ export function uiPanelMeasurement(context) {
|
||||
});
|
||||
|
||||
} else {
|
||||
var centerLabel = t('info_panels.measurement.' + (entity.type === 'node' ? 'location' : 'center'));
|
||||
var centerLabel = t('info_panels.measurement.' +
|
||||
(note || entity.type === 'node' ? 'location' : 'center'));
|
||||
|
||||
list
|
||||
.append('li')
|
||||
|
||||
Reference in New Issue
Block a user