feature/google-maps-in-mapeditor-added #33
							
								
								
									
										
											BIN
										
									
								
								public/static/img/markers/m1.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/static/img/markers/m1.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								public/static/img/markers/m2.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/static/img/markers/m2.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								public/static/img/markers/m3.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/static/img/markers/m3.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								public/static/img/markers/m4.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/static/img/markers/m4.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								public/static/img/markers/m5.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/static/img/markers/m5.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@ -7,7 +7,6 @@
 | 
				
			|||||||
            description: null
 | 
					            description: null
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        map: null,
 | 
					        map: null,
 | 
				
			||||||
        markers: null,
 | 
					 | 
				
			||||||
        panorama: null,
 | 
					        panorama: null,
 | 
				
			||||||
        selectedMarker: null,
 | 
					        selectedMarker: null,
 | 
				
			||||||
        added: {},
 | 
					        added: {},
 | 
				
			||||||
@ -124,10 +123,7 @@
 | 
				
			|||||||
            MapEditor.panorama.setVisible(false);
 | 
					            MapEditor.panorama.setVisible(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (marker.placeId) {
 | 
					            if (marker.placeId) {
 | 
				
			||||||
                MapEditor.markers.removeLayer(MapEditor.selectedMarker);
 | 
					                MapEditor.map.changeMarkerIcon(marker, MapEditor.map.iconCollection.iconBlue);
 | 
				
			||||||
                MapEditor.map.addLayer(MapEditor.selectedMarker);
 | 
					 | 
				
			||||||
                marker.setIcon(IconCollection.iconBlue);
 | 
					 | 
				
			||||||
                marker.setZIndexOffset(2000);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                document.getElementById('deleteButton').style.display = 'block';
 | 
					                document.getElementById('deleteButton').style.display = 'block';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -165,13 +161,13 @@
 | 
				
			|||||||
            var placeId = MapEditor.selectedMarker.placeId
 | 
					            var placeId = MapEditor.selectedMarker.placeId
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (places[placeId].id && !del) {
 | 
					            if (places[placeId].id && !del) {
 | 
				
			||||||
                MapEditor.map.removeLayer(MapEditor.selectedMarker);
 | 
					                MapEditor.map.changeMarkerIcon(
 | 
				
			||||||
                MapEditor.markers.addLayer(MapEditor.selectedMarker);
 | 
					                    MapEditor.selectedMarker,
 | 
				
			||||||
                MapEditor.selectedMarker.setIcon(places[placeId].noPano ? IconCollection.iconRed : IconCollection.iconGreen);
 | 
					                    places[placeId].noPano ? MapEditor.map.iconCollection.iconRed : MapEditor.map.iconCollection.iconGreen
 | 
				
			||||||
                MapEditor.selectedMarker.setZIndexOffset(1000);
 | 
					                );
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                delete places[placeId];
 | 
					                delete places[placeId];
 | 
				
			||||||
                MapEditor.map.removeLayer(MapEditor.selectedMarker);
 | 
					                MapEditor.map.removeMarker(MapEditor.selectedMarker);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            document.getElementById('deleteButton').style.display = 'none';
 | 
					            document.getElementById('deleteButton').style.display = 'none';
 | 
				
			||||||
@ -310,42 +306,9 @@
 | 
				
			|||||||
                var placeId = addedPlaces[i].id;
 | 
					                var placeId = addedPlaces[i].id;
 | 
				
			||||||
                places[tempId].id = placeId;
 | 
					                places[tempId].id = placeId;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // TODO: check whether marker is already existing on the map for the coordinates
 | 
					 | 
				
			||||||
        //       or alternatively block saving for matching coordinates
 | 
					 | 
				
			||||||
        placeMarker: function (latlng) {
 | 
					 | 
				
			||||||
            var marker = L.marker(latlng, {
 | 
					 | 
				
			||||||
                icon: IconCollection.iconBlue,
 | 
					 | 
				
			||||||
                zIndexOffset: 2000
 | 
					 | 
				
			||||||
            })
 | 
					 | 
				
			||||||
                .addTo(MapEditor.map)
 | 
					 | 
				
			||||||
                .on('click', function () {
 | 
					 | 
				
			||||||
                    MapEditor.select(this);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            MapEditor.select(marker);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var IconCollection = {
 | 
					 | 
				
			||||||
        iconGreen: L.icon({
 | 
					 | 
				
			||||||
            iconUrl: STATIC_ROOT + '/img/markers/marker-green.svg?rev' + REVISION,
 | 
					 | 
				
			||||||
            iconSize: [24, 32],
 | 
					 | 
				
			||||||
            iconAnchor: [12, 32]
 | 
					 | 
				
			||||||
        }),
 | 
					 | 
				
			||||||
        iconRed: L.icon({
 | 
					 | 
				
			||||||
            iconUrl: STATIC_ROOT + '/img/markers/marker-red.svg?rev=' + REVISION,
 | 
					 | 
				
			||||||
            iconSize: [24, 32],
 | 
					 | 
				
			||||||
            iconAnchor: [12, 32]
 | 
					 | 
				
			||||||
        }),
 | 
					 | 
				
			||||||
        iconBlue: L.icon({
 | 
					 | 
				
			||||||
            iconUrl: STATIC_ROOT + '/img/markers/marker-blue.svg?rev=' + REVISION,
 | 
					 | 
				
			||||||
            iconSize: [24, 32],
 | 
					 | 
				
			||||||
            iconAnchor: [12, 32]
 | 
					 | 
				
			||||||
        }),
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    var Util = {
 | 
					    var Util = {
 | 
				
			||||||
        getHighResData: function () {
 | 
					        getHighResData: function () {
 | 
				
			||||||
            if (window.devicePixelRatio >= 4) {
 | 
					            if (window.devicePixelRatio >= 4) {
 | 
				
			||||||
@ -384,52 +347,243 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.map = L.map('map', {
 | 
					    var LMapWrapper = {
 | 
				
			||||||
        zoomControl: false
 | 
					        map: null,
 | 
				
			||||||
    });
 | 
					        markers: null,
 | 
				
			||||||
 | 
					        iconCollection: {
 | 
				
			||||||
 | 
					            iconGreen: L.icon({
 | 
				
			||||||
 | 
					                iconUrl: STATIC_ROOT + '/img/markers/marker-green.svg?rev' + REVISION,
 | 
				
			||||||
 | 
					                iconSize: [24, 32],
 | 
				
			||||||
 | 
					                iconAnchor: [12, 32]
 | 
				
			||||||
 | 
					            }),
 | 
				
			||||||
 | 
					            iconRed: L.icon({
 | 
				
			||||||
 | 
					                iconUrl: STATIC_ROOT + '/img/markers/marker-red.svg?rev=' + REVISION,
 | 
				
			||||||
 | 
					                iconSize: [24, 32],
 | 
				
			||||||
 | 
					                iconAnchor: [12, 32]
 | 
				
			||||||
 | 
					            }),
 | 
				
			||||||
 | 
					            iconBlue: L.icon({
 | 
				
			||||||
 | 
					                iconUrl: STATIC_ROOT + '/img/markers/marker-blue.svg?rev=' + REVISION,
 | 
				
			||||||
 | 
					                iconSize: [24, 32],
 | 
				
			||||||
 | 
					                iconAnchor: [12, 32]
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.map.on('click', function (e) {
 | 
					        init: function (divId, places) {
 | 
				
			||||||
        MapEditor.placeMarker(e.latlng);
 | 
					            LMapWrapper.map = L.map('map', {
 | 
				
			||||||
    });
 | 
					                zoomControl: false
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var highResData = Util.getHighResData();
 | 
					            LMapWrapper.map.on('click', function (e) {
 | 
				
			||||||
 | 
					                LMapWrapper.placeMarker(e.latlng);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    L.tileLayer(tileUrl, {
 | 
					            var highResData = Util.getHighResData();
 | 
				
			||||||
        attribution: tileAttribution,
 | 
					 | 
				
			||||||
        subdomains: '1234',
 | 
					 | 
				
			||||||
        ppi: highResData.ppi,
 | 
					 | 
				
			||||||
        tileSize: highResData.tileSize,
 | 
					 | 
				
			||||||
        zoomOffset: highResData.zoomOffset,
 | 
					 | 
				
			||||||
        minZoom: highResData.minZoom,
 | 
					 | 
				
			||||||
        maxZoom: highResData.maxZoom
 | 
					 | 
				
			||||||
    }).addTo(MapEditor.map);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.map.fitBounds(L.latLngBounds({ lat: mapBounds.south, lng: mapBounds.west }, { lat: mapBounds.north, lng: mapBounds.east }));
 | 
					            L.tileLayer(tileUrl, {
 | 
				
			||||||
 | 
					                attribution: tileAttribution,
 | 
				
			||||||
 | 
					                subdomains: '1234',
 | 
				
			||||||
 | 
					                ppi: highResData.ppi,
 | 
				
			||||||
 | 
					                tileSize: highResData.tileSize,
 | 
				
			||||||
 | 
					                zoomOffset: highResData.zoomOffset,
 | 
				
			||||||
 | 
					                minZoom: highResData.minZoom,
 | 
				
			||||||
 | 
					                maxZoom: highResData.maxZoom
 | 
				
			||||||
 | 
					            }).addTo(LMapWrapper.map);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.markers = L.markerClusterGroup({
 | 
					            LMapWrapper.map.fitBounds(L.latLngBounds({ lat: mapBounds.south, lng: mapBounds.west }, { lat: mapBounds.north, lng: mapBounds.east }));
 | 
				
			||||||
        maxClusterRadius: 50
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (var placeId in places) {
 | 
					            LMapWrapper.loadMarkers(places);
 | 
				
			||||||
        if (!places.hasOwnProperty(placeId)) {
 | 
					        },
 | 
				
			||||||
            continue;
 | 
					
 | 
				
			||||||
 | 
					        loadMarkers: function (places) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            LMapWrapper.markers = L.markerClusterGroup({
 | 
				
			||||||
 | 
					                maxClusterRadius: 50
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            for (var placeId in places) {
 | 
				
			||||||
 | 
					                if (!places.hasOwnProperty(placeId)) {
 | 
				
			||||||
 | 
					                    continue;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var place = places[placeId];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var marker = L.marker({ lat: place.lat, lng: place.lng }, {
 | 
				
			||||||
 | 
					                    icon: place.noPano ? LMapWrapper.iconCollection.iconRed : LMapWrapper.iconCollection.iconGreen,
 | 
				
			||||||
 | 
					                    zIndexOffset: 1000
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					                    .addTo(LMapWrapper.markers)
 | 
				
			||||||
 | 
					                    .on('click', function () {
 | 
				
			||||||
 | 
					                        MapEditor.select(this);
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                marker.placeId = place.id;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            LMapWrapper.map.addLayer(LMapWrapper.markers);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // TODO: check whether marker is already existing on the map for the coordinates
 | 
				
			||||||
 | 
					        //       or alternatively block saving for matching coordinates
 | 
				
			||||||
 | 
					        placeMarker: function (latLng) {
 | 
				
			||||||
 | 
					            var marker = L.marker(latLng, {
 | 
				
			||||||
 | 
					                icon: LMapWrapper.iconCollection.iconBlue,
 | 
				
			||||||
 | 
					                zIndexOffset: 2000
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					                .addTo(LMapWrapper.map)
 | 
				
			||||||
 | 
					                .on('click', function () {
 | 
				
			||||||
 | 
					                    MapEditor.select(this);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            MapEditor.select(marker);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        panTo: function (latLng) {
 | 
				
			||||||
 | 
					            LMapWrapper.map.panTo(latLng);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        invalidateSize: function (invalid) {
 | 
				
			||||||
 | 
					            LMapWrapper.map.invalidateSize(invalid);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        changeMarkerIcon: function (marker, icon) {
 | 
				
			||||||
 | 
					            LMapWrapper.markers.removeLayer(marker);
 | 
				
			||||||
 | 
					            LMapWrapper.map.addLayer(marker);
 | 
				
			||||||
 | 
					            marker.setIcon(icon);
 | 
				
			||||||
 | 
					            marker.setZIndexOffset(2000);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        removeMarker: function (marker) {
 | 
				
			||||||
 | 
					            LMapWrapper.map.removeLayer(marker);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var place = places[placeId];
 | 
					    var GMapWrapper = {
 | 
				
			||||||
 | 
					        map: null,
 | 
				
			||||||
 | 
					        markers: null,
 | 
				
			||||||
 | 
					        iconCollection: {
 | 
				
			||||||
 | 
					            iconGreen: {
 | 
				
			||||||
 | 
					                url: STATIC_ROOT + '/img/markers/marker-green.svg?rev' + REVISION,
 | 
				
			||||||
 | 
					                scaledSize: new google.maps.Size(24, 32), // scaled size
 | 
				
			||||||
 | 
					                origin: new google.maps.Point(0, 0), // origin
 | 
				
			||||||
 | 
					                anchor: new google.maps.Point(12, 32) // anchor
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            iconRed: {
 | 
				
			||||||
 | 
					                url: STATIC_ROOT + '/img/markers/marker-red.svg?rev' + REVISION,
 | 
				
			||||||
 | 
					                scaledSize: new google.maps.Size(24, 32), // scaled size
 | 
				
			||||||
 | 
					                origin: new google.maps.Point(0, 0), // origin
 | 
				
			||||||
 | 
					                anchor: new google.maps.Point(12, 32) // anchor
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            iconBlue: {
 | 
				
			||||||
 | 
					                url: STATIC_ROOT + '/img/markers/marker-blue.svg?rev' + REVISION,
 | 
				
			||||||
 | 
					                scaledSize: new google.maps.Size(24, 32), // scaled size
 | 
				
			||||||
 | 
					                origin: new google.maps.Point(0, 0), // origin
 | 
				
			||||||
 | 
					                anchor: new google.maps.Point(12, 32) // anchor
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var marker = L.marker({ lat: place.lat, lng: place.lng }, {
 | 
					        init: function (divId, places) {
 | 
				
			||||||
            icon: place.noPano ? IconCollection.iconRed : IconCollection.iconGreen,
 | 
					            GMapWrapper.map = new google.maps.Map(document.getElementById(divId), {
 | 
				
			||||||
            zIndexOffset: 1000
 | 
					                center: { lat: 48.2207779, lng: 16.3098489 },
 | 
				
			||||||
        })
 | 
					                zoom: 2,
 | 
				
			||||||
            .addTo(MapEditor.markers)
 | 
					                fullscreenControl: false,
 | 
				
			||||||
            .on('click', function () {
 | 
					                zoomControl: true,
 | 
				
			||||||
 | 
					                zoomControlOptions: {
 | 
				
			||||||
 | 
					                    position: google.maps.ControlPosition.LEFT_BOTTOM
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                streetViewControl: true,
 | 
				
			||||||
 | 
					                streetViewControlOptions: {
 | 
				
			||||||
 | 
					                    position: google.maps.ControlPosition.LEFT_BOTTOM
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                draggableCursor: 'crosshair'
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            GMapWrapper.map.addListener('click', function (mapsMouseEvent) {
 | 
				
			||||||
 | 
					                GMapWrapper.placeMarker({
 | 
				
			||||||
 | 
					                    lat: mapsMouseEvent.latLng.lat(),
 | 
				
			||||||
 | 
					                    lng: mapsMouseEvent.latLng.lng()
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            GMapWrapper.loadMarkers(places);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        loadMarkers: function (places) {
 | 
				
			||||||
| 
						
							
	
	
	
	
	
	
	
	 
					
					bence marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				 | 
				|||||||
 | 
					            GMapWrapper.markers = new MarkerClusterer(GMapWrapper.map, [], { 
 | 
				
			||||||
 | 
					                imagePath: STATIC_ROOT + '/img/markers/m',
 | 
				
			||||||
 | 
					                imageExtension: 'png?rev' + REVISION
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            for (var placeId in places) {
 | 
				
			||||||
 | 
					                if (!places.hasOwnProperty(placeId)) {
 | 
				
			||||||
 | 
					                    continue;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var place = places[placeId];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var marker = new google.maps.Marker({
 | 
				
			||||||
 | 
					                    position: {
 | 
				
			||||||
 | 
					                        lat: place.lat,
 | 
				
			||||||
 | 
					                        lng: place.lng
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    icon: place.noPano ? GMapWrapper.iconCollection.iconRed : GMapWrapper.iconCollection.iconGreen
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                marker.getLatLng = function () { return { lat: this.getPosition().lat(), lng: this.getPosition().lng() } };
 | 
				
			||||||
 | 
					                marker.setLatLng = function (coords) { this.setPosition(coords) };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                marker.addListener('click', function () {
 | 
				
			||||||
 | 
					                    MapEditor.select(this);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                marker.placeId = place.id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                GMapWrapper.markers.addMarker(marker);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // TODO: check whether marker is already existing on the map for the coordinates
 | 
				
			||||||
 | 
					        //       or alternatively block saving for matching coordinates
 | 
				
			||||||
 | 
					        placeMarker: function (latLng) {
 | 
				
			||||||
 | 
					            var marker = new google.maps.Marker({
 | 
				
			||||||
 | 
					                map: GMapWrapper.map,
 | 
				
			||||||
 | 
					                position: latLng,
 | 
				
			||||||
 | 
					                icon: GMapWrapper.iconCollection.iconBlue,
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            marker.getLatLng = function () { return { lat: this.getPosition().lat(), lng: this.getPosition().lng() } };
 | 
				
			||||||
 | 
					            marker.setLatLng = function (coords) { this.setPosition(coords) };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            marker.addListener('click', function () {
 | 
				
			||||||
                MapEditor.select(this);
 | 
					                MapEditor.select(this);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        marker.placeId = place.id;
 | 
					            GMapWrapper.markers.addMarker(marker);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.map.addLayer(MapEditor.markers);
 | 
					            MapEditor.select(marker);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        panTo: function (latLng) {
 | 
				
			||||||
 | 
					            GMapWrapper.map.panTo(latLng);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        invalidateSize: function (invalid) {
 | 
				
			||||||
 | 
					            if (invalid) {
 | 
				
			||||||
 | 
					                google.maps.event.trigger(GMapWrapper.map, 'resize');
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        changeMarkerIcon: function (marker, icon) {
 | 
				
			||||||
 | 
					            marker.setIcon(icon);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        removeMarker: function (marker) {
 | 
				
			||||||
 | 
					            GMapWrapper.markers.removeMarker(marker);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // MapEditor.map = LMapWrapper;
 | 
				
			||||||
 | 
					    MapEditor.map = GMapWrapper;
 | 
				
			||||||
 | 
					    MapEditor.map.init('map', places);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MapEditor.panorama = new google.maps.StreetViewPanorama(document.getElementById('panorama'), {
 | 
					    MapEditor.panorama = new google.maps.StreetViewPanorama(document.getElementById('panorama'), {
 | 
				
			||||||
        // switch off fullscreenControl because positioning doesn't work
 | 
					        // switch off fullscreenControl because positioning doesn't work
 | 
				
			||||||
@ -478,7 +632,7 @@
 | 
				
			|||||||
        var coordinates = Util.extractCoordinates(coordinatesStr);
 | 
					        var coordinates = Util.extractCoordinates(coordinatesStr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (coordinates.valid) {
 | 
					        if (coordinates.valid) {
 | 
				
			||||||
            MapEditor.placeMarker(coordinates.latlng);
 | 
					            MapEditor.map.placeMarker(coordinates.latlng);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -491,7 +645,7 @@
 | 
				
			|||||||
            jumpButton.disabled = false;
 | 
					            jumpButton.disabled = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (e.key == 'Enter') {
 | 
					            if (e.key == 'Enter') {
 | 
				
			||||||
                MapEditor.placeMarker(coordinates.latlng);
 | 
					                MapEditor.map.placeMarker(coordinates.latlng);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else {
 | 
					        else {
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@
 | 
				
			|||||||
@js(node_modules/leaflet/dist/leaflet.js)
 | 
					@js(node_modules/leaflet/dist/leaflet.js)
 | 
				
			||||||
@js(node_modules/leaflet.markercluster/dist/leaflet.markercluster.js)
 | 
					@js(node_modules/leaflet.markercluster/dist/leaflet.markercluster.js)
 | 
				
			||||||
@js(https://maps.googleapis.com/maps/api/js?key=<?= $_ENV['GOOGLE_MAPS_JS_API_KEY'] ?>)
 | 
					@js(https://maps.googleapis.com/maps/api/js?key=<?= $_ENV['GOOGLE_MAPS_JS_API_KEY'] ?>)
 | 
				
			||||||
 | 
					@js(https://unpkg.com/@googlemaps/markerclustererplus/dist/index.min.js)
 | 
				
			||||||
@js(js/map_editor.js)
 | 
					@js(js/map_editor.js)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@extends(templates/layout_full)
 | 
					@extends(templates/layout_full)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	
I would remove this and add a permanent street view cover layer to the map so the available locations will be always shown. (This is the same how the competitor does.)
Reference: https://developers.google.com/maps/documentation/javascript/reference/street-view#StreetViewCoverageLayer
Example:
I personally consider the permanent street view cover layer disturbing. Can we just add another switch to toggle it?
For me it's OK, then it can be done later.