Я использовал бы content_for.
, Например, определите место для вставки его в расположение приложения:
Merry Christmas!
<%= yield(:head) -%>
И отправляют его туда от представления:
<%- content_for(:head) do -%>
<%= javascript_include_tag :defaults -%>
<%- end -%>
Полагаю, вам нужны статические карты.
(источник: eduardoleoni.com )
1) Получите шейп-файлы границ zip и границ состояний на сайте census.gov:
2) Используйте функцию plot.heat, которую я разместил в этом вопросе SO .
Например (предполагается, что у вас есть шейп-файлы maryland в подкаталоге карты):
library(maptools)
##substitute your shapefiles here
state.map <- readShapeSpatial("maps/st24_d00.shp")
zip.map <- readShapeSpatial("maps/zt24_d00.shp")
## this is the variable we will be plotting
zip.map@data$noise <- rnorm(nrow(zip.map@data))
## put the lab point x y locations of the zip codes in the data frame for easy retrieval
labelpos <- data.frame(do.call(rbind, lapply(zip.map@polygons, function(x) x@labpt)))
names(labelpos) <- c("x","y")
zip.map@data <- data.frame(zip.map@data, labelpos)
## plot it
png(file="map.png")
## plot colors
plot.heat(zip.map,state.map,z="noise",breaks=c(-Inf,-2,-1,0,1,2,Inf))
## plot text
with(zip.map@data[sample(1:nrow(zip.map@data), 10),] , text(x,y,NAME))
dev.off()
В R есть много способов сделать это (см. пространственный вид ); многие из них зависят от пакета "maps" .
Посмотрите этот классный пример выборов 2004 г. в США . В итоге это выглядит так:
Вот немного уродливый пример модели , в которой используется пакет «maps» с «решеткой».
Вот очень простой пример с использованием пакета "gmaps" , на которой показана карта арестов по штатам на каждые 100 000 арестов за убийство:
require (gmaps)
данные (USArrests)
прикрепить (USArrests)
grid.newpage ()
grid.frame (name = "карта")
grid.pack ("карта", USALevelPlot (States = rownames (USArrests), levels = Murder, col.fun = red), height = unit (1, 'null'))
grid.pack ("карта", gradientLegendGrob (at = quantile (Убийство), col.fun = reds), side = "bottom", height = unit (.2, 'npc'))
отсоединить (USArrests)
В R есть богатая и сложная серия пакетов для построения графиков, анализа и других функций, связанных с ГИС. Одно из мест, с которого можно начать, - это представление задач CRAN на Пространственные данные : Это сложный и иногда загадочный мир, и нужно потрудиться, чтобы его понять.
Если вы ищете бесплатное, очень функциональное картографическое приложение, могу предложить:
MapWindow (mapwindow.com)
Дэниел Левин из TechCrunch Trends сделал хорошие вещи с пакетом maps
в R. У него также есть код, доступный на его сайте.
Предложение Пола изучить Processing, которое Бен Фрай делал zipdecode - тоже неплохой вариант, если вы хотите выучить (похожий на Java) новый язык.
В зависимости от вашего приложения долгий путь может заключаться в использовании чего-то вроде этого:
http://googlemapsmania.blogspot.com/2006/07/new-google-maps- us-zip-code-mashups.html
Для сопоставления ваших данных. Если это было не совсем то, что вам нужно, вы можете получить шейп-файлы сырых почтовых индексов с census.gov и сделать это вручную, что довольно затруднительно.
Кроме того, если вы этого не видели, это отличный способ для взаимодействия с аналогичными данными и может предложить некоторые указатели:
У кого-то может быть что-то более непосредственное для вас, но я нашел «Мэшапы данных в R» О'Рейли очень интересными ... отчасти, это пространственное отображение аукционов выкупа домов.
Оцените этот превосходный инструмент онлайн-визуализации от IBM http://manyeyes.alphaworks.ibm.com/manyeyes/
РЕДАКТИРОВАТЬ К вашему сведению, ManyEyes использует набор инструментов визуализации Prefuse для некоторых из своих функций, а именно. Несмотря на то, что это среда на основе Java, они также предоставляют инструмент Flash / ActionScript для Интернета.
В Python вы можете использовать шейп-файлы из переписи населения США вместе с пакетом basemap
. Вот пример заполнения состояний в соответствии с населением.