在为Proximity CampaignCriterion创建geoPoint时,latitudeInMicroDegrees和longitudeInMicroDegrees的预期格式是什么?

时间:2016-05-02 22:30:16

标签: ruby google-adwords

例如,当我有一个十进制度为45.3911638的纬度并将其转换为微度为45391163时,我看到以下错误:

  

[CriterionError.INVALID_LATITUDE @   操作[0] .operand.criterion.geoPoint.latitudeInMicroDegrees]

这是我的代码:

    {
      :operator => 'ADD',
      :operand => {
        :campaign_id => self[:campaign_id],
        :criterion => {
          :xsi_type => 'Proximity',
          :geo_point => {
            :latitude_in_micro_degrees => (shop[:lat] * 1_000_000).to_i,
            :longitude_in_micro_degrees => (shop[:lng] * 1_000_000).to_i
          },
          :radius_distance_units => RADIUS_DISTANCE_UNITS,
          :radius_in_units => radius
        }
      }
    }
  

更新:我收到错误是因为我提交了latitude_in_micro_degrees两次;一次使用lat值和a   第二次使用lng值。原来的问题,是   “预计具有什么确切的格式latitudeInMicroDegrees和   在为邻近度创建geoPoint时,longitudeInMicroDegrees   CampaignCriterion?“仍然站立并且没有记录AFAIK,但是   代码(如上所述)确实有效,我现在可以回答我的问题   自己的问题。

1 个答案:

答案 0 :(得分:1)

Google的文档仅说明:

  

<强>的xsd:INT

     

纬度的微度。

     

此字段是必填字段,不应为 null

但是,事实证明,一个微程度是一度的百万分之一。因此,假设您的纬度和经度值是十进制度数(https://en.wikipedia.org/wiki/Decimal_degrees),则乘以1,000,000并舍入到最接近的整数值。重要的是有7位小数的​​精度,所以你可以舍入到6。