1
package com.bdaum.zoom.gps.leaflet.internal.views;
5
import org.eclipse.core.runtime.CoreException;
6
import org.eclipse.core.runtime.IConfigurationElement;
7
import org.eclipse.core.runtime.IExecutableExtension;
8
import org.eclipse.osgi.util.NLS;
10
import com.bdaum.zoom.gps.leaflet.internal.LeafletActivator;
11
import com.bdaum.zoom.gps.widgets.AbstractMapComponent;
13
public class MapComponent extends AbstractMapComponent implements
14
IExecutableExtension {
16
private URL leafletUrl;
17
private URL zoomMapUrl;
18
private URL makimarkersUrl;
19
private URL leafletCss;
20
private URL providersUrl;
21
private URL minimapUrl;
22
private URL minimapCss;
23
private String mapProvider;
24
private URL markerClusterGroupUrl;
25
private URL markerClusterGroupCss;
26
private URL markerClusterGroupDefaultCss;
28
public void setInitializationData(IConfigurationElement config,
29
String propertyName, Object data) throws CoreException {
30
if (data instanceof String)
31
mapProvider = (String) data;
35
protected void findResources() {
36
leafletUrl = findUrl("/gmap/leaflet-src.js"); //$NON-NLS-1$
37
providersUrl = findUrl("/gmap/leaflet-providers.js"); //$NON-NLS-1$
38
leafletCss = findUrl("/gmap/leaflet.css"); //$NON-NLS-1$
39
zoomMapUrl = findUrl("/gmap/zoomMap.js"); //$NON-NLS-1$
40
makimarkersUrl = findUrl("/gmap/Leaflet.MakiMarkers.js"); //$NON-NLS-1$
41
minimapUrl = findUrl("/gmap/Control.MiniMap.js"); //$NON-NLS-1$
42
minimapCss = findUrl("/gmap/Control.MiniMap.css"); //$NON-NLS-1$
43
markerClusterGroupUrl = findUrl("/gmap/leaflet.markercluster-src.js"); //$NON-NLS-1$
44
markerClusterGroupCss = findUrl("/gmap/MarkerCluster.css"); //$NON-NLS-1$
45
markerClusterGroupDefaultCss = findUrl("/gmap/MarkerCluster.Default.css"); //$NON-NLS-1$
49
protected String createSetPosDetailScript(HistoryItem item) {
51
.bind("map.setZoom({0});\nmap.panTo({1});", (int) item.getDetail(), createLatLng(item.getLatitude(), item.getLongitude())); //$NON-NLS-1$
54
private URL findUrl(String path) {
55
return super.findUrl(LeafletActivator.getDefault().getBundle(), path);
59
protected String getMappingSystemName() {
60
return "Leaflet"; //$NON-NLS-1$
64
protected String getAppKey() {
69
protected String createAdditionalVariables() {
70
StringBuilder sb = new StringBuilder();
71
sb.append("var selectedProvider = \"").append(mapProvider) //$NON-NLS-1$
72
.append("\";\n"); //$NON-NLS-1$
77
protected String createScriptEntries() {
78
StringBuilder sb = new StringBuilder();
79
sb.append(createStyleEntry(leafletCss)).append('\n');
80
sb.append(createStyleEntry(minimapCss)).append('\n');
81
sb.append(createScriptEntry(leafletUrl)).append('\n');
82
sb.append(createScriptEntry(makimarkersUrl)).append('\n');
83
sb.append(createScriptEntry(providersUrl)).append('\n');
84
sb.append(createScriptEntry(minimapUrl)).append('\n');
85
sb.append(createScriptEntry(markerClusterGroupUrl)).append('\n');
86
sb.append(createStyleEntry(markerClusterGroupCss)).append('\n');
87
sb.append(createStyleEntry(markerClusterGroupDefaultCss)).append('\n');
88
sb.append(createScriptEntry(zoomMapUrl));
93
protected String createLatLng(double lat, double lon) {
95
.bind("L.latLng({0},{1})", usformat.format(lat), usformat.format(lon)); //$NON-NLS-1$
99
protected String createLatLngBounds(double swLat, double swLon,
100
double neLat, double neLon) {
102
.bind("L.latLngBounds({0},{1})", createLatLng(swLat, swLon), createLatLng(neLat, neLon)); //$NON-NLS-1$;
108
* @see com.bdaum.zoom.gps.IMapComponent#dispose()
112
public void dispose() {
113
getControl().dispose();