【问题标题】:How can i add polygon on google maps IOS?如何在谷歌地图 IOS 上添加多边形?
【发布时间】:2015-06-09 07:45:57
【问题描述】:

我想在谷歌地图视图上添加多边形,但出现此错误

no visible @ interface GMSMapView declares the selector add overlay

代码:

CLLocationCoordinate2D commuterLotCoords[5]={
        CLLocationCoordinate2DMake(39.048019,-76.850535),
        CLLocationCoordinate2DMake(39.048027,-76.850234),
        CLLocationCoordinate2DMake(39.047407,-76.850181),
        CLLocationCoordinate2DMake(39.047407,-76.8505),
        CLLocationCoordinate2DMake(39.048019,-76.850535)
    };

MKPolygon *commuterPoly1 = [MKPolygon polygonWithCoordinates:commuterLotCoords count:5];
[mapView addOverlay:commuterPoly1];

【问题讨论】:

  • addOverlay方法是苹果的MKMapView,如果你想在你的谷歌MapView中添加折线,你必须先声明一个GMSMutablePath,然后将路径添加到@ 987654328@,然后将其添加到您的MapView,您可以查看this documentation了解更多详情。

标签: ios google-maps polygon


【解决方案1】:

对 Dheeraj 的回答略有改动:又名更新为 Swift 4

func tempPolygons(){
    let polygon = GMSPolygon()
    let rect = GMSMutablePath()
    rect.add(CLLocationCoordinate2DMake(18.546160, 73.903992))
    rect.add(CLLocationCoordinate2DMake(18.546099, 73.904817))
    rect.add(CLLocationCoordinate2DMake(18.545922, 73.905643))
    rect.add(CLLocationCoordinate2DMake(18.545854, 73.905973))
    rect.add(CLLocationCoordinate2DMake(18.545105, 73.905915))
    rect.add(CLLocationCoordinate2DMake(18.543153, 73.904867))
    rect.add(CLLocationCoordinate2DMake(18.543016, 73.903805))
    rect.add(CLLocationCoordinate2DMake(18.545473, 73.903863))
    rect.add(CLLocationCoordinate2DMake(18.546140, 73.904013))

    polygon.path = rect
    polygon.fillColor = #colorLiteral(red: 0.9474907517, green: 0.2350950539, blue: 0.1785519123, alpha: 0.24)
    //polygon.strokeColor = UIColor.black
    polygon.strokeWidth = 0
    polygon.map = mapView
}

【讨论】:

    【解决方案2】:
    GMSPolygon * polygon = [[GMSPolygon alloc] init];
    GMSMutablePath * rect = [GMSMutablePath path];
    [rect addCoordinate:CLLocationCoordinate2DMake(39.048019,-76.850535)];
    [rect addCoordinate:CLLocationCoordinate2DMake(39.048027,-76.850234)];
    [rect addCoordinate:CLLocationCoordinate2DMake(39.047407,-76.850181)];
    [rect addCoordinate:CLLocationCoordinate2DMake(39.047407,-76.8505)];
    [rect addCoordinate:CLLocationCoordinate2DMake(39.048019,-76.850535)];
    polygon.path=rect;
    polygon.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.2f];
    polygon.strokeColor = [UIColor blackColor];
    polygon.strokeWidth = 2;
    polygon.map = mapView;
    

    【讨论】:

      【解决方案3】:

      Swift 2.2:

       let polygon = GMSPolygon()
              let rect = GMSMutablePath()
              rect.addCoordinate(CLLocationCoordinate2DMake(22.7196, 75.8577))
              rect.addCoordinate(CLLocationCoordinate2DMake(22.7396, 75.8577))
              rect.addCoordinate(CLLocationCoordinate2DMake(22.7196, 75.1577))
              rect.addCoordinate(CLLocationCoordinate2DMake(22.9196, 76.8577))
              rect.addCoordinate(CLLocationCoordinate2DMake(22.9196, 75.8577))
              rect.addCoordinate(CLLocationCoordinate2DMake(23.7196, 77.8577))
      
              polygon.path = rect
              polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.2)
              polygon.strokeColor = UIColor.blackColor()
              polygon.strokeWidth = 2
              polygon.map = mapView
      

      【讨论】:

        【解决方案4】:

        要在 GoogleMap 上绘制多边形,您应该使用 GMSPolygon 类。 绘制多边形的步骤:

        1. 创建 GMSPolygon
        2. 使用坐标创建 GMSPath。
        3. 自定义 GMSPolygon(颜色、宽度..)
        4. 将地图视图分配给 Polygon.Map 属性

        在苹果地图上绘图

        1. 使用 MKPolygon
        2. 加载坐标
        3. 使用地图视图调用 Addoverlay/Overlays 并给出路径
        4. 为叠加自定义渲染器

        相同的步骤适用于折线。

        【讨论】:

          猜你喜欢
          • 2019-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-12
          • 2012-07-01
          • 1970-01-01
          相关资源
          最近更新 更多