yit/map-bundle

此包已被废弃且不再维护。未建议替代包。

安装: 413

依赖: 1

建议者: 0

安全: 0

星标: 0

关注者: 14

分支: 0

开放问题: 0

语言:JavaScript

类型:symfony-bundle

1.1.1 2015-07-06 07:10 UTC

This package is not auto-updated.

Last update: 2017-06-19 07:50:39 UTC


README

sonata admin 的谷歌地图小部件。

从 1.0 版本升级

创建示例项目 Bus (src/Bus)

  • 在 Sonata Admin 类中

    // namespace Bus\MainBundle\Admin;
    
    // Fields to be shown on create/edit forms
    protected function configureFormFields(FormMapper $formMapper)
    {
         $formMapper
             ->add('name')
             ->add('position', 'mapmarker', array('attr' =>
                     array('draggable' => true,
                          'limit' => 1,
                          'center-lat' => 40.177037117759895,
                          'center-lng' => 44.51488494873047,
                          'zoom' => 12) ))
             ->add('position', 'mapmarker')
             ->add('creationDate')
             ;
    
    }
    
    

    或者

    // namespace Bus\MainBundle\Admin;
    
    // Fields to be shown on create/edit forms
    protected function configureFormFields(FormMapper $formMapper)
    {
         $formMapper
             ->add('name')
             ->add('position', 'mapmarker', array('attr' =>
                     array('draggable' => true,
                          'limit' => 1,
                          'center-lat' => 40.177037117759895,
                          'center-lng' => 44.51488494873047,
                          'zoom' => 12) ))
             ->add('position', 'mapmarker')
             ->add('creationDate')
             ;
    
    }
    
    
  • 在同一文件中添加方法,用于包含地图模板

    public function getFormTheme() {
         return array('BusMapBundle:Admin:mapmarker_edit.html.twig');
    }
    
  • 在实体文件中创建新方法,该方法将创建并返回包含经度和纬度参数的数组

    /**
      * Get getPosition
      * @return array
      *
      */
     public function getPosition()
     {
         return array('position' => array('lat' => $this->latitude,'lng' => $this->longitude));
     }
     /**
      * Set setPosition
      * @param array $latlng
      * @return Stop
      *
      */
     public function setPosition($latlng)
     {
         $this
             ->setLatitude($latlng['lat'])
             ->setLongitude($latlng['lng']);
         return $this;
     }
    

    考虑到已有属性

    /**
      * @var float
      *
      * @ORM\Column(name="longitude", type="decimal", nullable=false, scale=7)
      */
     private $longitude;
    
     /**
      * @var float
      *
      * @ORM\Column(name="latitude", type="decimal", nullable=false, scale=7)
      */
     private $latitude;
    
  • 在 admin.xml 中创建服务

    // EntityName - is your entity Class
    <service id="sonata.admin.main.EntityName.route" class="Bus\MainBundle\Admin\EntityNameAdmin">
       <tag name="sonata.admin" manager_type="orm" group="Entity" label="EntityNameAdmin"/>
       <argument/>
         <argument>Bus\MainBundle\Entity\EntityName</argument>
         <argument/>
         <call method="setTemplate">
         <argument>edit</argument>
             <argument>BusMapBundle:Admin:edit.html.twig</argument>
         </call>
    </service>