How to receive gps location by sending sms to arduino?

I redo it but still cannot receive sms.

#include <SoftwareSerial.h>
#include <TinyGPS++.h>
TinyGPSPlus gps;
 
SoftwareSerial ss(10, 11);
SoftwareSerial SIM(2, 3);
 
char text[180];
char latitude[12];
char longitude[12];
 
String phone = "+xxxxxxxxx";
char inchar;
boolean gpsUpdated = false;
boolean smsRequest = false;
 
void setup()
{
  Serial.begin(9600);
 
  SIM.begin(9600);
  delay(1000);
  ss.begin(9600);
  delay(1000);
}
 
void loop()
{
 
  gpsUpdate();
 
  readSMS();
 
  sendSMS();
 
}
 
void gpsUpdate()
{
  ss.listen();
  delay(500);  

     while (ss.available())
  
    (gps.encode(ss.read()));
    
    if (gps.location.isUpdated())
    {
      strcpy(text, "comgooglemaps://?q=");
        dtostrf(gps.location.lat(), 1, 6, latitude);
        strcat(text,latitude);
        strcat(text,",");
        dtostrf(gps.location.lng(), 1, 6, longitude);
        strcat(text,longitude);
        Serial.println(text);
        delay(100);
        gpsUpdated = true;
    }
}

void readSMS()
{
   SIM.listen();  
 
  if (SIM.available() >0) {
    delay(50);
   inchar = SIM.read();
   }
      if (inchar == 'Location')
       {
        smsRequest = true;
    
       }
     
     
}
 
void sendSMS()
{
  if ((gpsUpdated == true) && (smsRequest == true)) 
  {
  Serial.println("sending SMS");
  SIM.listen();  
  delay(300);
  SIM.print("AT+CMGF=1\r\n");                                                      
  delay(100);
  SIM.println("AT+CMGS=\""+phone+"\"\r\n");                                    
  delay(100);
  SIM.println(text);        
  delay(100);
  SIM.println((char)26);                      
  delay(100);
  SIM.println();
  delay(100);
  gpsUpdated = false;
  smsRequest = false;
  }
}