diff --git a/R/constructNWISURL.r b/R/constructNWISURL.r index 7b3e72279dbd672e99487e5f3d207c67c9150b95..8e7c99bb6af82b2dc8e0e4fd9fc75f65800f6748 100644 --- a/R/constructNWISURL.r +++ b/R/constructNWISURL.r @@ -41,11 +41,14 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st dateReturn <- checkStartEndDate(startDate, endDate, interactive=interactive) startDate <- dateReturn[1] endDate <- dateReturn[2] + multipleSites <- length(siteNumber) > 1 + multiplePcodes <- length(parameterCd)>1 + siteNumber <- paste(siteNumber, collapse=",") switch(service, qw = { - if(length(siteNumber) > 1){ - siteNumber <- paste(siteNumber, collapse=",") + if(multipleSites){ + siteNumber <- paste("multiple_site_no",siteNumber,sep="=") searchCriteria <- "multiple_site_no" } else { @@ -54,7 +57,7 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st searchCriteria <- "search_site_no" } - if(length(parameterCd)>1){ + if(multiplePcodes){ pCodes <- paste(parameterCd, collapse=",") pCodes <- paste('multiple_parameter_cds', pCodes, sep="=") pCodes <- paste(pCodes, "param_cd_operator=OR",sep="&") @@ -95,10 +98,11 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st suppressWarnings(pCodeLogic <- all(!is.na(as.numeric(parameterCd)))) } else { pCodeLogic <- FALSE + parameterCd <- gsub(",","%2C",parameterCd) parameterCd <- URLencode(parameterCd) } - if(length(parameterCd)>1){ + if(multiplePcodes){ parameterCd <- paste(parameterCd, collapse=";") } @@ -123,7 +127,7 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st { # this will be either dv or uv # Check for 5 digit parameter code: - if(length(parameterCd)>1){ + if(multiplePcodes){ parameterCd <- paste(parameterCd, collapse=",") } else { parameterCd <- formatCheckParameterCd(parameterCd, interactive=interactive) @@ -167,6 +171,6 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st } ) - + return(url) }