Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package net.sourceforge.jsdialect.gmap;
 
 import static net.sourceforge.jsdialect.util.JsDialectUtil.empty;
public class GMapCommand {
    private Arguments arguments;
    private Element element;
    private String attributeName;
    public GMapCommand(Arguments argumentsElement elementString attributeName) {
        this. = arguments;
        this. = element;
        this. = attributeName;
    }
    protected void execute() {
        String[] attributeValues = .getAttributeValue().split(",");
        if (attributeValues.length < 2 || empty(attributeValues[0]) || empty(attributeValues[1])) {
            throw new TemplateProcessingException("Arguments not valid");
        }
        String latitude = JsDialectUtil.expressionValue(attributeValues[0].trim()).toString();
        String longitude = JsDialectUtil.expressionValue(attributeValues[1].trim()).toString();
        String elementId = DomUtils.getOrCreateId(.getDocument(), "map");
        StringBuilder jsCode = new StringBuilder();
        jsCode.append(load(latitudelongitudeelementId));
        jsCode.append("google.maps.event.addDomListener(window, 'load', initialize); \n");
        JavaScriptComposer.addOnDocumentReady(.getDocument(), jsCode.toString());
        // Housekeeping
    }
    private String load(String latitudeString longitudeString mapId) {
        StringBuilder load = new StringBuilder();
        load.append("function initialize() { \n");
        load.append(setGlobalVariables(latitudelongitude));
        load.append(createMapOptions());
        load.append(hidePointsOfInterest());
        load.append(createMap(mapId));
        load.append(addMarker());
        load.append("}; \n");
        return load.toString();
    }
    private String setGlobalVariables(String latitudeString longitude) {
        StringBuilder variables = new StringBuilder();
        variables.append("   var latitude = ").append(latitude).append(";\n");
        variables.append("   var longitude = ").append(longitude).append(";\n");
        variables.append("   var map;\n");
        return variables.toString();
    }
    private String createMap(String mapId) {
        StringBuilder map = new StringBuilder();
        map.append("    map = new google.maps.Map(document.getElementById('").append(mapId).append("'),mapOptions); \n");
        map.append("    map.mapTypes.set(MY_MAPTYPE_ID, customMapType); \n");
        return map.toString();
    }
    private String addMarker() {
        StringBuilder marker = new StringBuilder();
        marker.append("    new google.maps.Marker({ \n");
        marker.append("        position: map.getCenter(), \n");
        marker.append("        map: map \n");
        marker.append("    }); \n");
        return marker.toString();
    }
    private String createMapOptions() {
        StringBuilder options = new StringBuilder();
        options.append("    var MY_MAPTYPE_ID = 'hidden_poi_style'; \n");
        options.append("    var mapOptions = { \n");
        options.append("        mapTypeId: google.maps.MapTypeId.ROADMAP, \n");
        options.append("        zoom: 16, \n");
        options.append("        zoomControl: true, \n");
        options.append("        zoomControlOptions: {style: google.maps.ZoomControlStyle.LARGE}, \n");
        options.append("        center: new google.maps.LatLng(latitude,longitude), \n");
        options.append("        mapTypeControlOptions: {mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]},\n");
        options.append("        mapTypeId: MY_MAPTYPE_ID \n");
        options.append("    }; \n");
        return options.toString();
    }
    private String hidePointsOfInterest() {
        StringBuilder hidePoi = new StringBuilder();
        hidePoi.append("    var featureOpts = [{featureType: 'poi', stylers: [{ visibility: 'off' }]}]; \n");
        hidePoi.append("    var customMapType = new google.maps.StyledMapType(featureOpts, {name: 'Simple'}); \n");
        return hidePoi.toString();
    }
New to GrepCode? Check out our FAQ X