Wednesday, December 21, 2016

How to create Django translations for django-rosetta from a model field

How to create Django translations from a model field for django-rosetta?



I am using Django-Rosetta to handle all of my project translations.  Unfortunately I have only one model and one field of data that needs translation, the name of the POI.  To get around this I have created a little script to query my Django Database directly to deliver the list of names to be translated.  The output is a new html file with "trans" tags.  This html file is then placed in my templates folder so that "makemessages" can find the file and mark them for translation.

Anytime I want to update this I can run this script and bingo, new template file and new translations.

Note to self:  When adding msgid and msgstr  by hand the command "makemessages" will remove them in the .po file every time the command is called.



Tuesday, September 13, 2016

CORS with Geoserver 2.9.0 and Tomcat


How to enable CORS on your Geoserver 2.9.0 running on Tomcat.


This is taken directly from the tomcat homepage https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter


add the following code to your  web.xml  file then stop/start the tomcat process

service tomcat stop
service tomcat start

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.headers</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
  </init-param>
  <init-param>
    <param-name>cors.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
  </init-param>
  <init-param>
    <param-name>cors.support.credentials</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>cors.preflight.maxage</param-name>
    <param-value>10</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Thursday, September 1, 2016

Using Django to create a point GeoJSON feature from the centroid of a polygon

A practical example showing how to use geoDjango, Django geospatial functions to create the centroid of a polygon, returning a GeoJSON dataset that includes all the attributes of the original polygon feature excluding the original  geometry.

We are using the Django Rest Framework to server up the response but you could of course use simple the Django response as well.

We pass in a unique_id value to get a single polygon feature to generate the centroid.

NOTE you will need to hook up your URLs to look something like this:

url(r'^getcenter/(?P<unique_id>.+/$', get_room_center, name='centroid'),


Wednesday, August 24, 2016

Geoserver slice string values using SLD for label manipulation


I have an attribute column in my PostGIS polygon table and want to only show the first 2 characters of this text field on my label using SLD in Geoserver.  My goal is to place the label at the center of the polygon so here it goes in SLD xml syntax as usual very verbose and ugly.

<TextSymbolizer>
            <Geometry>
              <ogc:Function name="centroid">
                <ogc:PropertyName>geom</ogc:PropertyName>
              </ogc:Function>
            </Geometry>

          <Label>
              <ogc:Function name="strSubstring">
                  <ogc:PropertyName>short_name</ogc:PropertyName>
                  <ogc:Function name="parseInt">
                    <ogc:Literal>0</ogc:Literal>
                  </ogc:Function>
                  <ogc:Function name="parseInt">                            
                      <ogc:Literal>2</ogc:Literal>
                  </ogc:Function>
              </ogc:Function>
          </Label>
                   
</TextSymbolizer>

My table column name is "short_name"  and the geometry column name is "geom".  This works and creates my label in the center of the polygon only drawing the first 2 characters from the field "short_name".

I hope this helps :)
cheers
Michael

Friday, January 8, 2016

Goals for 2016

This year I want to start out with a bang and what better way to start the year off right than setting up some goals for 2016.  I think 5 goals should be reasonalble to achieve.

Goals 2016


  1. Do more Django coding
  2. Learn better Javascript best practises
  3. Write more blog posts
  4. Complete two spare time projects for fun
lets check this out again in January 2016 and see what gets done.

cheers

                                                                                                                                                                                                                                            

Tuesday, January 5, 2016

Python Geospatial Analysis Cookbook now available

Python Geospatial Analysis Cookbook

Well almost 1 year has past and my book is finally available for purchase.  For those of you visiting this blog you habe 2 awesome choices to get the book at a great discount.

Exclusive deal 50% off with this code:





Packt is also offering a great deal to get my book and many more at only 5$ !! click below