it-swarm-es.com

¿Cómo puedo tener ubicaciones no exactas en un mapa?

Estoy usando GMap para ayudar a los usuarios a encontrar a otras personas en su área. Pero me gustaría permitir que los usuarios tengan algo de privacidad solo haciendo que su ciudad y código postal estén disponibles en el mapa, pero aún tengan la dirección completa en la base de datos para fines de envío. ¿Cómo puedo hacer esto? La posición del marcador en el mapa también debe basarse solo en la ciudad y el código postal, ya que obviamente podría ser bastante precisa en cuanto a la ubicación.

Por ejemplo, digamos que el presidente se registra en nuestro sitio. Ingresa su dirección completa, 1600 Pennsylvania Ave NW, Washington D.C., DC 20500. Un administrador ahora puede buscarlo y enviarle nuestro boletín informativo.

Otro usuario en el área de D.C. está buscando gente con quien reunirse. Buscan y ven un pin en el mapa para un usuario POTUS. Al hacer clic en el pin y solo se muestra una dirección parcial, Washington DC, DC 20500. Y la ubicación del pin no es exacta, por lo que el usuario no puede saber por su ubicación la dirección exacta de POTUS. Pero es suficiente que el usuario sepa que está cerca, por lo que envía un mensaje de usuario a usuario para ponerse en contacto.

Cualquier solución para ubicaciones de pines no exactas estaría bien. Si fue ligeramente aleatorio. O quizás todos los pines en un código postal están agrupados en uno con un enlace para "# usuarios en el área 20500" que lleva al usuario a una lista completa.

Si esto se puede hacer con algo que no sea GMap, está bien.

7
Rob Mosher

Tuve un problema similar, y así es como lo resolví:

  1. Agregue otro campo de 'ubicación' a su tipo de contenido; llámelo, por ejemplo, 'ubicación pública del usuario'.
  2. Cree su módulo personalizado y, en la implementación hook_form_alter(), oculte el nuevo campo de ubicación, para que el usuario no pueda editarlo.
  3. Ahora necesita obtener la ubicación "no exacta" para la primera ubicación; Hago esto con un código geográfico de Google.

Depende de usted hacerlo a través de JavaScript cuando se establece la primera ubicación (la forma en que lo estoy haciendo), o hacer la geolocalización cuando se envía el formulario para agregar 'manualmente' el 'no exacto ' ubicación.

Si usa un código geográfico en la dirección parcial, Google Geocode le dará las coordenadas en el medio del área que buscó.

Tenga en cuenta que, para una codificación geográfica más específica, incluso podría utilizar la API de Geonames .

Si elige la segunda forma (crear la ubicación 'no exacta' cuando se envía el formulario), tal vez esto pueda ayudarlo con la creación de la ubicación: Creando nodos programáticamente en Drupal (incluidos los campos cck y location) .

Como nota al margen, ya no estoy usando el módulo Gmap porque mis necesidades eran un poco complejas y no se ajustaban a este módulo; Si encuentra algún problema, le recomiendo que cree su propio módulo pequeño utilizando Google API v3.

Esto le permitirá, por ejemplo, mostrar la 'ubicación pública' en el mapa con un círculo alrededor, como lo hace Google Latitude.

6
Strae

Ese alfiler en el mapa será el centro (generalmente centro geométrico) del código postal (con algunas excepciones, como un código postal que solo se refiere a un solo edificio).

O tal vez todos los pines en un código postal están agrupados en uno con un enlace para "# usuarios en el área 20500" que lleva al usuario a una lista completa.

Esta es una mejor solución que poner 20 pines uno encima del otro en el centro del código postal 20500.

1
Tangurena