ย้ายข้อมูลไปยัง Solar API บน Google Maps Platform

วิธีการย้ายจาก Google Earth Engine Solar API ไปยัง Google Maps Platform API พลังงานแสงอาทิตย์:

  1. เปิดใช้ Solar API ของ Google Maps Platform ในโปรเจ็กต์ระบบคลาวด์ของคุณ
  2. สร้างคีย์ใหม่และจำกัดเฉพาะ GMP Solar API
  3. อัปเดตโค้ดโดยใช้ ทีละขั้นตอน วิธีการด้านล่าง

การเปรียบเทียบข้อมูลคู่กัน

Solar API (ใหม่) บ้านที่ปกคลุมด้วยดวงอาทิตย์ Earth Engine Solar API (เลิกใช้งานแล้ว) ไอคอน EE
สถานะการเปิดตัว เปิดตัวแล้ว การนำร่อง (เลิกใช้งานแล้ว)
การเข้าถึง
กลไก บัญชี Google Cloud ผ่าน Cloud Console โดยการเปิดใช้ Solar API และจัดการ API ผ่านส่วน Google Maps Platform บัญชี Google Cloud ผ่าน Cloud Console โดยการเปิดใช้ Earth Engine Solar API
ใคร สาธารณะ มีการควบคุมการเข้าถึง
ระดับ จัดสรรด้วยตนเอง การเข้าถึงด้วยตนเองสำหรับโปรเจ็กต์ระบบคลาวด์
การตรวจสอบสิทธิ์ คีย์ API และ OAuth คีย์ API
ราคา
กลยุทธ์ Pay-as-you-go 100% ส่วนลด
การแบ่งระดับ ต่อคำค้นหา 1, 000 รายการ โดยมีราคาลดลงตามปริมาณ
ปลายทาง ราคาต่อปลายทางแตกต่างกัน
Cloud
การตรวจสอบ Cloud Monitoring ใต้ "Google Maps Platform" Cloud Monitoring ในส่วน "API และบริการ"
โควต้า QPM (คำค้นหาต่อนาที) และ QPH (คำค้นหาต่อชั่วโมง) รายปี
การบันทึก Cloud Logging (ไม่บังคับ) Cloud Logging (ไม่บังคับ)
การเรียกเก็บเงิน บัญชีสำหรับการเรียกเก็บเงินใน Cloud -
การสนับสนุน การรองรับแพลตฟอร์ม Google Maps เต็มรูปแบบพร้อมด้วย SLO/SLA จำกัดทางอีเมล
API
ชื่อโฮสต์ https://solar.googleapis.com/v1/ (ส่วนที่เหลือ) https://earthenginesolar.googleapis.com/v1/ (ส่วนที่เหลือ)
เมธอด
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
คำตอบ ไม่มีการเปลี่ยนแปลงเมื่อเทียบกับการนำร่อง
solarInfo รัศมี ≤ 100 ม. รัศมี ≤ 100 ม.
ความครอบคลุม
พื้นที่ ทั่วโลก ทั่วโลก
คุณภาพของข้อมูล HIGH/MEDIUM HIGH/MEDIUM
ประเภทอาคาร สิ่งปลูกสร้างใดๆ ที่จับคู่กับที่อยู่ และ ภายในความครอบคลุมภาพของ Solar API สิ่งปลูกสร้างใดๆ ที่จับคู่กับที่อยู่ และ ภายในความครอบคลุมภาพของ Solar API
ข้อกำหนดในการให้บริการ
TOS ข้อกำหนดของ Google Maps Platform ข้อกำหนดของ Google Earth Engine

คำแนะนำทีละขั้นตอน

ตั้งค่าโปรเจ็กต์ Google Cloud

ดูวิธีการที่นี่: ตั้งค่า Google Cloud โปรเจ็กต์

เฉพาะบทบาทบางประเภทเท่านั้นที่ทำได้ สร้างโปรเจ็กต์ที่อยู่ในระบบคลาวด์ หากสร้างโปรเจ็กต์ไม่ได้ โปรดติดต่อ ผู้ดูแลระบบขององค์กร

นอกจากนี้ คุณยังใช้โปรเจ็กต์ที่อยู่ในระบบคลาวด์ได้ด้วย หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่เริ่มต้นใช้งาน ด้วย Google Maps Platform

ตั้งค่าบัญชีสำหรับการเรียกเก็บเงิน

ดูวิธีการที่นี่: วิธีจัดการการเรียกเก็บเงิน บัญชี

คุณใช้โปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่มีอยู่กับบัญชีสำหรับการเรียกเก็บเงินที่มีอยู่ได้

รับคีย์ API หรือใช้โทเค็น OAuth

หลังจากตั้งค่าโปรเจ็กต์ Google Cloud แล้ว คุณต้องสร้างและรักษาความปลอดภัยให้ API คีย์ในการใช้ Solar API ตามที่อธิบายไว้ในใช้ API คีย์ หรือจะสร้างโทเค็น OAuth ก็ได้ ตามที่อธิบายไว้ในใช้ OAuth

ใช้ Solar API

  • ส่งคำขอ GET ไปยังปลายทางใหม่ : https://solar.googleapis.com
  • โปรดทราบว่ามีการเปลี่ยนชื่อเมธอดของ API บางส่วน ดังนี้
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

การทดลองใช้ด่วน: ใช้คีย์ API ที่บันทึกไว้จากขั้นตอนก่อนหน้าและแทนที่ YOUR_API_KEY ในตัวอย่างการค้นหาด้านล่าง ก่อนที่จะโหลด URL ใน เบราว์เซอร์:

https://solar.googleapis.com/v1/dataLayers:get?location.latitude=37.2746464&location.longitude=-121.7530949&radius_meters=10&key=YOUR_API_KEY

คำตอบสำหรับเวอร์ชันตัวอย่างรุ่นแรก

สำหรับเวอร์ชันตัวอย่างเดิมในวันที่ 9 พฤษภาคม 2023 URL ในการตอบกลับจะอยู่ใน แบบฟอร์ม:

https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels

ข้อมูลโค้ดต่อไปนี้เป็นตัวอย่างคำตอบ

{
  "imageryDate": {
    "year": 2015,
    "month": 8,
    "day": 8
  },
  "imageryProcessedDate": {
    "year": 2021,
    "month": 2,
    "day": 15
  },
  "dsmUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/fbde33e9cd16d5fd10d19a19dc580bc1-8614f599c5c264553f821cd034d5cf32:getPixels",
  "rgbUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/91ed3551f2d0abee20af35e07bd0c927-c96c59e80cf1fc1dc86cf59fc8ec86ba:getPixels",
  "maskUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/e4051553dba6870c03d855ae82c30b7e-7cc8ae6ce7c73f219e3c1924e5c17fc6:getPixels",
  "annualFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/9b0f87f49d778a65c9e27ff936e6dbba-b90be2fe80d25abd4c9e8c4dc809f763:getPixels",
  "monthlyFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/90e7cca77402f14809e349937f0a0be8-94fafeb4ef42d72f1b3c0652a1cb5518:getPixels",
  "hourlyShadeUrls": [
    "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/dcd276e4782aef4ff1b230b781736d37-e193b231ce57a03449afc3e21cf6783b:getPixels",
    ...
  ]
  }

หากต้องการส่งคำขอไปยัง URL ในการตอบกลับ ให้ใส่ URL แบบเต็มในช่อง อีกครั้ง

ข้อกำหนดทั้งหมดของคำขอนี้และการตอบกลับอยู่ในข้อมูลอ้างอิง เอกสารประกอบ

เขียนแอปเพื่อรองรับรูปแบบการตอบกลับทั้ง 2 รูปแบบ

ตอนนี้คุณสามารถเขียนแอปที่จัดการทั้งเวอร์ชันตัวอย่างเดิมและเวอร์ชันปัจจุบันได้แล้ว รูปแบบการตอบสนอง

ความแตกต่างที่สำคัญระหว่างคำตอบทั้ง 2 แบบนอกเหนือจากตัว URL จริง คุณต้องส่งคีย์ API ไปยังคำขอที่เข้าถึง URL จาก รูปแบบการตอบกลับใหม่ หากคุณไม่ใส่คีย์ API คำขอจะล้มเหลว

ตัวอย่างเช่น คุณอาจเพิ่มโค้ดต่อไปนี้ลงในแอปเพื่อตรวจสอบ URL และ จัดการแต่ละเวอร์ชันอย่างถูกต้อง:

JavaScript

/**
* Function to examine a response URL and to append the API key to the
* URL if it is in the new format.
*/
function prepareGetGeoTiffUrl(geoTiffUrl, apiKey) {
  if (geoTiffUrl.match("solar.googleapis.com")) {
    let url = new URL(geoTiffUrl);
    url.searchParams.set('apiKey', apiKey);
    return url.toString();
  }
  return geoTiffUrl;
}

Python

# Functions to examine a response URL and to append the API key to the
# URL if it is in the new format.

def add_api_key_to_url(base_url: str, api_key: str) -> str:
  '''Formats URL that currently lacks an API key to use the one provided.'''
  return base_url + "&key=" +api_key;

def prepare_geo_tiff_url(base_url: str, api_key: str) -> str:
  '''Prepares URL from GetDataLayers depending on API being called.
    If the geoTIFF url from GetDataLayers is for the solar API GetGeoTiff
      endpoint, append the API key. Otherwise return the URL as is.
  '''
  if re.search("solar.googleapis.com", geo_tiff_url):
    return add_api_key_to_url(geo_tiff_url, api_key)
  return geo_tiff_url

Java

/ **Adds API key to a URL. /*
private String addApiKeyToUrl(String geoTiffUrl, String apiKey) {
  return geoTiffUrl + "&key=" + apiKey;
}

/
** *Function to examine a response URL and to append the API key to the
 *URL if it is in the new format.
/*
private String prepareGetGeoTiffUrl(String geoTiffUrl, String apiKey) {
  Pattern pattern = Pattern.compile("solar.googleapis.com");
  Matcher matcher = pattern.matcher(geoTiffUrl);
  if (matcher.find()) {
    return addApiKeyToUrl(geoTiffUrl, apiKey);
  } else {
    return geoTiffUrl;
  }
}

ติดตามดู

ระดับโปรเจ็กต์ ระดับบัญชีสำหรับการเรียกเก็บเงิน

Cloud Monitoring การเรียกเก็บเงินใน Cloud

เคล็ดลับน่ารู้

  • โควต้า: ปริมาณการใช้อินเทอร์เน็ตที่ปรับขนาดได้ (แทนที่จะเป็นรายปีซึ่งจะหายไป)
    • ปัจจุบัน โควต้า ซึ่งจะเปลี่ยนเป็น QPM
    • แนวทางปฏิบัติแนะนำ: กำหนดโควต้าฝั่งไคลเอ็นต์และส่งการแจ้งเตือน
  • การกำหนดราคา:
    • Pay-as-you-go
    • 404 NOT_FOUND คำตอบเมื่อตำแหน่งไม่อยู่ในช่วงที่ครอบคลุมจะ ไม่มีการเรียกเก็บเงินแต่จะนับรวมในโควต้า
  • ข้อกำหนดการใช้งานทั่วไป: ข้อกำหนดในการให้บริการของ Google Maps Platform