perspectivain/yii2-geo

生成不同格式的地理注解的接口

dev-master 2015-02-16 14:09 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:30 UTC


README

生成不同格式的地理注解的接口。

目前支持 KML 和 geoJSON 格式以及 MultiPolygon、Point 和 Polygon 类型。

More about geoJSON: http://geojson.org/geojson-spec.html

More about KML: https://developers.google.com/kml/documentation/

用法

创建一个用于响应地理格式的动作

use perspectivain\geo\kml\Kml;
use perspectivain\geo\kml\models\Polygon;
use perspectivain\geo\kml\models\Point;

public function actionCityDistricts()
{
  $document = new Kml; //change to "new Geojson" to generate this file 
  $document->id = 'district';
  
  $districts = District::find()->all();
  foreach($districts as $district) {
  
      $polygon = new Polygon;
  
      foreach($district->coordinates as $coordinate) {
          $point = new Point;
          $point->value = $coordinate;
          $polygon->value[] = $point;
          unset($point);
      }
  
      $document->add($polygon);
      unset($polygon);
  }
  
  return $document->output();
}

返回的是一个有效的 KML 文件

在对象中传递属性

要传递属性到对象,请这样做

$polygon = new Polygon;
$polygon->extendedData = [
  'property' => 1,
];

安装

安装此扩展的首选方式是通过 composer。

{
  "require": {
    "perspectivain/yii2-geo": "*"
  }
}