code: protected void parseOptions(String configuration) {
  
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(configuration)) {
              return;
          }
          if (!configuration.startsWith("{")) {
              // add curly braces if not present
              configuration = "{" + configuration + "}";
          }
          try {
              JSONObject json = new JSONObject(configuration);
              if (json.has(OPTION_LAT)) {
                  setLat((float)json.getDouble(OPTION_LAT));
              }
              if (json.has(OPTION_LNG)) {
                  setLng((float)json.getDouble(OPTION_LNG));
              }
              if (json.has(OPTION_ZOOM)) {
                  setZoom(json.getInt(OPTION_ZOOM));
              }
              if (json.has(OPTION_WIDTH)) {
                  setWidth(json.getInt(OPTION_WIDTH));
              }
              if (json.has(OPTION_HEIGHT)) {
                  setHeight(json.getInt(OPTION_HEIGHT));
              }
              if (json.has(OPTION_TYPE)) {
                  setType(MapType.valueOf(json.getString(OPTION_TYPE)));
              }
              if (json.has(OPTION_MODE)) {
                  // do not use value of, as the client side string is not equal to the enumeration mode name
                  setMode(MapMode.parseMode(json.getString(OPTION_MODE)));
              }
          } catch (JSONException e) {
              // something went wrong
              if (LOG.isErrorEnabled()) {
                  LOG.error(e.getLocalizedMessage(), e);
              }
              return;
          }
      }
docs: Parses the given configuration String.<p>
  
  @param configuration the configuration String to parse